Skip to content

IR sender and receiver both work independently, but decoding fails when used simultaneously #7047

@szygmunt

Description

@szygmunt

Hello,

I'm experiencing an issue with infrared communication on my Raspberry Pi running Raspberry Pi OS Bookworm.
Both the IR receiver and transmitter are connected via GPIO, and both are correctly enabled using dtoverlay=gpio-ir and dtoverlay=gpio-ir-tx in config.txt.

Each component works correctly on its own:

  • When using an external IR remote (Onkyo audio system), I can successfully and repeatedly receive key codes using ir-keytable with a proper TOML map (/etc/rc_keymaps/onkyo.toml).
  • I can also send IR codes using ir-ctl -k /etc/rc_keymaps/onkyo.toml, and both the Onkyo receiver and ir-keytable recognize them properly.

❗ The problem:

When I try to use both transmitter and receiver at the same time, things break.

Example test:

  1. In terminal window 1:

    ir-ctl -r -d /dev/lirc1
  2. In terminal window 2:

    ir-ctl -K KEY_PLAY -k /etc/rc_keymaps/onkyo.toml

→ Instead of receiving clean pulse/space values, I get corrupted or nonsensical data:

+9008 -30854
+188 -20583
-20690
+183 -21426
-20073
+170 -30784
+9033 -32545
+155 -22284
+200 -28634
+9030 -4473 -55569 +194 -23516
+182 -25004
+162 -27080

Each line corresponds to a single IR send command. It seems the decoding of the received signal becomes completely unreliable when the IR transmitter is active.


Additional info:

  • This same issue already existed on Bullseye, but sometimes a received signal was decoded correctly (maybe 1 in 5 attempts).
  • On Bookworm, the decoding never works during transmission.
  • Hardware and wiring are verified and functioning.
  • Both ir-keytable and ir-ctl are properly configured.
  • The issue seems related to concurrent use of the IR receiver and transmitter via GPIO.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions