Resilient Products — How connected devices can live on.

Connected devices aren’t like most hardware. Half the product is in your hands, but the other half lives in a data centre. When you buy, say, a TV, you don’t expect the TV to die or the broadcasts to stop if the manufacturer goes bust. But in the connected device world, things are a bit more complicated.

Little Printer

The Little Printer by Berg was way ahead of its time in 2012, with its zany product direction, advanced technology, all masterfully packaged into a friendly little device. But Berg sadly closed its doors in 2014, and without a company to pay for the cloud part of the Little Printer, the little guys shut down.

Luckily, the Little Printer community came together to fix it. After Berg closed, an open source project begun to hack the Berg Cloud bridge, reimplement the server, and we’ve just released an app to complete the experience!

The hack

The Berg Cloud bridge is the first piece of the puzzle. The software on them is hard-coded to talk to Berg’s servers. So first up, this needs to be configurable. Matt Webb (from Berg) released an update to the firmware to add a configuration option. To get this on the bridge, the only way is a hardware hack, which has been developed by a few people across the Little Printer community.

The server

The next part of the puzzle is the server-side software. This was recreated by a team of talented Little Printer owners collaborating on GitHub to piece-by-piece, rebuild the server code under an open-source license.

The app

At Nord Projects, we all loved the Little Printer. Enabled by the work above, we wanted to rebuild a user experience — make an app that’s the quickest way to get something from you to the printer.

The part we wanted to recreate most is messaging — like little postcards, delivered right into your living room. We made two styles, building on some of the wonderful design from the folks at Berg.

Poster Font.

From the original Little Printer: a classic. We loved the way the graphic lettering scales edge-to-edge to fill the width. It was painstaking work to replicate the original, but a lot of fun.

Dithergram.

Print out your photos in delicious 1-bit! Little Printer can only print two colours — black and white, so we implemented our favourite dither — ‘Atkinson Dither’ — from the original Macintosh.

An aside: Device Keys

To make the experience we wanted, we created Device Keys. Device Keys are secret URLs that provide the address and authentication to print. As the owner of the printer you can make as many keys as you like, and share them as you like.

We created device keys to prevent everyone needing user accounts, with all the Personally Identifiable Information (PII), passwords, hassle and dev work they require. If you have the key, you can print!

They’re decentralised, and include an open API, so they make designing products on top possible without getting anyone’s permission!

Phew!

That’s a lot of work! It’s taken us 5 years to get to this point, and in the meantime, our Little Printers have been mostly sitting idle.

Connected products and the cloud (Designing for death)

At its core, connected products have a fundamental problem. They tend to be sold in a single upfront cost, but the cloud component costs money to run. So how can we ensure these products live on, years after they’re sold? We have a few ideas:

1. Stay in business.

You’ll need a limitless supply of capital, and a crystal ball.

2. Design to open standards.

FM radio sets from 1950 still work today. Open standards let an ecosystem of devices work together.

It’s not a silver bullet. Standards can also limit what capabilities they have. And in the quickly changing world of the internet, standards move quickly and security flaws can cause old ones to be dropped. Still, in some cases, it’s a great solution.

3. Open source the backend.

We developed Tingbot during the aftermath of Berg closing, so these themes were front of mind. In the end, we open sourced our entire software stack. Since we made money selling hardware, it didn’t seem to hurt our business, and it means Tingbot can live on, years after we’ve shipped.

But, I admit, it’s a big deal.

What about intellectual property? There are options here.

  1. If you can, keep your most precious intellectual property on-device, and keep that closed-source.
  2. If there is particular IP that must live on the server and you’d rather keep private, implement a plugin architecture and keep those bits private (the open core model). The open core model is great, because all the boring code that enables interoperability will be open, but you can still keep your special sauce private.
  3. You will retain copyright on the code, and you can choose the license you want. Companies like MongoDB have had some success licensing it’s open source ‘community edition’ under the LGPL license to discourage other companies from copying it and selling it.

It might not work for some companies. But we think it’s a great fit for smaller, Kickstarter-style projects and connected device manufacturers.

Landscape

More broadly, we think consumers should be demanding something in the way of open standards or open source for IoT. It’s the only way to give customers a product that can outlive the company that creates it.

Photo by Anki

Robot-maker Anki announced last week they’re unable to secure finance and is forced to close. Despite selling more than 1.5 million robots, it wasn’t enough “to support a hardware and software business and bridge to our long-term product roadmap”. It’s unlikely they’ll be working for much longer, once the cloud servers turn off.

Photo by Vlad Tchompalov on Unsplash

Or imagine Tesla goes bankrupt next year. Will your car’s cloud features still work? Will it be kept secure with software updates? Is it going to work at all?

Legislation is already gearing up to ensure that connected devices are kept secure. Do we also need legislation to make devices more resilient to the ebb and flow of the tech/startup world? I think there’s a strong case to be made.

Conclusion

Where possible, connected devices should work with open standards, or have open source server components. As consumers, we should be looking for and demanding this, especially with connected products from smaller, less established companies.

And! If you’ve got a Little Printer sitting in a drawer somewhere, dig it out! We wrote a guide on how to hack the bridge, and you can get the app from the iOS app store. Let’s get the word out — share this with anyone you know with a Little Printer so we can get the little guys printing again.

Project page on nordprojects.co