René Christen. Creative Technologist, Artist and co-founder of Code on Canvas.


Light Conversation is an iPhone/iPod Touch app to translate morse code from flashing lights and broadcast morse code using your flash. This app was built as part of a project to translate lights around the city that have been hacked to tell stories with morse code.

The first gallery showing of this work entitled Inanimata will be at Recently Historic: Australian Electronic Arts, curated by Monika Brooks at UWS Gallery, opening on September 13th. The work was first shown as a public art piece, details here.


How to hack you own lights:

You are free to hack or create your own lights for use with this app for non-commercial purposes. The morse code broadcaster runs on an Arduino micro-controller. You will need one with an operating voltage of 5v as opposed to 3.3v to drive the solid state relays referenced below. I like the Arduino Mini Pro as it’s cheap and small although if you’re a first timer with Arduino they recommend starting with an Arduino Uno or similar. The code for this can be found here. Simply replace the text at the top with your own and load it on to the Arduino using the Arduino application. In some cases you could use the same power source used for the lights as the Arduino, but I typically use a separate 9v battery or USB power supply to keep things simple.

Special thanks to Ernst Christen for help with the circuit design. Please note that you do any of this wiring at your own risk. Although I have used this with many kinds of lights they have all so far all been powered by one of the following options (each uses the same code but requires a slightly different circuit):

  1. 240v mains (regular Australian power point, other countries may use 120v). For this I use an AC solid state relay like this one. Simply connect the Arduino ground and output pin to the input and use the output to interrupt the power or neutral going to the lamp. It does not matter which way around the output is wired. An easy way to do this is by cutting just one of the cables in an extension cord running to the light. Note that in Australia the brown wire inside an extension cable is always power and I used this. Be careful and make sure not to have anything plugged in when making connections as this is enough voltage to kill you.
  2. 12v car or motorcycle type battery. For this I use a DC solid state relay like this one. Simply connect the Arduino ground and output pin to the input and use the output to interrupt the power or ground to the lamp. It does matter which way around the output is wired. I interrupted the ground wire coming from a car headlight. In this case the positive output is connected to the the wire going to the lamp whilst the negative output is connected to the wire going to the battery. If I had interrupted the power going to the lamp then the positive would have been wired to the battery and the negative to the light. Note that car headlights have 2 power connections, one for regular and one for high beams. Regular is plenty. I have also used 12v batteries for some LED arrays, not just car lights.
  3. 5v output from Arduino. In this case you may be working with standard LEDs, which can be connected as per this Arduino tutorial.


Creative Commons License
The morse broadcasting code for Light Conversation by Rene Christen is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Permissions beyond the scope of this license may be available at