Reanimating a Little Printer project
09 March, 2024I’ve made a little app which generates an image for you to display or print how many people there are in space right now. The code is here.
This is based on work that the excellent design and technology agency BERG did a decade ago with their Little Printer.
Little Printer was a wonderful little service which used a network-connected thermal printer with a personality to send little messages of wonder and joy into your house.
It was released in 2012 and as all these products inevitably do, the servers went offline a few years later and the service went away. BERG released their code and a little community sprang up to help liberate the devices and keep them running, which you can see at https://tinyprinter.club/ and additional work from design invention studio Nord Projects.
In the 12 years since Little Printer, desktop sized bluetooth-connected thermal printers have become a thing, and you can get one delivered to your house for less than £20 from Amazon or Aliexpress. I have this nice cat-themed one:
When tidying up my repos in GitHub I found I’d forked one of the Little Printer repos many years ago, so now that I’ve got a thermal printer wouldn’t it be nice to get that running? This one prints out a little picture telling you how many people are in space right now. I can’t find a photo of this working on a Little Printer, so let’s give a spoiler instead:
Let’s have a quick look to see if the decade-old Ruby code runs out of the box (although with low expectations it will). No surprises, it doesn’t:
- Ruby version is too old
- Dependency compatibility is broken
- The tumblr RSS feed it relies on doesn’t get updated any more
- We don’t have a server to send the rendered content to the printer
So let’s see if we can rewrite this app!
- Find a new service with the number of people in space
- Make a simple Sinatra web app
- Point the existing app which sends content to the printer to the web app
- Press print
- Done!
The Fun Print app that supports my printer allows me to print directly from a URL, so I just give it the address of my web app, and it prints out nicely, as you can see above, and because my printer came with several rolls of sticker paper, I can simply peel it off and stick into my Techo!
Obviously the real benefit of Little Printer is that it’s push-based. If I want to be able to push this data to the printer in the future I guess I’ll need to convert the web page into an image, so I’ve added some (currently unused) rendering with Capybara to the application. I might give some of the resources linked from https://tinyprinter.club a go in the future to try and get push working, but I’m quite happy with pull at the moment.