Go Down

Topic: Recieving DMX (Read 12608 times) previous topic - next topic


I've been browsing around for examples of people successfully recieving DMX (Digital MultipleX signal (RS485 I believe).

http://en.wikipedia.org/wiki/DMX512-A ... for anyone who's unfamiliar.

I know there was a lot of work put into outputting DMX, which has been achieved through the DMX shield.



I'm willing to start working on it, but I don't want to start from scratch if anyone's already tried... (i'm game to working with someone on already pre-existing code to see if we can make it work.




I never tryed to get the arduino reading DMX singals, beacuse sending is allready at the edge of my knowligh, but maybe i can give you some links and help:

reading dmx is quit hard stuff, because of the timing (and the missing clock singal). A DMX bit is 4 Microseconds long, so reading with digitalread(); is no solutiom. I'don't know if this is possible withIn the arduino environment.

Starting point:

I would start checking out if some one got the arduino to read MIDI, this could be a good starting point.

On the other hand there are dmx Resceive using Atmega chips:
at http://www.tinker.it/en/Products/DMXInterface there is a dmx receiver, maybe you can ask massiom if he could post the code here,  to get a clue how this works
futhermore there is webside german guy called hendrik Hölscher (http://www.hoelscher-hi.de/hendrik/english/dimmer.htm#transceiver) maybe you can ask him as well for code example

if you just want to get it work fast, build your own transceiver like explaint on hendriks web side and read this dmxtraniseiver outputs with the analogIn pins at the arudino, this is a creapy but fast way

all the bes


Oct 18, 2007, 06:35 pm Last Edit: Oct 18, 2007, 06:36 pm by hcgilje Reason: 1
I would also be interested in code for receiving DMX on the arduino, or at least to know if it is possible or not.
I just made a dmx shield, and wasnt aware of that there is no existing code for receiving. It would be very useful for replacing expensive dmx controlled equipment, and would make it very easy to integrate physical devices in a dmx environment.

If I have understood it right, the arduino can be used as a open dmx interface, which is able to both send and receive ("Using a simple application on a PC you can send and receive DMX512."), but I couldnt find any code for osX that could make use of this.

hc gilje


Hi! I'm also interested in learning how to get my Arduino to receive DMX-512 signals. I've searched around on the internet a bit, and there's a lot of stuff about how to transmit DMX, but not so much about how to receive it.





If I have understood it right, the arduino can be used as a open dmx interface, which is able to both send and receive ("Using a simple application on a PC you can send and receive DMX512."), but I couldnt find any code for osX that could make use of this.


the FTDI ship at the arduino can be used for a "open dmx" interface, but the amtega8 is not used or needed for this application, further more i don't know for shure, but i think with open dmx you can just send dmx and not receive.

all the best

p.s. did some one of you know if midi can be received with arduino ?


I'm just getting into arduino. i'm expecting delivery on wednesday! I'm very interested in working with dmx. has anyone found more info about sending and receiving dmx via arduino?


check out the playground:



hey guys! here is the solution!
yesterday I was looking for the exactly same thing, receive DMX with arduino and store that information in an array.
With some google search I found this:


I tested it with LightsUp software and works perfectly! the code and all you need is in that site.
So I hope it helps you.

Now I ask you something:
I'm working in a multiplexed RGB led array to display a lot of different effects and colour combinations. It's something like one of the strips that appears in this video: (it's just an example, it's not my project).


My program uses timer interrupts and fast PWM mode to set the duty cycles in each LED and works pretty good and fast. But here is the issue, I want to use the receive DMX data in my program to refresh the array and I don't know how to combine both programs (the one that receive DMX and the one I'm using to drive the array).
Wich could be a way to do it?


PS: sorry if my english is not good!


Well that depends on what you want your DMX controller to do.  Do you want 1 channel that controls a "rate"; or do you want 3 channels, one per color?

It should be hard to do either, you just need to organize your data so that one part of the code ends up with a value and name that you can use in the other.


It should be hard to do either,

Is there a not missing there somewhere?  ;)
The art of getting good answers lies in asking good questions.

Go Up