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, 0x00
, ...).
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.