Some more thoughts on this. My "can't remember" proposal is based on the model that I take down all my equipment, (some of which looks very similar) and store it in a heap for 10 months, and then try to remember which unit is which. From my own experience, and perhaps this is simply OMS speaking (old man syndrome), I quickly lose track of which is which when they are stored in a box together.

*for arguments sake I'm saying PIC and PIC Programmer, but this could apply to other micro's as well*

I can only think of two scenarios when you would change the serial number on a device.
  1. First time the device is being programmed.
  2. You have forgotten the serial number and must program a new one, so that you can program a DMX address.

I think it's safe to argue that in the first case you would already have the device connected to a pickit (or similar), and thus the device is unlikely to be connected to the rest of the DMX chain. It could also be argued that you could use the pickit to write the serial number to begin with as well. But if you have the option to write the number afterwards, I'm sure that it would be used. The point here being that I think it unlikely that the device would still be connected to the DMX universe at this point in time, thus the use of the NEW serial number message, minus the old serial number would be safe.

In the second case, if don't know the existing serial number, the "program NEW serial number" command would be useless if it required the presence of the old (unknown) serial number to do so. So you would be forced to pull out the PIC programmer again. This is my bigger concern.

I can't think of any other scenario where we would re-program the serial number.

As to the old DMX address as part of the new DMX address message. If the serial number is used to uniquely identify the device, I don't see what role/function there is in sending the old address, other than to reduce false positives. The checksum will prevent this. As such, I think it only likely to get in the way for those times when the DMX address is not known. In *those* scenarios, the operator would be stuck, doing a binary search of the Universe to figure out the old address, or forced to pulling out the PIC programmer and mucking with the EEPROM directly.

In general I'm much better with a whiteboard, for this type of discussion. If anything in here reads of sarcasm, snarkyness (is that a word?), or rudeness. Please go back and read it again, but choosing a different "voice in your head". Trying to keep this level and technical. It's a good discussion so far, and precisely the sort of thing I expect while we decide how a new protocol should work.