WinLIRC iconWinLIRCWinLIRC icon

[ Configuration File Format | Registry Keys]

Configuration File Format

Normally it is not necessary to know anything about the configuration file format. But if you're trying to improve the reliability of your transmitter, or add some codes that don't exist on your remote, it can be nice to know this. If you're writing an application which translates the configuration from say Pronto or Slinke or another format to LIRC format, this is essential. In this section pulses refer to the times during which a sequence of infrared bursts at the appropriate carrier frequency is being sent and spaces refer to times in the idle state.

Basic Structure

The files may contain an unlimited number of comments and remote blocks. Whitespace and line breaks are used as delimiters.


If the comment character (#) appears as the first character on a line the rest of the line is ignored.

Remote Blocks

Remote blocks begin with begin remote and end with end remote. The first part of this section describes the basic properties of the remote. Following this is a codes section, which is delimited by begin codes and end codes or by begin raw_codes and end raw_codes depending on whether they represent the decoded signals or the raw signals.

Remote description section

Each line in this section contains a parameter followed by the value or values that should be assigned to that parameter. Most of these parameters are optional except for name. You may not assign the same name to two different remotes in the same configuration file. See the Remote Parameters section for more details.

Codes Section

Each line in this section contains the name of a button on the remote followed by its hexidecimal data value. You may not assign the same name to two buttons in the same remote section

Raw Codes Section

A button description begins with the parameter name and followed by the name of the button. The button description ends with the next button description or the end of the raw_codes block. The lines in between consist of a list of decimal numbers describing the signal sent by that button. The first number indicates the duration of the first pulse in microseconds. The second number indicates the duration of the space which follows it. Pulse and space durations alternate for as long as is necessary. The last duration should represent a pulse.

Remote Parameters

All values are decimal integers that are either dimensionless or have units of microseconds unless otherwise stated. Hexidecimal numbers should be prefixed by 0x. If the remote does not have a particular "feature," then the line may be omitted. The button code is sent just after the pre signal and just before the post signal.


Flags Description

Protocol Description

In this section complement means 1's are replaced by 0's and 0's are replaced by 1's (e.g., the complement of 0xA2 is 0x5D).

Pioneer SR
Typical Header:

  bits           16

  header       9000  4000
  one           700  1400
  zero          700   350
  ptrail        700
  pre_data_bits  16
  gap          100000
  transmitter   0x05 	# DTR hardware carrier (no carrier frequency for control by wire)

The value for pre_data should be the device code (8 bits) preceded by its complement. Known device codes are A1, A2, A4, A5, A8, and AB. They stand for tape, cd-player, tuner, receiver, laserdisc, and VCR respectively. The button code values should be the data code (8 bits) preceded by its complement. Most of this information was derived from Kai Fett's webpage, who indicates support from pioneer. The control by wire seems to be capable of any "full logic" (i.e., not mechanical) function available from the front panel of a device. And not merely the codes listed on that website.

Typical Header:

 bits           16

 header       9067  4393
 one           642   470
 zero          642  1600
 ptrail        642
 repeat       9065  2139
 pre_data_bits   16
 gap          39597

The value for pre_data should be the "custom code" (8 bits) followed by its complement. The button code values should be the "data code" (8 bits) followed by its complement. Custom codes and data codes for Yamaha's current productline are available in the Infrared codes section of yamaha's website. Their latest home theater equipment supports "extended" codes not found on the remote control.

Typical Header:

  bits           24

  header       4141  3819
  one           679  1757
  zero          679   785
  ptrail        679
  gap          62910
  frequency     57600

The button code values seem to be the device code (4 bits) followed by the data code (8 bits), then the complement of the device code, and the complement of the data code.

Registry Keys

The registry keys are placed (and sought) in HKLM\software\LIRC if possible, otherwise HKCU is used.

Copyright (C) 2002 Scott Baily <>.
Last update: Thursday, June 13, 2013 at 08:27 PM
Hits (since May 21, 2001):