Microcontroller

Hardware

usb i/o 24

The microcontroller is the heart of this machine. However, its tasks are simple, so I could use a very cheap and rather slow one. This is what it has to do:

The USB I/O 24 from Gigatechnologies was perfect for this projects because it's cheap, ready-to-use and has enough i/o-pins to satisfy the needs here. Of course, any other microcontroller that has similar features can be used as well.
This board is based on a SX48/52 chip from Scenix which needs some external voodoo to get programmed. But we did most work for you already with our programming toolkit.
The microcode I wrote is of course also available.

Protocol

The USB protocol is very simple. It consists of two bytes, one for the channel and one for the value to be set.
For more robustness, the most significant bit of the channel byte must be set and the most significant bit of the the value byte must not be set.
This limitates the maximum number of dimm steps and lamps to 128 each but makes it very easy to avoid off-by-one-errors that would normally cause the whole system to behave rather unpredictable.

Valid XHTML 1.0!