Shop OBEX P1 Docs P2 Docs Learn Events
DMX(rs-485) drivers with RDM — Parallax Forums

DMX(rs-485) drivers with RDM

jeromelabjeromelab Posts: 31
edited 2012-08-27 04:12 in Propeller 1
I need Half-duplex communication in my application, usually this is easily done over a DMX chain by having the controller sending a special message to slave, controller switching to listening state and slave sending his message, then switching everything back to normal mode.

But this time I have a problem, I need to use splitters and these splitters have been designed so that they filter what is going through in the slave to master direction. These splitters will only let a RDM transaction pass in this direction.

I seem to remember that some people, like Timothy D. Swieter, author of a dmx in object, or Johnny Mac, author of another dmx-in/out object, had all intentions of having RDM supported. I am bit in a hurry and if there is even partial code that has been implemented I would like to see it.

If anybody has a DMX-RDM enabled library/object, I would be happy buying it. If anybody has the talent and time to code it in the coming days, I can pay him.

Thanks for reading, would appreciate any help.

Comments

  • JonnyMacJonnyMac Posts: 9,194
    edited 2012-08-21 03:20
    I've not spent additional time on this as it has not been raised by a client and I don't have an RDM-compatible fixture. That said, all of my DMX circuits are intended to be used on DMX or RDM systems via direction control of the RS-485 transceiver.
  • Mark_TMark_T Posts: 1,981
    edited 2012-08-21 03:46
    Depending upon how sophisticated the splitters are it might be enough to simply label the return traffic with a 0xCC start code - the full protocol might not be needed if you are providing the controller end. I am guessing though...
  • jeromelabjeromelab Posts: 31
    edited 2012-08-21 06:25
    The splitters will only work if you are sending correct RDM messages in a valid RDM transaction. As it will decode the incoming signal and enforce RDM port turnaround timings. This whole RDM transaction is a bit complex for me. A simple 0xCC startcode doesn't go thru in the responder/controller direction, I tried, but I could be doing something wrong in timing. By hooking up two DMX USB pro from enttec, one running the enttec responder test software and the other the enttec controller software, it does go thru, so the splitter clearly filters messages.

    The timing and formatting of RDM messages is a bit too complex for me, I would happily pay (purpose is an artwork, so no big budget but I have still some money left for production) to have a RDM/DMX propeller object. I would even propose to distribute it on the OBEX when it is finished. However at the moment I need just to be able sending a RDM message and get a response, whatever it is, I just need to check if the propeller is on the dmx line.

    Anybody up to the task? Purpose is an artwork (I am the artist) in Toulouse-France, a field of stainless steel tubes, cut gradually shorter so that it forms a crater, each of the 400 tubes is fitted with a propeller managing light(at night) and sound(the rest of the day). I just received the splitters and was hopping to use my own version of "rdm", but it doesn't work through the splitters and time is getting short, I need to flash the propellers with this firmware asap.

    Here are some renderings of the artwork.
    https://dl.dropbox.com/u/3055027/champs%201.jpg
    https://dl.dropbox.com/u/3055027/nuit%20blanc.jpg
    https://dl.dropbox.com/u/3055027/nuit%20blanc_rouge%202.jpg
    https://dl.dropbox.com/u/3055027/nuit%20blanc_rouge.jpg
    https://dl.dropbox.com/u/3055027/nuit%20rouge.jpg
  • CircuitsoftCircuitsoft Posts: 1,166
    edited 2012-08-21 10:13
    Since this is completely your own project, is there any reason you can't just use straight 485? If you're going slow enough, use fewer and/or larger terminating resistors on the line. The wires you're dealing with look short enough that reflections shouldn't be much of an issue.
  • jeromelabjeromelab Posts: 31
    edited 2012-08-21 14:52
    If I would have designed the splitters I could have used plain RS-485. But it seems all the currently available (commercial design) line splitters are supporting bidirectional messages only with RDM. If somebody knows of a line splitter that doesn't filter RS-485 messages, it could be a solution.
  • CircuitsoftCircuitsoft Posts: 1,166
    edited 2012-08-21 19:31
    Why not just physically tie all the lines together in parallel? What does the line splitter do for you?
  • jeromelabjeromelab Posts: 31
    edited 2012-08-22 04:56
    Well because of input loads. Basically (but depending on the rs485 transceiver chip you use), you can have maximum 32 transceivers on one line, if you add more weird things will happen, and I have 400 transceivers. You need some kind of repeater or line booster/splitter. Splitting a line is easy, but making it bidirectional is not. I use commercially available DMX splitters for this purpose.
  • DynamoBenDynamoBen Posts: 366
    edited 2012-08-22 14:20
    I started on some RDM code a year or two ago but it is unfinished and is in ASM. If you want to try to get it to work I can post what I have here. All I ask is that you post back with the working code so I can get it into the OBEX.
  • CircuitsoftCircuitsoft Posts: 1,166
    edited 2012-08-22 15:38
    From what I understand, you're limited to 32 transceivers on a line because of the terminating resistance. The main reason for the terminating resistance is to prevent reflections on very long (multi-km) lines. Since your lines are all within a relatively small are, I imagine you can skip the terminating resistors on most of the nodes, especially if you minimize your baudrate.
  • Mark_TMark_T Posts: 1,981
    edited 2012-08-22 16:21
    From what I understand, you're limited to 32 transceivers on a line because of the terminating resistance. The main reason for the terminating resistance is to prevent reflections on very long (multi-km) lines. Since your lines are all within a relatively small are, I imagine you can skip the terminating resistors on most of the nodes, especially if you minimize your baudrate.

    Reflections will cause glitches on much much shorter lines than 1km!!!

    Terminators are only used only at the ends of a line, that's a given, the issue is loading from the driver amps and receiver amps - the standard specifies a limit of 32 to allow leeway in the design of the driver/receiver electronics. Check out this driver chip though: http://www.datasheetcatalog.org/datasheet/sipex/SP481R.pdf
  • DynamoBenDynamoBen Posts: 366
    edited 2012-08-22 16:26
    DynamoBen wrote: »
    I started on some RDM code a year or two ago but it is unfinished and is in ASM. If you want to try to get it to work I can post what I have here. All I ask is that you post back with the working code so I can get it into the OBEX.

    The partial code that I have assumes that the device is a receiver not a transmitter. Is that what you are looking for? Do you have the time to work with it, it sounds like you need something that is finished and working?
  • JonnyMacJonnyMac Posts: 9,194
    edited 2012-08-22 16:43
    Do you have the RDM spec? So far as I know the full (official) spec is not a public document, it must be purchased.
  • DynamoBenDynamoBen Posts: 366
    edited 2012-08-22 17:01
    JonnyMac wrote: »
    Do you have the RDM spec? So far as I know the full (official) spec is not a public document, it must be purchased.

    Not sure who the question was directed at, if it was me then yes I do.
  • jeromelabjeromelab Posts: 31
    edited 2012-08-26 10:18
    @Dynamoben, I posted a private message. Just the partial code is better than nothing, and yes I need a receiver, but according to RDM, a receiver has to "answer" to master's request (so it is for a brief moment a transmitter).
  • DynamoBenDynamoBen Posts: 366
    edited 2012-08-26 12:07
    jeromelab wrote: »
    ...and yes I need a receiver, but according to RDM, a receiver has to "answer" to master's request (so it is for a brief moment a transmitter).

    That is the case, and that is what the code is doing.
  • Mark_TMark_T Posts: 1,981
    edited 2012-08-27 04:12
    JonnyMac wrote: »
    Do you have the RDM spec? So far as I know the full (official) spec is not a public document, it must be purchased.

    Heaven forfend that anyone should google "ALL_DEVICES_ID DMX pdf" though...
Sign In or Register to comment.