Hello to all, first post here!
I am writing a DMX software program to control lighting gear from my laptop at live sound gigs. I'm a very experienced RS 232 programmer (VB.NET VS 2005), so I bought an RS 232 to RS 485 Converter box from B&B electronics. I've wired up my own DMX connector from the box...
I also have the entire ESTA National Standard USITT DMX 512-A book with all the DMX specs. I know that (from pages 19 & 20 of the book), the timing is critical. I know I can set up the serial comm (232 side) so that the port is opened with, say 9600 baud, 8 data bits, 2 stop bits, no parity and RTS handshaking. This should do the trick, since I'm using the 485 converter box.
What I am not sure about is sending the right characters. Let's say I want to send the "SPACE FOR BREAK" followed by the "MARK AFTER BREAK" and then the NULL (START CODE) followed by the Channels 1->4 data only.
If I want Channel 1 data to be 3C (hex), Channels 2->3 to be 00 (hex), and Channel 4 to be FF (hex), I would normally think that I just have to send the following bytes for the complete loop: 00 FF 00 3C 00 00 FF. But this doesn't seem to be working right. When the specs talk about setting the line high or low, how does that relate to the characters that I'm sending? What is the converter box doing in terms of the incoming data, and do I need to shift the data I'm sending with regards to the least significant bit/most significant bit (LSB/MSB).
Thanks to all!
domls
I am writing a DMX software program to control lighting gear from my laptop at live sound gigs. I'm a very experienced RS 232 programmer (VB.NET VS 2005), so I bought an RS 232 to RS 485 Converter box from B&B electronics. I've wired up my own DMX connector from the box...
I also have the entire ESTA National Standard USITT DMX 512-A book with all the DMX specs. I know that (from pages 19 & 20 of the book), the timing is critical. I know I can set up the serial comm (232 side) so that the port is opened with, say 9600 baud, 8 data bits, 2 stop bits, no parity and RTS handshaking. This should do the trick, since I'm using the 485 converter box.
What I am not sure about is sending the right characters. Let's say I want to send the "SPACE FOR BREAK" followed by the "MARK AFTER BREAK" and then the NULL (START CODE) followed by the Channels 1->4 data only.
If I want Channel 1 data to be 3C (hex), Channels 2->3 to be 00 (hex), and Channel 4 to be FF (hex), I would normally think that I just have to send the following bytes for the complete loop: 00 FF 00 3C 00 00 FF. But this doesn't seem to be working right. When the specs talk about setting the line high or low, how does that relate to the characters that I'm sending? What is the converter box doing in terms of the incoming data, and do I need to shift the data I'm sending with regards to the least significant bit/most significant bit (LSB/MSB).
Thanks to all!
domls