I have a CAT 5 line with 12 DMX devices, each taking 4 channels.
I also have a CAT 5 line with 8 microcontrollers (ex. Arduinos). These controllers need to send back data, and require error detection.
Both chains have the same 8P8C layout. I would like to chain the two lines with the following communication rules:
1) 250,000 baud (for DMX512), 8N2
2) The master sends out DMX512 frames a minimum of once every second with the standard start byte (null)
3) When there is enough time to complete a communication, the master sends a SLIP encoded packet with CRC-CCITT integrity check. The packet includes an address that tells one of the controllers to respond with a SLIP encoded packet with CRC-CCITT integrity check. The communication is prefixed by an END byte to ensure interpretation as a new packet.
It is my understanding that since all of the SLIP packets would begin with
0xC0, the DMX devices will ignore them. The DMX devices would only accept data with the magic DMX incantation (break, mab,
Similarly, the microcontrollers would discard all of the DMX messages because they would not begin by issuing
0xC0, and if a
0xC0 is found in the message, the packet that follows would fail the corresponding integrity check.
What are the caveats to this approach? Do I misunderstand how DMX will handle the SLIP messages? Would it make more sense to have the microcontrollers implement RDM?
In case it isn't clear, I control all aspects of the master and the microcontrollers, but the DMX devices are off-the-shelf.