If you want to customize your own remote controller for Panasonic HD video camera HC-X900M, or build it into your own system to control multiple camcorders just like my old post “Synchronize multiple Canon Rebel T4i video shooting with reverse-engineered RC-6 protocol“, this post will help you decode the Infra-red signal emitting from its remote controller “N2QAEC000024”.
The appearance of the remote controller already discloses a fact that N2QAEC000024 is more complex than Canon’s RC-6, which has only two buttons. With N2QAEC000024, you basically can control almost everything of the camcorder. And oscilloscope verifies my assumption.
Again you must build a fast-responsive IR signal detector as we talked about in my previous post, otherwise you may lose high-frequency pulses. As I figured out the shortest pulse is only about 9.6us wide. Here are some plots from my oscilloscope：
Figure 1. Overall, there are two groups of pulses about 74ms apart. Actually, the two are duplicates of each other, and I think the second is for redundancy check purpose.
Figure 2. Zooming in on one of groups doesn’t help too much to understand what’s inside as there are still too many pulses.
Figure 3. The very beginning part of a pulses group.
Figure 4. Some random section.
Figure 5. Zooming in to the unit pulse.
After quite a lot of hard work counting the number of pulses and measuring the width of the waveform, I was able to conclude its IR signal protocol as follows:
- Unit pulse (the shortest pulses combined together to form different logic) is about 9.6us high followed by 17.6us low. Totally takes about 27.2us.
- Transmission starts with 129 unit pulses followed by low for about 1.6ms.
- Data is 64-bit wide. Logic High is composed of 16 consecutive unit pulses followed by low for about 0.416ms. Logic Low is low all the way for about 0.851ms.
- Data for START/STOP video capture is: 0b11011111, 0b11111110, 0b11111110, 0b10101111, 0b10110111, 0b11010111, 0b01011101, 0b10111101, or in hex 0xDFFEFEAFB7D75DBA. The MSB bit gets sent out first. (This was later proved to be incorrect. See below for corrected decoding)
I haven’t tried to decode other buttons, but they should follow the same rule with different data sequence.
[Added on 11/26/2013]
I need to correct my original post that the IR signal is not 64-bit long, but 72-bit long (so far). The “start/stop record” command is all the way low (0x00) for the 9th byte, that’s why I mistakenly concluded that the data was only 8-byte long. I recently decoded some of other IR commands (power on/off, menu, up, down, left, right, ok button) and found that some of them are longer than 64 bits. So I conclude again that the IR signal is 72-bit long SO FAR. Also, the delay between the two repeats (Figure 1) is 67.192ms, reducing from 74ms.
Here are the decoded new buttons:
- “Start/Stop Record”
0b11011111, 0b11111110, 0b11111110, 0b10101111, 0b10110111, 0b11010111, 0b01011101, 0b10111101, 0b00000000
0b11011111, 0b11111110, 0b11111110, 0b10101111, 0b10110111, 0b10101101, 0b10111010, 0b10111110, 0b00000000
0b11011111, 0b11111110, 0b11111110, 0b10101111, 0b10110111, 0b11010101, 0b01111101, 0b11010110, 0b00000000
0b11011111, 0b11111110, 0b11111110, 0b10101101, 0b11011011, 0b11111011, 0b01010111, 0b01111010, 0b00000000
0b11011111, 0b11111110, 0b11111110, 0b10101101, 0b11011011, 0b10111101, 0b10101111, 0b01111010, 0b00000000
0b11011111, 0b11111110, 0b11111110, 0b10101101, 0b11011011, 0b10101110, 0b11010110, 0b11011110, 0b10000000
0b11011111, 0b11111110, 0b11111110, 0b10101101, 0b11011011, 0b11011101, 0b10101010, 0b11011110, 0b10000000
0b11011111, 0b11111110, 0b11111110, 0b10101111, 0b10110111, 0b11101011, 0b01111111, 0b11100000, 0b00000000
With new codes, I am now able to simultaneously remote-control 45 HC-X900M video cameras to turn on/off, format cards, change settings and etc,.