I have setup the arduino for sending DMX512 using LTC485
and this wonderful text: Arduino Playground - DMX

For testing i have a cheap RGB led with 4 channels (dimmer,r,g,b)

Current status:
I can control the lamp on all 4 channels, wonderful, but only until i reach approx 20% of the value scale (+- 65 (out of 255 in dmx))
after that, it starts to get jumpy. it still works "as should" more or less, in the sense that the higher the value the stronger the color, but the "way" is not smooth at all...

Unfortunetly, i do not have here more DMX hardware to help debug the problem.

After debugging the software (max+arduino, no problem there), i measured the hardware (ltc485 and connections).
when i send dmx data from the arduino, i measure the voltage between DMX-1 (gnd) and
..DMX-2 = +3.3v
..DMX-3 = +1.7v
(i know zero about DMX, but wasn't i supposed to get something like -2.5 and +2.5 ??)

now - the main weird thing that i've seen - i can disconnect the cable from [ltc485-leg7] to [dmx-2] (the 3.3v) and i get the exact same results (i can control the lamp, on all four channels). i've verified that there's no fault in the dmx (xlr) cable.
is this the link to the solution of this problem?

Another thing - i don't know if it'll help in anyway to debug, i thought it would help me... - I've to replace the driver (Arduino Playground - Opendmx) and use openDmx software.
with different openDmx software i get the same results:
they connect to the board, they send data, i can see the data (in the configured rate) sending on the [tx] led on the arduino,
but it does not work with the lamp at all. tried a few software combinations just to be sure.

My electronics connections are as described by Tomek (thanks a lot man!!) in the above text, only minor difference is that i use a 120 Ohm resistor on pin 1 (and not 100Ohm.. i'm sure it shouldn't make any difference.. but i state this for the record..)

Anyone any idea?

I thank you all.


Ok, some updates...

a. I read a bit more about DMX512, and it seems that my "weird problem" of pin2 & pin3 voltage and the disconnection of pin2 is not so weird... the other way around - it's totally normal...
b. i added a terminator on the lamp (120Ohm resistor between pin 2 & 3), just to be sure...
c. 0-65 & 255 work ok - (almost) no flickering. this is correct for ALL four channels (Dimmer, R, G, B)

Timing problem! - between the Arduino and the DMX lamp.
found this:
and this:

I lower the DMX packet send rate to 750ms, so i can debug easy.

   // sending the break (the break can be between 88us and 1sec)
   digitalWrite(sig, LOW);

Then i see, that the "flickering" is synced to this time.
It looks like sometimes (every2 to 6 packets?) some bits are scrambled, which causes the change in color level - the flickering
Went to google, found too much dmx protocol info... based on these, I've then tried to manipulate the timings inside the arduino code (based on the code published in the playground). no success yet.
I suspect this cheap dmx led lamp is sensitive to timing..

Any advice from here?

Any suggestion regarding the "arduino as openDmx" thing? as this may help to try to debug the problem using other software.

Thanks again, Oori

Just to add:
based on this (and the previous links)
tried to pad the frame to longer times.
tried to put "Inter-frame-time" between frames.
and so on...



i don't know if i was able to follow you:

you got the same problems while using arduino as a stand alone DMX-master device and also just as a USB to DMX interface for OpenDMX software?
So it seems to be a technical problem and no code problem...

what are you useing as dmx-slave (dimmer) ?
did you tried to use some other master device to attack them?

what kind of lamps are you useing (typ? watt?)?
did you tried to work with some other dmx-slaves?

which arduino version are you running ?
the code is quite old and i don't know if it will work with arduino 006 etc.

i'm not so good in elektronics, I just know some think about theaterlight,
it would be easyer to follow your problem if you could post some pictures of your setup,

tomek (have no clue)

Hi Oori,

It's been awhile since you posted the original message, but were you successful with your DMX project?

I am getting the same voltages as you were instead of the expected +2.5v, -2.5v. I used a MAX 485 and not the SN 75176 as used in the circuit. Although it is supposed to be equivalent, do I need to put in a different resistor? I only have a very limited grasp of electronics.

Also, I had to go back to the Arduino 0005 software because the DMX code is not compatible with 0008.

Has anyone had any success with DMX on the Arduino?


First of all, a late "thanks" to tomek for your answer, i only seen it now...

Macro - at the end, i bought a opendmx (which is not recommended..) and used it for
one project. as i still have the final arduino dmx addon board, and some more dmx hardware now, i can test it again and verify where the problem is. but not these days, unfortunately. perhaps a bit later this month..

but a big NOTE:
for the next project, no doubt i will go for a "normal" usb-dmx interface and not the opendmx - or - the arduino, the reason is that both will never function smoothly
with all hardware setups, as they depend on the computer's clock.
dmx is a "fragile protocol" in regards to time.
also, they very "software-dependent" clocks (for example, different opendmx drivers/software gave different results on some lamps..). and in the dmx world, an error (very) not nice... is & [flickering]..
for more on this, just look at the spec difference of opendmx and the pro version.

good luck, oori

Thanks for the info Oori.

Do you have a write up about your project on some web site somewhere? It would be interesting to look at.

It is a shame that the Arduino is not up to DMX for many devices. It would be good to know of any success stories, or if it works at all.

I still can't get -2.5v, +2.5v signals out of the Max 485, has anyone?


hi marco

dont get me wrong, it does work (so does the open dmx), but if
you need this "error-proof" (glitches,flickers,etc..), then these are
not worth the money you'll save on the hardware. i've searched all through
for opendmx (which is, in this sense totaly identical to the arduino.dmx setup),
tryed a lot of different software/drivers, build my own stuff, etc.. the results
just get better - but whatever you do, there's always that 1% errors...
in light that is VERY annoying !

talking to other people who developed opendmx related software i understood
that this thing is common problem everybody have.. (which is probably why
this cheap opendmx never really became an alternative to all the other usb-dmx)

some tips,
start with martin "purebasic dll" , i found it to be the most stable in my testings.
i have a version also . i originaly wanted to do a osc2opendmx .net app,
but i ended up using Olaf Matthes's maxmsp object - a good one also, which btw olaf stoped developing
because of these unstability reasons...

with clock-glitches - your dmx equipment WILL react diffrently, china made lamps, or old american dmx, or whatever... i think this dmx standard is way worst then midi...
also, it's common your lamp will work nice until it reaches some value, then go mad.. again - this
is a timing problem.

in my last project (to sing a forest, performed in, the dancer was
interacting with lights (and regions), which was controlled in real-time by a tree's movements.
technically - that was done using 6 lamps, opendmx & maxmsp (w/ olaf's object).
I will upload some videos in a week or two to my web site, i will cut a piece from that duet also.

good luck. Oori