User’s reported a bug in Lircd (v0.9.4 and below) that renders the DP Irtoy and the Irdroid USB Infrared transceiver modules unusable . When the lircd is started and and after sending a number of IR commands (sometimes it crashes after sending just one ir command ) to the Irdroid USB Infrared transceiver, the module gets de-enumerated and the only way to recover is to unplug and plug again the module in the USB port.
Last few months I am trying to fix this issue with no success then a few days ago I have received an email from a previous customer (Thomas Orgis l Tnak you very much Thomas! ) who managed to find the bug in Lircd. Thomas has used the GDB in order to debug the issue and he found out that all happens in the “setPin” function in irtoy.c file. He contacted me to provide a patch see below:
— lirc-0.9.4d/plugins/irtoy.c.orig 2017-01-23 10:23:38.000000000 +0100
+++ lirc-0.9.4d/plugins/irtoy.c 2017-02-05 16:42:19.203099837 +0100
@@ -171,13 +171,16 @@
static int setPin(unsigned int pin, int state)
unsigned int mask = 1 << pin;
IOdirections &= ~mask;
IOdata |= mask;
IOdata &= ~mask;
+ return 0;
I have tried to open a ticket in sourceforge providing the bugfix to the community , but they replied that this should be now fixed in lircd 0.9.4d (which is not the case). So I am providing here the lircd 0.9.4d with the above mentioned patch already applied so that the users can directly download , compile and install lircd and continue using their Irdroid USB Infrared Transceivers. I have tested the above lircd version with the patch on Raspberry Pi3 with raspbian installed , but it should also work on other GNU Linux Systems.