On Raspberry Pi, you can control Kodi with almost any infrared remote, for a few euros of hardware. This feature is for Kodi only (not EmulationStation nor games).
Before pulling out the soldering iron: if your TV supports HDMI CEC, its remote already controls Kodi with nothing to install. The Kore or Yatse smartphone apps are also hardware-free alternatives.
This setup requires editing system files over SSH and has not yet been re-validated end to end on Recalbox 10.1. If you get stuck, ask for help on the Recalbox Discord.
You need a 38 kHz IR receiver, for instance a TSOP4838 module (about 1 €, from any electronics store). It comes either as a bare three-legged component topped with a small bulging black lens, or as a module already mounted on a small board. On a module the three pins are silk-screened (VCC or +, GND or −, OUT or S); on a bare TSOP4838 the legs are, with the bulging lens facing you, OUT, GND then VCC from left to right.
To connect the receiver to the Raspberry Pi GPIO pins without soldering: one wire per receiver pin, with a female connector at each end.
Connect the three pins of the receiver to the Raspberry Pi:
| Receiver pin | Raspberry Pi pin |
|---|---|
| VCC | 3.3 V |
| GND | Ground (GND) |
| OUT (signal) | GPIO 18 |

GPIO 18 is the pin Recalbox uses by default. You can pick another one, as long as you declare it in the configuration (see below).
Almost any standard infrared remote works: TV remote, hi-fi remote, universal remote, computer remote…
In the /recalbox/share/system/recalbox.conf file, set the following key to 1 (section D5 - Infrared controllers):
lircd.enabled=1
Connect to your Recalbox over SSH.
Remount the boot partition read-write:
mount -o remount,rw /boot
Edit the /boot/recalbox-user-config.txt file and add the line:
dtoverlay=gpio-ir
If you wired the signal to a pin other than GPIO 18, declare it: dtoverlay=gpio-ir,gpio_pin=23.
The file still contains a commented
#dtoverlay=lirc-rpiline inherited from older versions: do not use it, this overlay no longer exists in the Recalbox 10.1 kernel.gpio-iris its replacement.
ls /dev/lirc0
mode2 -d /dev/lirc0
pulse / space) should scroll by. If they do, the hardware works.Ctrl+C.irrecord -d /dev/lirc0 /recalbox/share/custom.conf
Enter to start).customremote: this is the name expected by the Kodi configuration shipped with Recalbox.For each key you want to use, type its standard name then press the matching button on the remote. The essential names:
And if your remote has enough buttons: KEY_PAUSE, KEY_FASTFORWARD, KEY_REWIND, KEY_NEXT, KEY_PREVIOUS, KEY_RECORD, KEY_CHANNELUP, KEY_CHANNELDOWN, KEY_SUBTITLE, KEY_LANGUAGE, KEY_EPG, KEY_ENTER, KEY_DELETE, KEY_NUMERIC_0 to KEY_NUMERIC_9, the color keys (KEY_RED, KEY_GREEN, KEY_YELLOW, KEY_BLUE), KEY_AUDIO, KEY_VIDEO, KEY_MEDIA, KEY_RADIO, KEY_PVR, KEY_ZOOM.
Enter, then follow the last step irrecord asks for (quick repeated presses on a single key).rm /recalbox/share/custom.conf) and run irrecord again.lircd configuration file with yours:mv /recalbox/share/custom.conf /recalbox/share/system/.config/lirc/lircd.conf
/etc/init.d/S25lircd restart
irw: every press on the remote should print a line with the key name. Quit with Ctrl+C.The remote key → Kodi button mapping is defined in /recalbox/share/system/.kodi/userdata/Lircmap.xml (shipped by Recalbox for the customremote remote). You can edit it to change the mapping; the original template remains available in /recalbox/share_init/system/.kodi/userdata/Lircmap.xml.
To go further (change a button's action, CEC remotes…), create a keymap file in /recalbox/share/system/.kodi/userdata/keymaps/ following the Kodi wiki documentation. No keymap is shipped by default: this folder is yours.