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
Arduino Diecimila - $35
4 x BlinkM LED devices - $13-$25 ea
4 x atmega168 - $5 ea
4 x 2400bps rflink receivers - $5 ea
2400bps rflink transmitter - $4
Total cost ~ $175
Other parts and equipment
Soldering Iron
Multimeter for testing
Wires
Prototype boards
Programmer for the atmega168 (USBTiny is teh awesome)
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:
4 knobs to control the LED sequences connected to 4 anlog inputs on the arduino
4 rheostats connected to a single analog input to control the 4 LED delay values (multiplexed with digital IO pins)
1 switch to toggle 4 LED control from a single knob/rhenostat
Schematic of the original Relay Tester
Connecting the arduino
BlinkM Receiver
The receiver module consists of an atmega168 connected to the BlinkM via i2c and
an RFlink wireless receiver via serial.
Wireless Communication
The format used to send and receive data was a 11 byte message:
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.