I’m doubling the number of connected objects at home every year.
These days, it seems everyone is talking about The Internet of Things, but no one is actually building it. Sure, some companies bring out devices connected to the internet, but actually trying to connect many objects to each other is rare. I want to explore how living the connected home life actually feels, what possibilities emerge in a physical programmable environment filled with ordinary objects talking to each other.
With the Internet of Things (IoT) hype bubbling up it’s still hard to imagine actual use cases moving beyond the current toy level. Similarly to the growing usage of computers, it probably takes some organic experimentation by end users to find those killer features. We can think about the coffee machine talking to the dishwasher, but let’s now build the thing and find out if they actually want to talk to each other. As with the Internet, it might well be emerging patterns only will reveal the benefits for individual nodes.
So here’s the plan:
Exponential growth The new internet protocol (IPv6) allows for about 10^28 connected devices per person. Every single person on earth could double their number of devices yearly for the next century, which seems like a safe upper-bound for a human-made protocol. So why not start now?
Organic development It would be very hard planning for exponential growth and future use cases. Rather than planning and premature growth optimisation, let’s focus on building something that works for the next year or so and see what breaks. It’s easy to see how a system would work when doubled, but hard to imagine anything beyond a factor 10 bigger, so building the perfect system now takes too much valuable time. Reproducible As both science and the open-source movement show: power comes with collaboration and the ability to redo, mix and improve upon existing work. I’m using open-source software and widely available hardware as much as possible, even when more closed or less popular alternatives could benefit short-term goals. I’ll make software and designs freely available where possible.
About ten years ago, I bought a RGB LED spot controllable with DMX, a protocol commonly used by theaters. For years, I’ve been nourishing a small setup of lights connected to a light mixing panel and, later, a simple computer with ssh interface. I then moved to a raspberry pi, allowing the inclusion of cheap RF remote switches through the rpi hardware ports, and soldered together a simple controller out of a 4x16 digit screen and some buttons. The added dimmable lamps, RGB wall strips and switch-equipped devices spread over a handful of rooms asked for more than the average web-based switch panel where most “connected home” projects end. So, a simple message system with presets and batch-actions was added last year (12 devices). A simple reactive web-interface added smartphones and a tablet to the mix. Although most devices are still pretty simple and ‘input-only’, currently the message protocol is being used by a few other raspberry pi’s, connecting more sensors and processing power to the evolving system; they talk to our new API-equipped amplifier and, of course, an increasing number of services on the internet (email, twitter, text messages, the weather forecast and various other APIs). This year, the goal is 32 devices. Deep Hal is getting smarter every year.
I can think of quite some practical difficulties connecting many devices from here on. Setting up the physical infrastructure (wires, sensors, soldering existing devices and installing new computerised devices) takes a considerable amount of time. There’s also a wealth of different protocols in the fragmented IoT world, both digital (different languages, SDK’s and APIs, cloud-connected devices) and physical (wifi, bluetooth, RF, zigbee, DMX, X11, infrared, custom and higher-level protocols) with no sign of winning standards in the near future. With an exponentially growing swarm of devices maintenance might also become a problem (with my first RGB spot dying just last month). Lastly, crashes and bugs become quite physical, and having to ssh into devices in the middle of the night due to lights suddenly flashing heavily is fun for only so many times.
I’ll be posting updates on progress and findings here.
HAL 9000 inspired interface
I prototyped an interface for my home. It is a visualisation based on particles, with an arrangement inspired by the famous HAL 9000 interface. The particles can change velocity and colour, allowing the interface to express emotion-like excitement, anger, numbness, and variations in between.
Demo available here: https://www.youtube.com/watch?v=iv5HNTnq6y4
Update 2019-02: I rewrote the Processing sketch in OpenFrameworks. Read about it here.
After spending three years in a small apartment, we moved to a new place twice as big. That means space for twice as many IoT devices just by scaling horizontally, but this also raises some challenges.
Multiple rooms (and floors): we now actually need namespaces, reach of protocols, etc
Distributed: are we still OK with one centralised system? Is distributing the control premature optimisation?
Enough to explore!