I have now been working on my setup for about a week, and I simply can't get it to work. My problem is:
I want to make my own DMX controller and therefore I have bought two RS485 breakouts from Sprakfun (http://www.sparkfun.com/products/10124
). The reason why I have bought two RS485 is that I want to also make a DMX receiver for testing purposes.
First of all, I made the whole setup work by using the dmxserial (http://www.mathertel.de/Arduino/DMXSerial.aspx
) library and two Arduino UNO's. I made the circuit by from this schematic (http://www.mathertel.de/Arduino/DMXShield.aspx
). As I understand the dmxserial library, you cannot use the Arduino hardware serial while using this library. This means that you can't send serial data from ex. the Arduino serial monitor, when using this library. That is a problem for me, because I want to make a "generic" dmx controller you can both put standalone applications on and it should also be possible to program the controller so that it just forwards messages from ex. Arduino serial monitor. Therefore I wanted to use the dmxsimple library insteadof dmxserial. It seems pretty simple when you look at the homepage: http://code.google.com/p/tinkerit/wiki/DmxSimple
and everywhere I read it just seems to work.
In my current setup I have left the receiver part of my setup with the dmxserial library uploaded to the Arduino, and I have uploaded the fadeUp example from dmxsimple to the transmitter Arduino. I have followed this circuit in my transmitter setup: http://www.arduino.cc/playground/DMX/DMXShield
This means that I have made the following connections between my Arduino UNO and the RS485 breakout:
breakout GND to Arduino GND
breakout RX to Arduino pin 3 (default for output in dmxsimple)
breakout TX to Arduino GND
breakout RTS to Arduino 5V
breakout 5V to Arduino 5V
The reason why I have set RTS to 5V is because RTS is connected to RE DE on the breakout (http://dlnmh9ip6v2uc.cloudfront.net/datasheets/BreakoutBoards/RS485-Breakout-v13.pdf
). When both RE and DE are high, then only the driver part is enabled (http://tomekness.files.wordpress.com/2007/01/dmx_and_arduino_tutorial.pdf
- page 3).
The problem is now that it simply doesn't seem to work. I know the soldering and therby the physical connections are ok, because it worked when I used the dmxserial lib., and I have made measurements with a multimeter. When I try to send something over this setup, I have found out that, when I initially send something then pin 3 goes high and it seems like it freezes there forever. When pin 3 goes high it actually sends that to the receiver part of my setup. I have tested it by attaching an LED to the TX output on my DMX receiver RS485 breakout.
Because DMX and RS485 are standards/protocols I can't see that it should be a problem to use dmxsimple on the transmitter side and dmxserial on the receiver end. They should be able to talk to each other (as I understand).
I have read about some people having problems using Arduino UNO and Arduino 1.0. I have tried using a Duemilanove 328 and Arduino 0.21, but it resulted in the same problem I am facing now. Forthermore, I have tried to shift out Wiring.h with Arduino.h It didn't seem to make any difference either (except the ability to compile with Arduino 1.0).