IR measurements

A project log for tv-remote-elderly

Christmas gift for my 90+ granny: TV remote with big buttons and option to turn on/off subtitles

Christoph TackChristoph Tack 02/17/2019 at 11:290 Comments

The remote control combines functionality for the set top box and for the TV.

Set Top Box : 36kHz

Reverse engineering CISCO IR Protocol

The output of the TSOP1736 receiver had quite some jitter on it, so I measured the pulses directly on the IR-diode of the remote control.

Later I compared the output of the IR-diode to the output of the TSOP1736 receiver.  The receiver simply acts too slow.  It needs at least 10 pulses per burst, while RCMM only sends six.

Capture showing why the TSOP1736 is useless for decoding RCMM.

Data pulses are sent out at a rate of 36kHz.  That corresponds to a pulse period of 27.5µs.

Capturing the signals has been done using a Saleae Logic Analyzer.

The CISCO ISB6030 set top box uses pulse distance coding.  The protocol is very similar to the Philips RCMM protocol.  The 32-bit version is also called Nokia32.


Data pulses

Always 6 pulses, followed by a predefined pause length.  We notice that there are four different pause lengths used.  So we can assume that each length encodes two bits.  The bit encoding found on SB-projects is added here as a reference.


A packet is comprised of a header, followed by 17 pulse trains.  So 32 bits are being encoded.  The 17th pulse train is only there to show the pause length after the 16th pulse train.

Capture of a single packet showing the header followed by 17 pulse trains

The packet lasts about 10ms.  Every 100ms, the packet is repeated as long as the button is pressed.

Following keys have been decoded:

The last 20 bits of the measured codes of the numerical keys correspond to data published here.

Generating RCMM

[Rafi Khan's] IR-remote library served as a starting point.  The RCMM protocol has been added.  This library implements timings using delays.  For a slow 8MHz controller, this leads to noticeable jitter on the timing of data bursts.  The solution would be to use the Timer2 interrupt instead.

Using Arduino Pro Mini 3V3 to generate the sequence.

Remark the active high signal polarity.  When pin 3 of the Arduino is high, the LED must be on.

Samsung TV : 38kHz

Decoding needed buttons

Connecting TSOP1736 to Arduino Pro Mini.  Loading "IRrecvDumpV2" from the examples directory.