Keith, Welcome to the list! In transmitting DMX512 with a PIC (I do it with a 16c74a), it's kinda tricky to get the break timing right due to the double buffering of the transmit side of the uart. What I finally did is to use a timer interrupt instead of the uart interrupt. This way the uart transmits immediately on loading. When the timer interrupt comes back again, the uart has finished sending the byte. It is then safe to send the break. By the way, how are you sending the break? The 16c74a doesn't have a break function, so I did it in hardware. I put a resistor between the serial transmit data pin and the driver chip. The end of the resistor away from the chip is tied to another I/O pin that is normally tristated. When I want to send a break, I turn that pin on with a programmed zero. Then tristate the pin when you want to end the break. Finally, I used a state machine to figure out where we are (transmitting break, sending mark after break, sending start code, sending data bytes). Also, to see what's going on, I suggest toggling an I/O pin at various points in the code to trigger a scope. The above discussed "break pin" can be used for this, letting you see the break, mark after break, start code, and first few code bytes. If you have delay triggering, you can lootk at the whole string! Also, the Lil DMXter is a very handy piece of equipment. It will verify the protocol and give you various parameter values. Good luck! It CAN be done! See the StarPort at http://www.dovesystems.com . Harold