A “Revolution Mode” for Pinoccios

by Eric on

We’re big fans of the science-fiction author Cory Doctorow.  His books For the Win, and of course, Makers, is high on our list.  Makers is especially good if you’re interested in why the Maker Movement is so important, and how it very well could be the saving grace if we had an economic collapse.  It certainly hits home with our passion and work on Pinoccio.

But there’s one book that Doctorow wrote that pretty much kicked our asses, in a good way:


Now mind you, this is a Young Adult novel, but it is a New York Times best seller.  My son is reading it now after my wife Ashley and I ranted and raved about it.  It’s a techno-meets-dystopia theme, and as best I can describe it, is a modern take of the novel 1984.  Doctorow has been described as “living just a few years in the future, and able to tell you what he sees.”  I find this to be a fitting description.

Pinoccio’s “Revolution Mode”

The thing is, while this book is fiction, it’s a fine line away from being non-fiction.  The technologies described in the book almost certainly exist today, and it’s not hard to imagine how things could end up a mess if the right conditions existed.

We at Pinoccio have semi-joked about how the mesh networking abilities of Pinoccios make it really resilient to bringing down the entire network.  So much so, we should have a “Revolution Mode” for Pinoccios.  So when the Zombie Apocalypse comes, we can fight back.

But after we launched Pinoccio, one of Sally’s friends contacted her and explained to her that this mesh networking topology we use is actually very applicable to real world political issues, not just zombie apocalypses.  The Arab Spring included many political protests, where a highly resilient, and very low power mesh network could have helped the citizens of those countries protest more effectively.

What’s “Mesh” really mean?

The best way to describe a mesh network is: it’s a network where there is no central hub or coordinator that you have to connect to in order to participate in the network.  Any device can talk to any or all other devices.  You can add special bridge nodes to the mesh network to give it functionality like connecting to other networks, but you don’t have to.  And, you can add as many of those bridge nodes as you think you’ll need, based on the resiliency you’re after.

Take this description of the protests in Egypt during the Arab Spring, from Wikipedia:

Protests in Egypt began on 25 January 2011 and ran for 18 days. Beginning around midnight on 28 January, the Egyptian government attempted, somewhat successfully, to eliminate the nation’s Internet access,[26] in order to inhibit the protesters’ ability to organize through social media.[185]

Why is it so easy to eliminate the ability for protesters to have Internet access?  Because they just had to eliminate the blue arrow below.

Screen Shot 2013-02-07 at 8.55.43 AM

What about if these protesters were on cellular networks?  Same thing, except now they know your identity via tapping into the databases of the cellular network companies.

Screen Shot 2013-02-07 at 8.58.16 AM


And what if the protesters were using devices that supported mesh networking?

Screen Shot 2013-02-07 at 8.56.29 AM

Here you see how resilient the network could become.  Every arrow is a network connection.  If you remove one node from the network, everything still works fine.  You can even remove a bridge node, and data can still get out and come into the mesh network.  Add as many bridge nodes as you deem necessary, and connection to the outside world will still be available.


What we wished would have happened in Little Brother

If you simply added a single pushbutton to a Pinoccio board, you could leverage the mesh networking strengths to have extremely organized, very effective protests against authoritarian regimes.  We won’t try to give spoilers below, but we’ll touch on some situations in the book.

Imagine if our Little Brother protagonists were using mesh networking during the protest in Dolores Park.  Let’s assume 10 people had devices like Pinoccios, and perhaps 3 or 4 had bridged devices.  The rule is, if you see the DHS approaching, you push the button on the device.

When the button is pushed, it sends out a message to all other devices about an imminent threat.  Each node in the network tracks how many imminent threat messages it’s received, and lights its red LED accordingly.  If only one message is received (from someone who bumped their button, or perhaps a bad actor in the group), the LED would barely glow.  As more messages arrive, the LED would glow brighter.  If the LED on your device is bright red, it’s time to get out of there, because most people in the group have pushed their button.

For those who have bridged nodes, that data could be pushed up to the web in real-time.  So essentially anywhere in the world, one could see how “bright red” the situation is on the ground.  And even if a person with a bridge node were arrested, or the device broken, the other bridge nodes would still be pushing that data to the web.  Only if you removed every bridge node would you lose Internet connectivity.  And even more importantly, only if you removed every node but one, you’d still have direct connectivity between protesters.

You could extend this possibility with coordinating protests in different locations simultaneously.  If one protest gets broken up, it would be easy to see where other protests are low-risk, and movement could happen there.

You could also go the other way.  Add another button, and when it’s pushed, it triggers an increase in protesting, or a coordination of action.  That button could use the green LED to more brightly shine with increased action.

To sum up

We realize this might be a bit uncomfortable for people to consider.  We don’t condone people using Pinoccio boards (or any devices) to commit violence.  However, we believe very strongly that technology has an increasingly important role to play in the futures of our lives.  It’s a philosophy of ours that this technology, and all it has to offer, should be in the hands of ordinary citizens, not only governments or large corporations.  If citizens feel it’s time to change the structure of their government for the better, they should use every peaceful means necessary to enact that change.


Finally, Cory Doctorow just started a book tour this week for his new book Homeland, the sequel to Little Brother.  If he’s coming to your town, you really should go visit.  He’s an amazing writer, a brilliant thinker, and he just may see something in the future that you and I don’t quite yet see.

Filed under Open Source Hardware




  1. Jay Graves

    Hey Eric,

    I have a couple of questions about the mesh library (and I’m too lazy to look up the PDF link right now. 😉 )

    Does the underlying mesh library expose the route that a specific message took between scouts?

    Can you query a scout for what other nodes it sees?

    How does the mesh lib decide how to route messages if more than one path is available?

  2. Jay Graves

    I found the PDF ( and I think I have my answers.

    1. No. Packets bounce around and take whatever path is necessary to get to their destination but don’t keep track of where they’ve been.

    2. Tentatively yes if you read the routing table data and format it into an application message and send it back to home base (which of course uses that same routing data. how meta)

    3. There is a metric called LQI (Link Quality Indicator) that helps choose the best route.

  3. Eric

    Hey Jay, sorry about the late reply. To follow up on your questions:

    1. Well, they don’t quite bounce around, but yes, they’ll take the most reliable path necessary to get to their destination. Not necessarily the shortest, but the one with the best LQI. Storing the routes taken within the message would be interesting, but pretty verbose. I supposed you could change up the routing code to update the payload to include the current hop, so a received message would include the output similar to what you’d get with a traceroute in the IP world.

    2. Right. There’s no in-built method to get all other Scouts in vicinity as it stands now. For most networks, the answer to what other nodes can be seen is “all of them”. Only when you get into routing will you only see a subset.

    3. That’s right. There are actually three different RF-based measurements tracked: Energy Detection (ED), RSSI, and LQI. LQI is used for determining the most reliable route.

  4. Jay Graves

    Thx Eric. I’ll admit ‘bounce’ was the wrong word to use but the PDF did bring up some situations where the network could create loops among routing scouts. Probably not that likely happen in practice.

  5. Eric

    True! I think it’s possible for sure–though frames are supposed to be dropped when loops are detected.

    Still, if you could visualize the routing, I bet it looks like a lot of bouncing going on!

Comments are closed.

Log In


Create an Account

With an account, you can:

  • Join in community discussions
  • Stay up to date with our email newsletter

And soon, you’ll be able to:
  • Create a public profile
  • Share your projects & code with others

Choose your username