Digitally Engaged

At ustwo™ we have been looking into the Internet of things including sensors, actuators, Arduinos and all that jazz.

With the price of hardware so cheap and off the shelf platforms (Ninja Blocks, Berg Cloud) making it so easy to get involved, we have a new set of solutions looking for a new set of problems to be solved.

Our problem: resolving the anti-usability and efficiency issues surrounding our studio toilets—the perfect opportunity to get our hands dirty (ahem).

The problem

In our London studio it’s impossible to see if the toilets are busy or not as both loos are behind a door that doesn't allow us to see whether they're engaged or not. Everyday people would walk to this door, open it and then DOH… engaged.

The solution

Like the kind you’d find in planes and trains, we simply needed indicators that with one glimpse would show whether the toilets were busy or not. But it wasn’t as simple as that, as our floor plan meant that not everyone in the studio had that much needed direct line of sight to the all-important indicators.

The reality is that when you have to go, you have to go. Therefore if the toilets on your floor are busy, you probably don’t mind a swift walk to the toilets on the other floors.

So with this in mind we threw some technology at the problem and this is how it works:

  • Magnet sensors in each of the toilet doors all wired up to an Arduino


  • The Arduino reads the state of the magnets and changes the colour of our set of HUE lights (remember?)


  • The Arduino also sends the state (engaged or vacant) of each door to a central server that offers that information as a REST API to ustwo™ developers
  • Developers build clients around that API

Take for example the OSX widget featured below. Once installed it queries the sensor API and displays the state of the toilets (and shower!) in this case of the 3 floors of the London studio. States are represented by either a running man (vacant) or a lock (engaged). API clients of course can take things a step further and in this widget you can select several toilets and get a notification once they are free.lights short

For the geekiest of the ustwobies that spend most of their time looking at a terminal window (me!), there is also of course a much simpler command line client:toilets terminal client


The toilet indicators were an immediate success with user feedback requesting to go one step further. They wanted the ability to know if the previous occupant had done a #1 or #2—invaluable information as to whether the toilet was safe to visit or not. Our problem was no longer strictly technical, but ethical.

The fact is most people wouldn’t be comfortable sharing in no uncertain terms that they had just unleashed the kraken, particularly since we share the toilets with our clients.

So after some deliberation we decided not to implement the #1 vs #2 feature. Instead, some API clients have decided to implement a warning if the toilet has just become available after over five minutes of use. Therefore allowing people, after some quick due diligence/ risk assessment, to decide what might be waiting for them behind that door...

What's next

So far we have a (working) proof of concept and are only just beginning to understand the requirements of this kind of hardware within real life scenarios.

There are of course a few things we’d like to improve or expand on including:

  • Take the Arduino to a production level by building a custom shield so we can easily connect and disconnect the magnets (tutorial)
  • Remote deployment of code updates to the Arduinos
  • Non blocking WiFi connections (so in case the Arduino is disconnected the system is not affected until network is restored)
  • A NodeJS API because who doesn't need real time information about the state of the toilets?
  • Add more sensors to collect data such as temperature, humidity but also tracking objects and individuals (totally opt-in!)

At the end of the day we’re designers in the broadest sense of the word, we find solutions to problems. Once we master the skills required to interact and manipulate "the real world" we will be able to use our brains to solve problems that exist outside of a screen. The Internet of things is just a new set of tools that we are adding to our current tool set.

Stay tuned.