The FTDI driver is a MODE2 driver capable of both sending and receiving
data. It handles devices based on the FTDI chip e. g., as described
here. It is based on the
lirc also includes another driver for FTDI devices called
ftdix. See this page for a
By default, it searches for an usb device with vendor:product
matching 0x0403:0x6001. This can be changed using the device argument
which is a comma-separated string of key=value assignments.
The available keys are:
- vendor: Numeric idVendor value
- product: Numeric idVendor value 
- serial: Numeric idSerial value [*]
- input: input pin 
- output: output pin 
- baud: rx wire speed 
- txbaud: tx wire speed 
The driver has support for listing available devices using e. g.,
using mode2 -l
There has been a long-standing bug in this driver which effectively
has been using wrong timings. As of 0.10-0, this bug is fixed; however,
this breaks existing lircd.conf files. Users have the option of using
the driver option old-timings (the value does not matter) e. g.,
-A old-timings:1. This option is a transition helper and
will be removed in a future release.
The proper fix for a broken lircd.conf file is to use one of the following methods:
Find a lircd.conf file for your remote in the
You may need to update your .lircrc file if any of the button names are different.
- Update the timing parameters in your existing lircd.conf file.
This method is not suitable for files with raw_codes definitions.
New timings can be obtained from several sources
Open the existing lircd.conf file and the new timings lircd.conf in a
text editor. Find the line 'begin remote', below this there will be
lines with some of the following names
- a lircd.conf file for your remote (or one that uses the same
protocol) from the
- configure the driver without the old-timings option and use
irrecord to record the remote. There is no need to record any
buttons, just press enter and finish.
- use the timing data from the existing lircd.conf file and
divide each value by 2.
header, three, two, one, zero, ptrail, plead, foot, repeat, pre,
post, gap, repeat_gap.
Not all of these will be present in any particular lircd.conf file.
Replace these with the equivalent from the new file. If you are using the
divide by 2 method just update the value, some parameters have 2 values,
both need to be updated.
- For lircd.conf files with raw_codes the only way is to configure
the driver without the old-timings option and use irrecord to
re-record the remote.