why should someone send 4 different codes per button when one is enough for switching?
To respond to the last question first, I think the extra codes are designed to operate either alternative or legacy receivers as well.
What I am suggesting is the 'curious' bits are a permanent (not rolling) unique factory number randomly chosen
However I think I am right in saying - someone above tested the switching by just sending the one pattern, and only sent it once, and it still worked?
the same pattern has to be received say at least 3 times (out of the 4, or all 4) to be considered valid, in which case there would be little need for a checksum concept in the 'curious' bits.
Either way, if I was designing a receiver to listen to the remote I would just accept the whole pattern as a given, put any further diagnosis aside, program the Rx to learn the pattern, and then listen for at least 3 identical packets and use that as the validity check. Pretty crude, but I reckon it would be ok.
These bits are permanent in the remote (even if you remove the battery).This code may have been generated randomly in factory but it has to be "curiously-associated" to 7 other codes (3 on, 4 off) through an algorithm we'd like to understand.If the 8 codes of two buttons are indeed generated randomly (no correlation between them), then it implies every receiver knows all the remotes that could exist. A single remote would mean to be able to store 8(buttons)x4(codes)x16(bits)=512Bytes. I don't know how many different remotes the factory would like to implement, but I guess it will soon be a huge memory. However, today memory costs nothing...