projects | about

Wireless control of BlinkM LEDs

wireless_blinkm

The goal of this project was to modify an old relay tester to control multiple BlinkM LED modules using wireless serial links. The relay tester is a piece of equipment I acquired for free from a friend, some of the parts I borrowed from previous projects.

The relay tester box has 4 knobs that add resistance at each setting. These each are setup to act as voltage dividers and read by 4 analog input pins on the atmega168. The 4 rheostats above the knobs are multiplexed and read by a single analog input. Data is read continuously and sent to all the BlinkM receiver modules. One switch (K-1, lower right) is used to sync all 4 BlinkMs to be set by the first knob.

(creative commons background music on video is "summer" on cool aberrations)

             rf transmit    rf receive
   ____________  \ /            \ /                         
  |  Relay     |  |              |  _______________
  |  Tester    |--|               -| Atmega168     |
  |            |                   | attached to   | X 4
  | [O] X 4    |                   | a BlinkM LED  |
  | delay      |                   |               |
  |            |                    --------------- 
  | [0] X 4    |
  | LED script |
  |____________|                   
           |
           |
USB power --

Construction

Below is a list of the parts used for this project.

Parts

Total cost ~ $175

Other parts and equipment

Relay Tester Box (transmitter)

The relay tester box is a custom? device used for testing old telephone relays. There plenty of nice large knobs connected to high power resistors which made it easy to modify for this hack. I used the holder for the current meter to house the arduino.

To power the box and the arduino I replaced the alligator clips on the cord coming out of the relay tester with a USB connector.

There are many knobs and switches on the box, for this version I connected the following:

Schematic of the original Relay Tester

schematic

Connecting the arduino

prototype bottom top

BlinkM Receiver

The receiver module consists of an atmega168 connected to the BlinkM via i2c and an RFlink wireless receiver via serial.

blinkm_receiver

Wireless Communication

wireless

The format used to send and receive data was a 11 byte message:

       ----------------------------------------------------------------------------------------------------------
       | opcode | opcode | sequence | delay | sequence | delay | sequence | delay | sequence | delay | checksum |
       ----------------------------------------------------------------------------------------------------------
The receiver modules are hardcoded with an offset so they know which sequence and delay to read. When the switch on the relay box is set to control all LEDs from a single knob, all sequence and delay values are identical.

Code

My preferred IDE is eclipse but there is no reason why this couldn't be done using the arduino IDE since I took advantage of the arduino libraries.




Copyright (c) jarv.org Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.
Validate (nerd)