The unreasonable ease with which I created an e-paper bus tracker for my home.

If in doubt, you can always build it yourself.

“Hardware is hard” has been a constant mantra here at Tanooki Labs. We’ve helped build the tech behind 40+ startups, and whenever the production of hardware devices in involved we remind the entrepreneurs we’re working with to give themselves extra buffer time. Actually that’s putting it mildly.

Our internal guideline, the humbly named “Skiff’s law of hardware” goes like this:

Skiff’s law of hardware

Have your first engineer give you an estimated delivery date for production units.

Add one year.

We have never seen hardware delivered sooner than that date, even when we’re the engineers.

And yet, as Thomas Friedman says, we live in an Age of Accelerations. 7 years ago I gave a talk called “Pluggable Culture”, which documented the rise of cloud computing, Arduino, distributed authentication systems (oAuth), and frameworks like Ruby on Rails. The core thesis was that as the engineering complexity of these systems was abstracted away, we would see a corresponding innovation boom. This boom would be powered by people with different skills and expertise who could now simply “plug in” the technology pieces they needed.

Since that talk we’ve seen that prediction come true in nearly every industry. Not only has there has been an explosion of new companies building on these abstractions, but the pieces we get to build on continue to grow in power and ease. There are larger shifts underway in both the business world and in our culture as a whole as these effects continue to multiply, and I’ll be writing and talking about that more in the coming months, but for today I want to remark on something simple and amazing.

I had an idea for something I wanted in my home.

An hour later, I had it in my hands.

bustime.png

Every morning, as my family gets ready for work and school, we’re constantly taking out our phones to check when the bus is coming on the MTA’s BusTime site. When we time it right, getting the kids to school is painless and amazing, but “when’s the bus coming” is asked dozens of times a morning, and we’ve often got our hands full. I just wanted a display on the wall that would tell us where the busses are and when the next one is coming. Being a very specific use case I couldn’t find one.

So I set about making one.

For under $50 I got myself a Raspberry Pi Zero W and an e-paper display from Adafruit, and settled in for what I assumed would be my next “nights and weekends” project for a while.

After quickly soldering the header pins in, I fired up the Pi and got on wifi. Then I pulled down python, python-pip and “pip install”ed packages for the e-paper display and the MTA BusTime API.

I got an API key and wrote a very simple script.

And it worked.

I set up the script to update the display every 10 seconds, and to fully clear itself every once in a while (e-paper starts to look a little funky without a full refresh every now and then). I unplugged the display and keyboard. And it still worked!

busGIF.gif

This morning, we watched the display as the busses neared, and knew well in advance that the 8:20 bus was held up, so we waited for the 8:35, and caught it with time to spare.

So much for my personal nights and weekends project!

It strikes me that we’re at another watershed moment. Between the Raspberry Pi (and it’s industrial cousin the Compute Module), C.H.I.P. with it’s path to production through the CHIP Pro, and other IoT platforms, it’s becoming possible to take an idea from prototype to production without deep engineering expertise and low-level firmware programming.

Skiff’s law of hardware might finally be coming to an end.

If I’m right, we’re about to live through a Cambrian explosion of purpose-built devices and Kickstarter’s that actually deliver. Recent huge advances in machine learning are now arriving as custom chips loaded up with trained neural networks for things like computer vision and voice recognition, and that’s just the beginning.

When I first did the speaking circuit talking about Pluggable Culture, I was excited to see what would happen when domain experts, artists, and business people were able to quickly and easily use technology that would have previously been prohibitively expensive, and the resulting leap forward (and it’s impact on our society) have been incredible.

What amazing hardware products will come to market when non-engineers can dream something up and actually bring it to life? How will those devices change our lives?

I can’t wait to find out.

Links:

  • https://www.adafruit.com/product/3335

  • https://github.com/PiSupply/PaPiRus

  • https://github.com/celeryclub/bustime

  • https://getchip.com/pages/chippro

  • https://www.raspberrypi.org/products/compute-module-3/

BEFORE RUNNING:

sudo apt-get install python3 python-pip

sudo pip install bustime

ALSO: Substitute your favorite bus stop below on line 24 by stop ID and bus line.

BUSTIME_API_KEY = "INSERT_API_KEY_HERE" from papirus import PapirusTextPos from bustime import StopMonitor import threading tpos = PapirusTextPos(False)

tpos.Clear()

clearCount = 0

def PrintIt():

We want this to run indefintely, we set a timer at the top of the function to run it again in 10 sec

threading.Timer(10.0, PrintIt).start() global clearCount if clearCount == 10: tpos.Clear() clearCount = 0 tpos.RemoveText(Id="Start") tpos.AddText(str(StopMonitor(BUSTIME_API_KEY, '307696', 'b57', 3)), 10, 10, 15, Id="Start" ) tpos.WriteAll(True) clearCount += 1;

PrintIt()