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

Public Chat
Similar projects worth following

My grandma struggles with her standard TV remote:

  • She holds it backwards, pointing it at herself.
  • She thought her TV was broken, because she could no longer switch it off.  It was found later that the batteries of the remote had run out.
  • She navigates herself into menus she can't get out off anymore.
  • She has has broken buttons because she pushes them so hard. 
  • She only uses three channels : 1, 3 & 7. 
  • When pushing a key for too long, the TV interpretes it as a new key: so 7 becomes 77.

We can do better:

In an ideal world, the remote would have Bluetooth low energy, so you wouldn't have to point it to the TV at all.  TV could then also send data back to the remote.  So your remote would know if your TV is on at the least and what its current state is.  Is the correct HDMI channel selected and so on.

Your TV would even have a button to sound the remote so that you can easily find it back when you misplaced it.  Well, we're not there yet.  So let's work with what we do have : infrared remote.

University of Victoria tackled the same problem in another way.  They're replacing the IR transmission by RF transmission.  The downside is that you need to hook up extra hardware to the TV-set.  You have to stick an IR transmitter to the IR receiver of the TV set.  This disables operation of the original TV remote.  You have to be sure that it keeps stuck in the correct spot.  It might fall off when someone cleans the TV.  It makes the mess of wires often found behind a TV set only worse.  The RF receiver must be turned on all the time.

Proposing the following:

  • Bright color will make it easy to find.
  • Key switches from a computer keyboard are designed to be mistreated.
  • Laser diode serves two functions : visible indication that remote is operating.  Visible indication of pointing in the right direction.
  • Limiting the number of keys.  This will make it possible to use larger buttons.  It hides the unneeded features of the remote.
  • The following functionality will be present:
    • 1 button : red : TV on/off (set top box remains always on)
    • 3 buttons for the channels : 1, 3 & 7.
    • 2 buttons : volume up/down
    • 1 button : green : subtitles on/off

  • IR measurements

    Christoph Tack02/17/2019 at 11:29 0 comments

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

    Set Top Box : 36kHz

    • Numerical buttons (for selecting channels) : 1, 3, 7
    • 1 button : green : subtitles on/off

    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.


    • 16 pulses : 16 x 27.5µs = 441µs
    • 10 pulses pause : 10 x  27.5µs = 275µs

    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.

    • 10 pulses pause : 10 x  27.5µs = 275µs     --> 00
    • 16 pulses pause : 16 x 27.5µs = 440µs      --> 01
    • 22 pulses pause : 22 x 27.5µs = 605µs    --> 10
    • 28 pulses pause : 28 x 27.5µs = 770µs     --> 11


    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:

    • key subtitles on/off : 0x22C0263C
    • key 1 : 0x22C02601
    • key 3 : 0x22C02603
    • key 7 : 0x22C02607

    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 IR LED must be on.

    Samsung TV : 38kHz

    • TV on/off (decoder remains always on)
    • 2 buttons : volume up/down

    Decoding needed buttons

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

  • Infrared hardware

    Christoph Tack12/07/2018 at 11:29 0 comments

    IR Transmitter


    • powerful
    • wide opening angle
    • common package
    • good availability

    IrDA modules look interesting at first sight because they also include a receiver.  They're expensive however.  At least €4/pce.  They also transmit on a shorter wavelength.

    Selected part : Lumex OED-EL-1L2

    • Viewing angle : +/- 30°
    • Radiant intensity : 60mW/sr @ 50mA
    • Wavelength : 940nm
    • Max continuous current : 100mA
    • Max peak current (1% duty cycle, <100µs) : 1A
    • Max forward voltage : 1.6V
    • Alternative part number : Everlight IR7393C
    • Digikey 67-1001-ND

    IR Receiver

    The remote of the set top box uses the RCMM protocol.  This protocol uses very short data bursts, many receivers can't cope with that.  Vishay, which has the most extensive range of IR receivers allows to filter by IR-protocol.

    • TSOP94336 : advised IR receiver by Vishay for RCMM.
      • Supply voltage: 2.0 V to 3.6 V

  • MCU Selection

    Christoph Tack12/06/2018 at 21:00 0 comments


    • low power : 3V3, not 5V
    • at least 7 GPIOs, 9 preferred.  We don't want to read the status of the switches with an ADC.
    • as small as possible
    • cheap
    • easy to solder
    • Availability : 2nd sourced
    • PlatformIO support


    Arduino Pro Mini 328 - 3.3V/8MHz

    • newer versions have four extra GPIOs : pin A4, A5, A6 & A7.  These are located two by two on the right hand side of the MCU.  Older versions have only two extra GPIOs.
    • Requires an FTDI serial USB converter for programming.
    • 33 x 18mm

    Adafruit Pro Trinket - 3V 12MHz

    ProTrinket 3V has same pinout as 5V version
    • Adafruit
    • 38x18mm
    • 20 GPIOs
    • Mouser 485-2010: €8.69
    • faster than ItsyBitsy 32u4, but less IO and limited USB support (no CDC)
    • with the FTDI header, there's no need to push the reset button every time you want to upload code.
    • 12MHz is an uncommon frequency.  Some libraries won't work out of the box.
    • D7/AIN1 is used for USB, so the analog comparator functionality is crippled.

    Adafruit ItsyBitsy 32u4 - 3V 8MHz

    • 36x18mm
    • 23 GPIOs
    • native USB (HID, CDC)
    • PlatformIO support
    • ItsyBitsy M0 Express is a performance upgrade for this board.
    • Mouser 485-3675: €8.69
    • Only to be used when you want decent USB support and an AVR-architecture.  If AVR is not strictly needed, you'd better go for the ItsyBitsy M0 Express

    TinyDuino Processor Board

    • 20x20mm : tiny, but widest board
    • connection through fine pitch board to board connector
    • 20 GPIOs
    • Mouser ASM2001-R-B: €10.87
    • Requires stack-on PCB to make the GPIOs available and for programming.
    • This board also has an SAMD21 upgraded version.

  • Firmware

    Christoph Tack12/02/2018 at 16:31 0 comments

    Similar projects

    Self-learning TV Remote for the elderly

    There's something interesting in every project, no matter how amateurish it may look.

    IR library

  • Button selection

    Christoph Tack12/01/2018 at 15:32 0 comments


    • Durable
    • Big enough but not too big that there's no more room for button caption.
    • Withstand excessive force


    30mm arcade buttons

    • Drawing
    • Switches are too big to fit at least 7 of them on a panel.

    Cherry MX keyboard switches

    • Designed to last, >50 million operations.
    • Cheap & multi sourced :

      • AliExpress: you never know what you'll get.  Probably all of these switches will be very noisy.  The advantage is the translucent top of the switch.  It allows to use SMD LEDs.
        •  Black (€1.14/10pcs)
        • Brown (€1.12/10pcs)
        • Red (€1.20/10pcs)
        • Blue (€1.17/10pcs) 
      • Digikey: only for T-1 3mm LEDs.  Be sure to order LEDs with a height lower than 4.7mm and an LED flange with a diameter of 3.2mm or less.  Lumex or SunLED can be used, Kingbright not.
    • Requires key caps

  • Housing selection

    Christoph Tack12/01/2018 at 14:45 0 comments


    • Easily found when misplaced
    • Big enough to hold easily but not too big that it's cumbersome
    • Should have a battery compartment so that unskilled personnel can replace batteries without having to open up the housing
    • Room enough for the necessary buttons
    • Nice looking housing, attractive appearance


    Hammon Manufacturing offers a wide range of suitable housings in their 1553 series.  Chinese copies are available from SZOMK: AK-H-30 series.

    Selecting color

    • Gray/black : dull, hard to find when misplaced
    • Red : red color relates to danger or things that are hot.  Preserve this color for objects that are dangerous/hot.
    • Translucent blue : useful for white or blue LEDs on the PCB.  No need to drill extra holes in the housing.
    • Yellow : perfect color

    Selecting size

    There are two options for a yellow case with a battery compartment:


    ABS blocks NIR.  Hammond Mfg. provides a PC (polycarbonate) window : 1553DIR-BULK.  This part can't be bought from the usual online resellers.  It might be better to find a piece of PC with the correct thickness and laser it.  Another option is to keep the current ABS panel and drill a hole for the LED in it.

    Battery compartment

    Room for two AA-cells, or one PP3 9V battery.  Two AA-cells will be used here because they offer the highest energy per dollar.


    1553DYLBKBAT : IP54 Handheld Enclosure, ABS, Yellow, 147 x 89 x 24mm

View all 6 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates