IR transmitter not working on Raspberry Pi

1.4k views Asked by At

I am trying to turn on my TV using a Raspberry Pi.

I have followed the below instructions and added my remote config file, however, am having no luck! Any suggestions.

When running sudo /etc/init.d/lircd status, I get

lircd.service - Flexible IR remote input/output application support
   Loaded: loaded (/lib/systemd/system/lircd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-11-11 13:27:07 UTC; 5min ago
     Docs: man:lircd(8)
           http://lirc.org/html/configure.html
 Main PID: 334 (lircd)
   CGroup: /system.slice/lircd.service
           └─334 /usr/sbin/lircd --nodaemon

Nov 11 13:32:23 raspberrypi lircd[334]: lircd-0.9.4c[334]: Info: removed client
Nov 11 13:32:23 raspberrypi lircd-0.9.4c[334]: Info: removed client
Nov 11 13:32:42 raspberrypi lircd[334]: lircd-0.9.4c[334]: Notice: accepted new client on /var/run/lirc/lircd
Nov 11 13:32:42 raspberrypi lircd-0.9.4c[334]: Notice: accepted new client on /var/run/lirc/lircd
Nov 11 13:32:42 raspberrypi lircd[334]: lircd-0.9.4c[334]: Info: removed client
Nov 11 13:32:42 raspberrypi lircd-0.9.4c[334]: Info: removed client
Nov 11 13:32:54 raspberrypi lircd[334]: lircd-0.9.4c[334]: Notice: accepted new client on /var/run/lirc/lircd
Nov 11 13:32:54 raspberrypi lircd-0.9.4c[334]: Notice: accepted new client on /var/run/lirc/lircd
Nov 11 13:32:54 raspberrypi lircd[334]: lircd-0.9.4c[334]: Info: removed client
Nov 11 13:32:54 raspberrypi lircd-0.9.4c[334]: Info: removed client

Here are the steps I took to set it up.

# Add the following lines to /etc/modules file
lirc_dev
lirc_rpi gpio_in_pin=18 gpio_out_pin=17

# Add the following lines to /etc/lirc/hardware.conf file
LIRCD_ARGS="--uinput --listen"
LOAD_MODULES=true
DRIVER="default"
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

# Update the following line in /boot/config.txt
dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17

# Update the following lines in /etc/lirc/lirc_options.conf
driver    = default
device    = /dev/lirc0

$ sudo /etc/init.d/lircd stop
$ sudo /etc/init.d/lircd start

# Check status to make lirc is running
$ sudo /etc/init.d/lircd status

# Reboot before testing
$ reboot
1

There are 1 answers

0
Lorenzo On

Just run into the same problem. There are two main parts to it:

Part 1: new LIRC config

With the new version on lirc 0.9.0+, the configuration needed is much less:

  • The driver is already included in the kernel, no need to edit anything in modules
  • The new config syntax is much different, there's a shell script provided to change an old config to the new one. Run: sudo /usr/share/lirc/lirc-old2new.sh

To summarise, you only need to change the /etc/lirc/lirc_options.conf. In particular, you need to edit the lines to driver = default AND device = /dev/lirc0.

This should solve part 1.

Part 2: new IR drivers

As you can see in the /boot/overlays/README, the LIRC driver is being outdated. There are new ones provided for IR input and output. The driver for IR output is the new gpio-ir-tx. You need to use that instead of lirc-rpi in your /boot/config.txt.

In summary, change dtoverlay=lirc-rpi,gpio_out_pin=17,gpio_in_pin=13 to

dtoverlay=gpio-ir-tx,gpio_pin=17

NOTE the missing _out in the config. This driver only supports output, so no need for an input one. To handle inputs, use the gpio-ir one.