Eggs 2014


Sine waves were a popular choice for this year’s eggs. And the Minecraft pigs were in demand as always.

All the eggs pictures except the pigs were plotted directly from Processing, the pigs were drawn using Inkscape.

I’ll post the files to Github within  a couple weeks.

update: code and svg files are now available on Github.

Air Quality Egg Mod

crop I was not thrilled with the air quality egg enclosure that shipped with the final product and since I planned to use it inside, I decided to mount it on a plank of wood and leave the circuitry exposed. I also wanted some sort of display so I added a meter and modified the code to use pin 3 (pwm) to display the humidity.

Original project date: April, 2013.

Code for multi-switch posted to github

I’ve posted the code for my SmartThings multi-switch project to Github.

There you will find 3 files.

  1. smartthings_controller.ino – the Arduino code which communicated with the SmartThings cloud using the SmartThings Arduino library. I’m using an Uno.
  2. device_handler.groovy – the device handler code. This defines the device for use in the cloud and its UI in the SmartThings app. It is specific to the hardware, but not the use of the hardware.
  3. SmartApp.groovy – the SmartApp code. This defines how the device is used. In my app I tie specific hardware bits to specific device types (e.g. switch, switchLevel or musicPlayer).

For more information on the SmartThings IDE, writing SmartApps and related topic, have a look at these tutorials on the SmartThings developer site.

Multi-switch for SmartThings

Now that the SmartThings lab has released support for both Sonos wireless speakers and Hue lighting, I decided to build a custom switch using the SmartThings Arduino shield to interact with the system. The goal was to provide physical control over the systems without using a phone or tablet.

In my case, I wanted to be able to quickly:

  • Pause/Play all speakers in my house
  • Skip the current song
  • Turn groups of lights on and off
  • Dim the lights (not yet implemented)

The hardware uses a reclaimed project box from the last century with an Arduino UNO and SmartThings shield inside. It includes two pushbuttons, three switches and a knob.


With the hardware put together, the next step was to create a custom Device Handler for the SmartThings cloud and write the SmartApp.

The Device Handler essentially creates a virtual version of the device. It identifies each button and switch in the hardware to provide the basic inputs and outputs used by my SmartApp. The Device Handler also defines the device’s UI that is presented within the SmartThings mobile app.

The SmartApp determines what happens when someone interacts with the hardware. For example, I define which switches will turn things on and off and which ones will call play and pause. The App also defines the UI used to configure the app and map specific switches to specific Sonos and Hue hardware.

Documentation for writing handlers is lacking and this required a good deal of trial and error. In fact, I have not yet been able to hook up the knob within the handler. Once I do, I will post the bits on Github; but, for now if you want to work on something similar, I found this Arduino Code and corresponding Handler Code quite useful.

Another other bit of documentation that came in handy for how to control the Hue and Sonos devices is this list of device types and capabilities.

The Long Good Read uses APIs and short print runs for their weekly.

The Long Good Read uses “Editors, readers and robots” to publish a printed weekly newspaper specifically for customers at the Guardian’s cafe

from On Algorithmic Newspapers and Publishing:

As we’re very much relying on algorithms to create this paper, to pick the stories and then again to lay them out, we’ve started to think of this as a newspaper built from data, and as an evolving experiment.

Then if we can do it, then its not a very far stretch to allowing anyone to do it. And once the system has learnt what you’re interested in then next step is to just let it carry on for you, with the results arriving on your doorstep to read each week.