Deskie: a networked ambient desk accessory

Published on 10 June 2018

This is a post about hardware, prototype and web.


Deskie is a rough prototype for a product that exists between desk accessory and interactive object.

There's something alluring about calm, ambient technology. Objects that are networked but don't shout about it.

Deskie asks what it would be like to live with this kind of device, and the uses it might have. It's important that it's quick to sketch out ideas for those uses and to easily use them in situ.

For me, ambience in a device means that the object is quiet both acoustically and visually. Calm means that if it does change state, it does so gradually without drawing too much attention to itself.

E-paper displays fulfil these qualities as they don't emit their own light can't be seen in the dark, much like most other objects in the home.

E-ink displays don't emit their own light

They don't update unless you instruct them to. Although, updates can be quite visually noisy as the display flashes as it updates. Partial refresh can alleviate this by only changing the part of the screen that has changed.

The heart of Deskie is a Raspberry Pi 3 Model B, which can power the e-ink display and has built-in wi-fi networking. It also has lots of software available which makes programming it easy.

A hidden web browser on the device is used to render a URL, with the window size of the web browser being the exact size of the e-ink display. The result is captured as a PNG image screenshot and displayed.

Developing e-ink apps in a web browser

The web browser is the rendering engine for the display with the result flattened down to a single image. I've recently written about how the web browser is a great environment for prototyping embedded experiences. Web apps for Deskie can be developed on any computer using existing tools and hosted anywhere online. The browser has support for advanced layout at different screen sizes, and the ability to render custom graphics and custom fonts. All that's needed is a URL to be able to load the app onto Deskie.

Although rough and hand-made, it's important to be able to iterate on the system software and to easily create more instances of Deskie. Using ResinOS—the open-source operating system of Resin's IoT platform—all the configuration is captured in a file which ensures that the system starts in a known state whenever it's plugged in. Resin's documentation and tooling to get started is excellent.

Using this base platform makes it easy to make your own Deskie. There are installation instructions and a shopping list.

The case is rudimentary, hand-cut from cardboard and glued. It's modelled in Autodesk Fusion 360 so it can be 3D printed and altered later. The priority is that it hides the technology and the cardboard suggests the paper of the e-ink display, although the screen is so small and the box is so big that it looks clunky.

The 3.5 inch screen is a bit too small to put a monthly calendar on, and this larger, black, white and red display might open up some more UI possibilities, like this amazing video prototype.

The first app is a super-simple calendar called The Day. It was initially hosted and developed on Glitch and then moved to static hosting service Netlify. As [it's just a website](), it can be developed locally and then hosted anywhere. During development the URL can be reloaded on a computer to rapidly see changes. To see the app on Deskie, it takes a couple of minutes to deploy.

I've had Deskie running The Day at home, on a window sill and a bookcase [PHOTOS]. It quietly sits there and shows the date at a glance. But it's a lot of technology for something that already exists in a much simplified form.

It's too simple an example and I'm working on ideas for some more little apps that would expand what Deskie can do. An obvious inspiration is BERG's Little Printer and the raft of publications that were available, serious and playful, personalised and general.