There is a hidden gem in the github bug report that has a workaround for lirc not being able to send AND receive. You can revert back to a previous kernel (4.14.y), but still be running the newer Bullseye OS. https://github.com/raspberrypi/linux/issues/2993#issuecomment-497420593 This solved the lirc problem and I was able to continue to use the new OS with new python version needed for another project. **There may be a compromise** that I am unaware of, but for my use case it was a win-win. To downgrade your kernel to 4.14.y run: sudo rpi-update c30ae2bb624f7fd60fcbedff950cc4361c8d2aec In /boot/config.txt you'll need to use the old Stretch format overlay (with your pin assignments), ie: dtoverlay=lirc-rpi,gpio_in_pin=17,gpio_out_pin=22 and in /etc/lirc_options.conf the device line is: ... device = /dev/lirc0 ...