Rev15 of the Arduino DMX Reception Software Released
New in this version:
- Tested and working with IDE version 0021. I have not tested it with the new Arduino Uno hardware, but can’t think of any reason why it wouldn’t work. If you have any success or otherwise with the new hardware, drop a line in the comments.
- A bug has been fixed in the addressing routine caused by button debounce, and the addressing routine logic has been simplified and made clearer. Big thanks to Ron Barber for pointing out the source of the bug and contributing new code.
- There is now a check when the previously stored address is read from EEPROM to ensure that it is in the valid range of 1-511, to prevent a bad value being read in from uninitialized EEPROM.
-
Fixed a potential bug in the break detection routine that could cause the read values to be off by one in cases where the break from the microcontroller was exactly 88uS.
You can grab it here or mosey on over to the original post for the instructions.


October 15th, 2010 at 7:02 pm
Am I doing something wrong with putty; all I am seeing when I transmit a value it get symbols and letters shouldn’t I be getting a numeric value written?
Putty
Serial Com5
Baud 250000
2 Stop Bits
Flow None
No Parity
Thanks for some help
October 16th, 2010 at 3:48 pm
Hi Brian,
Working as intended, congratulations! Putty interprets the 0-255 values as ASCII, e.g. 065 = A. I think there is a way to make it display decimal values, though. I use a shareware called RS-232 Analyzer, which can be set to output decimal values (Using 256000 baud, which is close enough, apparently).
Max
October 27th, 2010 at 6:58 am
Thanks a lot,
I,ve got my project up and running now :D
November 9th, 2010 at 10:43 pm
Hi folks,
I still would like my DMX reciever to use dip switches for addressing. I’ve seen that many fixtures use a 4051 multiplexer/demultiplexer between switches and processor. It only takes 4 pins of cpu. Since I’m all new to this programming stuff, maybe somebody can give me a hint how this setup works and how to integrate it with Max’ software?
December 5th, 2010 at 8:25 pm
Thanks Again for all of your help and what you have done, helped me start moving my christmas lights to DMX. I have built some basic boards that are more stripped down versions of the Arduino.
January 1st, 2011 at 4:09 pm
Arduino 0022 was released on Christmas but the core files have been modified to use register-based and not CPU-based #if defines.
I was curious if it were possible to implement an #ifdef (ARDUINO_DMX) into the HardwareSerial code so that we just have to include #define ARDUINO_DMX into the source code. Any suggestions?
January 10th, 2011 at 9:35 am
Hey Max, I’ve implemented my second project using your receiver code. Thanks! This one is a full-feature DMX RGB LED fixture using Brian Neltner’s LED Array.
http://www.danjuliodesigns.com/projects/projects/dmx_fixture.html
The only changes I made to the core code was to completely decouple the DMX reception from the main loop (I did this for the other project).
January 10th, 2011 at 9:28 pm
Hey Dan,
Wonderful build, it really looks like you thought out how all the parts need to connect and mount, which is definitely not an easy thing. I will be interested to take a look at your code to see what changes you have made.
Siliconsoul,
I will also take a gander at the new version of the software, to see if easier accomodations for the code might be made. From a cursory glance, the issue seems exactly the same– the Arduino software calls dibs on the serial receive interrupt, whereas we would like to use it for our purposes?
January 23rd, 2011 at 9:57 pm
Is this version (15) working with the 0022 Arduino build? I’m having a bit of trouble. With both my UNO board and Duemilanove board I’m getting some signals, but the timing seems off. When I should get a signal on channel 1,3,5 and 7 (for example), I’m actually getting signal on 0 and 3.
Any thoughts of places I should start troubleshooting?
February 27th, 2011 at 2:31 pm
Does this need to be compiled by some other program like xcode. I been having a hard time getting this to work.
June 20th, 2011 at 11:22 am
hi!
Well job man! I put it in an arduino UNO usoing arduino 022, and it worked! I had some problems, output was random because my “reciever”‘s inputs (a simple differential with tow transitors) was inverted…
I put off the adressing too, and I need to add 3 to start to the good @…
Tomorrow, I will get it in live to drive my fog machine and some lights on / off, hoping I will manage to build a dimer in future.
has somebody tryed it working both with dmxSimple? I would like to make a dmx bridge to group some tracks and save some of my poor 12 tracks console…
thanks!