In a
console, you have some sort of microprocessor outputting
DMX data as a
TTL signal. That TTL stream is
fed to an RS485 transceiver (like the Max485, 1487,
etc), which converts the TTL
voltage levels to RS485
voltage levels used in
DMX signaling (it has zero
effect on an other aspect of the signal). When you cut off
power to the
console, the
power supply
voltage will wind down as its filter capacitors discharge, and when the supply
voltage drops to a certain
level the TTL stream can become unstable, and turn into 'garbage'. The transceiver, however, may still continue to translate
voltage levels until the supply
voltage drops further and it shuts down completely--in the intervening time, the transceiver dutifully converts the TTL garbage to RS485 garbage, and sends it on down the
DMX line, and any receiving devices will respond to whatever ones and zeros they receive as best they can. In practice, this can lead to stuck channels like the OP is suffering.
There are a couple ways to
address this problem. One is to enforce an ordered shutdown of the
console: where a 'soft'
power button is provided that tells the microprocessor to initiate a shutdown sequence that has it complete the
current DMX packet, and then during the break between packets
switch the RS485 into high
impedance or receive mode, then tristate its own
UART pins (with pulldown resistors on the transceiver's input pins to hold them low). Those steps should keep the
DMX output stable as supply
voltage drops, and the microprocessor can then tell the
power supply to shut down (much like how a modern computer works).
On the other end of things, this would be entirely a non-issue if the
DMX protocol incorporated even rudimentary error checking. If it were mandated that receiving devices verify a checksum against each packet before acting on any data received, then any garbled/corrupted data would be simply rejected. This would also go a long way to help with issues caused by cable/termination problems, since it would be very easy to verify a problem with the data itself as opposed to, say, a dying
dimmer. As it is now, a receiving device has no way of knowing whether the actual ones and zeroes it is receiving are the same ones and zeros the
console intended for it to receive.