So, I’ve been trying to work out a way to quickly and easily reprogram those LED license plate frames you see on the backs of people’s cars. Progress has gone well so far, and you can read about the plan and the process in previous entries… Part 1, and Part 2
Using the Infrared Toy, I was able to sample some of the raw signals from the LED license plate frame’s remote. The following output is from an “Enter” key tapped once:The protocol is instantly recognizable as NEC because of the leading 9ms HIGH followed by a 4.5ms LOW. NEC has a 38khz carrier frequency, and bits are encoded by the time between the leading edges of the pulses as opposed to duration of a pulse. Logical 0 is 1.125ms long from leading edge of one bit to the leading edge of the next and Logical 1 is 2.25ms. Check out this excellent page about the NEC Protocol. Ken Sherriff has posted on his blog an incredibly useful description for understanding Sony’s IR protocol, but most of his info applies to other protocols as well. He has also developed an IR Arduino library which I may need to take a closer look at for this project!
With NEC, after the header, the bits are transmitted LSB (lowest significant bit) first. The unit address is 8 bits long and then its inverse is transmitted as a form of error checking… The command address then follows, is also 8 bits, and is similarly repeated inverted.
The following is the “decoded” signal in binary:
| 0 0 0 0 0 0 0 0 | 1 1 1 1 1 1 1 1 | 1 0 0 1 0 0 1 0 | 0 1 1 0 1 1 0 1 |
|_ _Address __| _!Address__|_ Command_| !Command _|
Read backwards (LSB) and converted to hexadecimal we get:
Address – 0x00, Command – 0x49
This doesn’t seem like it should be too hard to mimic with an Arduino based system.
Part 4 is up in which I rig up an Arduino with an IR sensor and an LED to test the recording and playback of the remote control IR codes… It didn’t exactly go according to plan.