Re: /dev/lirc0: device cannot send

Sean Young <[email protected]> Fri, 12 Sep 2025 21:09:33 +0100
Newsgroups gmane.comp.hardware.lirc
Message-ID <[email protected]>
Hi Mariusz,

On Fri, Sep 12, 2025 at 08:31:30PM +0200, Mariusz Ferdyn wrote:
> I have these devices:
> =

> IR Receiver + Wire - Iduino SE027
> =

> IR 940nm Transmitter + Wire - Iduino SE028
> =

> when I issue: ir-ctl -f -d /dev/lirc0 - I see:
> Receive features /dev/lirc0:
> =A0- Device can receive raw IR
> =A0- Can report decoded scancodes and protocol
> =A0- Receiving timeout 12664 microseconds
> =A0- Can set receiving timeout min 1 microseconds, max 1250000 microsecon=
ds
> Send features /dev/lirc0:
> =A0- Device cannot send

You should have two /dev/lirc devices, /dev/lirc0 and /dev/lirc1. One is for
sending and one is for receiving.

> My config is:
> =

> cat /etc/modules
> # /etc/modules: kernel modules to load at boot time.
> #
> # This file contains the names of kernel modules that should be loaded
> # at boot time, one per line. Lines beginning with "#" are ignored.
> # Parameters can be specified after the module name.
> =

> i2c-dev
> lirc_dev
> lirc_rpi gpio_in_pin=3D27 gpio_out_pin=3D22
> lirc_dev
> lirc_rpi gpio_in_pin=3D27 gpio_out_pin=3D22
> lirc_dev
> lirc_rpi gpio_in_pin=3D27 gpio_out_pin=3D22
> lirc_dev
> lirc_rpi gpio_in_pin=3D27 gpio_out_pin=3D22
> lirc_dev
> lirc_rpi gpio_in_pin=3D27 gpio_out_pin=3D22

lirc_rpi is no longer supported/used on recent Raspberry Pi OS. Unless you'=
re
using an ancient version, these lines do nothing any more.

> cat /boot/firmware/config.txt
> # For more options and information see
> # http://rptl.io/configtxt
> # Some settings may impact device functionality. See link above for detai=
ls
> =

> # Uncomment some or all of these to enable the optional hardware interfac=
es
> #dtparam=3Di2c_arm=3Don
> #dtparam=3Di2s=3Don
> #dtparam=3Dspi=3Don
> =

> # Enable audio (loads snd_bcm2835)
> dtparam=3Daudio=3Don
> =

> # Additional overlays and parameters are documented
> # /boot/firmware/overlays/README
> =

> # Automatically load overlays for detected cameras
> camera_auto_detect=3D1
> =

> # Automatically load overlays for detected DSI displays
> display_auto_detect=3D1
> =

> # Automatically load initramfs files, if found
> auto_initramfs=3D1
> =

> # Enable DRM VC4 V3D driver
> dtoverlay=3Dvc4-kms-v3d
> max_framebuffers=3D2
> =

> # Don't have the firmware create an initial video=3D setting in cmdline.t=
xt.
> # Use the kernel's default instead.
> disable_fw_kms_setup=3D1
> =

> # Disable compensation for displays with overscan
> disable_overscan=3D1
> =

> # Run as fast as firmware / board allows
> arm_boost=3D1
> =

> [cm4]
> # Enable host mode on the 2711 built-in XHCI USB controller.
> # This line should be removed if the legacy DWC2 controller is required
> # (e.g. for USB device mode) or if USB support is not required.
> otg_mode=3D1
> =

> [cm5]
> dtoverlay=3Ddwc2,dr_mode=3Dhost
> =

> [all]
> dtoverlay=3Dgpio-ir,gpio_pin=3D27

You'll need to enable gpio-ir-tx or pwm-ir-tx with the correct pin for
sending; and use the correct /dev/lirc[01] device.

Let us know how you've connected things and what version of Raspberry Pi OS
you're using.

Thanks,

Sean