Wednesday, June 8, 2016

Room Ninja (Part Two): The Improvement Continues


This post is a part of a blog series focused on the Digital Maker Movement. The Digital Maker Movement celebrates craftsmanship in digital fabrication--think bits, not atoms.Learn more about what being a Digital Maker means to us at Rightpoint.

When last we checked in on this project, the primary client device had evolved from a Pi + 3” touchscreen to a 5” resistive touchscreen, to a BeagleBone Black with a 5” capacitive touchscreen to a Windows tablet.

Soon after that blog post, the official Raspberry Pi touchscreen was released, leading us to once again re-evaluate our options. We’d run into a few practical issues with the tablet-centric devices – issues with the complexity of the “Windows service to Arduino to lights” contraption, a too-minimalist case design, and issues sourcing the tablets themselves at a good price. Back to the design board!

A bit of digging around on Amazon turned up a slimmer POE adapter to use, so we started trying to fit all the major components hidden behind the touchscreen. It took some work in TinkerCad (, but after a few prototypes…

clip_image002 clip_image004

We did eventually end up with a single-piece case design that printed with a reasonable amount of support. It allows us to install the Pi + light-controller on the back of the screen, mount the lights to the case, screw the case into the screen, and mount the whole thing on the wall. It even features an embedded Rightpoint logo on the top and a slight lip around the edge of the screen. (the really-flush fit we had on some of the prototypes encouraged people to run their finger along the edge, accidentally prying the screen loose from the frame behind it)

Normally, the Pi is designed to mount on the screen with the bottom of the Pi facing the screen, leaving plenty of room to access the Pi’s 40-pin connector, but that resulted in a relatively deep setup. A bit of experimenting revealed that the Pi can be mounted upside-down at the expense of making the 40-pin connector hard to use and looping the display cable around awkwardly. We eventually added longer standoffs to give some room, but early prototypes demonstrated how slim this could be.


As part of this, we needed a small circuit added onto the Pi for lighting control. The LED strips we were using were 12V common-anode, so we needed a small circuit that could boost the 5V power supply to 12V and use GPIO signals from the Pi to control the ground wire for each color. A bit of design work in Upverter (, and waiting a few weeks for a board from OSHPark (, and we had ourselves a circuit that would plug into the Pi’s 40-pin header without getting in the way of mounting it on the back of the screen, and exposed the 4-pin header for the LEDs, and the two-pin header to power the screen.


Now that we had the hardware in line – it was time to shape up the UI a bit. The first version of the UI was an example of what happens when you have a developer drop a bunch of controls on the screen to see if things work. The new UI is what you get when you have talented design people really think about what the device will be used for, and build a UI focused on that.

Old User Interface


New User Interface



Which just leaves assembly. It turns out, when you only have two soldering irons, you can’t assemble 5 of the LED adapter circuits in parallel, so over several evenings, with help from a number of people, we put 5 more of these together

clip_image016 clip_image018

A night of installing and final bug squashing, and v1 is launched:


clip_image024 clip_image026

All of the software and models used for the above is open source and available to tinker with:

What does the future hold for this project? Short-term, mostly some bug fixes and admin improvements. Once things stabilize a bit, we’re planning to deploy a few more of them around our Chicago office and expand this to our other offices. Longer-term? Maybe a second kind of device to be mounted within a room? Or some other creative idea we haven’t come up with yet?