Convert old IR remote controls into presentation clickers using an RP2040 USB board and open-source TTVKTR firmware

IR remote control RP2040 USB HID

Brisk4t’s “Tossed The TV — Kept The Remote” (TTVKTR) is an open-source firmware project for Raspberry Pi RP2040 USB boards that aims to reduce electronics waste by converting old IR remote controls into presentation clickers.

Most Raspberry Pi RP2040 boards with USB ports should work, but the project highlights the Waveshare RP2040-Zero combined with a standard 38 kHz infrared receiver due to its small size and low price ($4-5). The project also relies on the built-in RGB LED for layer color feedback.

IR Remote control to presentation clicker RP2040 project

That’s about it for the hardware. It just required some basic soldering of the IR receiver to GPIO 28 (OUT), 5V or 3.3V, and GND pins. Nothing too hard. The WS2812 RGB LED is already connected to GPIO 16. I tried to look for RP2040 USB boards with a built-in IR receiver, but I could not find any.

 

Waveshare RP2040-Zero Pinout
Waveshare RP2040-Zero pinout diagram (top)

The firmware receives IR codes from a standard 38 kHz receiver and translates them to USB HID reports based on a JSON configuration stored on the device’s filesystem. But users don’t need to edit the JSON themselves, since a browser-based config tool communicates over Web Serial to let users map buttons, learn IR codes, and arrange layouts in a way similar to VIA or QMK for mechanical keyboards and macropads. It’s what differentiates TTVKTR firmware from other similar attempts such as Adafruit pIRkey and CH32V003-USB-IR-Receiver, which require some manual coding for each remote.

TossedTheTVKeptTheRemote web UI
TossedTheTVKeptTheRemote web UI

The user interface offers the following features:

  • Custom Keybindings UI in a browser for assigning remote buttons to keys, media controls, or custom actions.
  • Multiple layers for one remote with the board’s RGB LED showing the layer selection
  • Support for multi-step inputs, including modifier combinations, repeated presses, and chained actions.
  • Layouts enable a distinct way of telling different IR remotes apart
  • Manual configuration editing with JSON editor

Example of JSON file stored in /settings.json on the board’s partition:


Note that you’ll need Chrome or another browser that supports Web Serial, and for instance, Firefox is not supported [Update: recent versions of Firefox now support WebSerial, see comments section].

The source code for the firmware (Arduino/PlatformIO) and web interface (HTML+JavaScript), as well as instructions to build the code and get started, are available on GitHub.

Via Hackster.io

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.

Radxa Orion O6 Armv9 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
8 Comments
oldest
newest
Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC