I do DJ-ing as a hobby and it would be fun to sync my RGB stips and some other lights to my mixing. So I came up with this project to make a DMX slave device with PWM outputs. I also wanted to control my smoke-machine, therefore atleast one relay output were needed.
This device is controlled by DMX. It has 9 PWM sink outputs and 3 relay outputs. The PWM outputs are intened to be used to control standard RGB-stips. The DMX address can be set with DIP switches.
I started of with doing some research about the DMX protocol. I found out it can be easy decoded with an RS485 receiver and UART. Since I wanted to set my device to any of the 512 addresses I needed some way to do this. The two most common ways is with buttons and 7-seg display or with DIP-switches. I decided to go with DIP-switches since using a display on this little device felt too be overkill.
The DMX network uses a daisy-chain network topology. Therefore every device has a DMX IN and OUT connector. The IN and OUT are directly connected and the device will just tap of the data. These are usually XLR-connectors. But it also exist a RJ-45 connector standard. I will use the RJ-45 connector since it is much cheaper and smaller than XLR-connectors.
I have for the moment two RGB lightstrips and I want to be able to add one more in the future. So I will need a total of 9 PWM outputs. I also have a smoke-machine wich can be controlled with a footswitch. The switch is just a momentary NO switch so it is easy implemented in the device with a relay. The relay and board layout needs to handle 250V AC and 500W.
The device will be run from a 12V DC power supply since the RBG strips are using 12V DC. A regular DC jack on the device should do the job.
I calculated the amount of IO needed would be atleast 20.
1 DMX IN.
9 DIP switches.
I have experience using Atmel micros for qutie some time so this semed to be a perfect task for the AT Mega 88.
With these things decided I started of with the schematic design.