Font size:      

Glossary and terms

Revision history
2013-12-01 Initial version.
2013-12-20 More stuff added.
2014-02-02 Even more stuff added.
2014-09-18 Yet more stuff added.
2016-01-08 Substantial improvements and extensions.
2016-04-29 Some more entries.


Here we explain and define some of the used terms. In most cases (but not all!), this correspond to established usage in the Internet, e.g. in the JP1 forum. It should also be pointed out that in some cases, in particular when comparing programs by others to my own, the assessment should be considered as subjective.

Substantial program/program packages are written capitalized, (not uppercase), in some case in CamelCase, and in Roman typeface, like a proper noun. "Small" programs are written as code. For example, we write "Lirc", not "LIRC", or lirc; and irsend.

AMX Beacon
A daemon program implemented in some networked components. It is used for periodically announce their existence, and some of their properties.
Commercial infrared analyzer and decoder program for Windows. By its makers characterized as "... the leading tool available for analysing, decoding and reverse engineering infrared remote control protocols". Web site.
The part of the ExchangeIR library that analyzes a raw IR Signal. If successful, it returns an IRP form, together with parameter values. The returned IRP form may or may not correspond to a known protocol.
A single-board micro-controller, based upon a 8-bit Atmel AVR micro-controller, or a 32-bit Atmel ARM. Official site. Can be used for implementing sending and/or capturing of infrared signals with additional hardware attached to its IO-pins.
Capturing (sometimes "learning")
The process of recording an unknown physical IR sequence as a sequence of on- and off-durations, preferably together with a measure of its modulation frequency. See (Non-demodulating) IR receiver. Cf. receiving IR signals.
CCF (text signal format)
IR signal format. Not to be confused with the ccf file format of the Pronto Classic remotes! Often called "hex", "Pronto", or "Pronto hex". Consist of a sequence of four-digit hexadecimal numbers. For the interpretation, see the Appendix. It is a very popular format, e.g. for textual the exchange in Internet forums.
ccf file format
Not to be confused with the CCF text signal format! Configuration file format for the Pronto Classic. File extension is ccf. Can be edited by the ProntoEdit program. Has been completely reverse engineered, and the open-source program Tonto is able both to interactively edit them, as well as non-interactively through an API. IrScrutinizer can import and export ccf files, using the said API.
Cleansed signal
Given a captured IR sequence, using the repeat finder, all occurrences of the repeat sequence but one are removed, and numerically "close" duration values are lumped into one single value.
Proprietary binary format by RTI for their IR database files. Has been reverse engineered; IrScrutinizer can import it. One well known CML file is the Mega List Database, which is a huge database of IR codes maintaned by Glackowitz from the Remote Central Forums.
Here, an IR signal with a name, like "Play".
Consumer IR (CIR)
Consumer IR deals with IR control of various devices. Wikipedia article. Not to be confused with IRDA. Typically uses wave lengths of 930-950nm.
CVS (comma separated values)
Primitive data base format, one record consisting of one line, the entries separated from one another by a comma (,) (or sometimes another character). One possible file extension csv. Can be read directly by spreadsheet programs.
Decode (noun)
Given an IrSequence or an IrSignal, a decode is a protocol, together with parameter values, that are compatible with the given IrSequence/IrSignal, i.e. could have generated the original signal. Note that the determination is governed by numerical uncertainties, so that small deviations from the perfect signal are accepted. Furthermore, one signal/sequence may have none, one, or more valid decodes.
Library for the decoding of IrSequences. Originally written by John Fine, extended by others; used by many widely spread programs as a shared library, often using JNI. The current version is 2.45. License: public domain.Binaries for Windows, Linux, and Mac, source code at SourceForge.
Demodulating IR Receiver
An integrated circuit that receives a modulated IR signal and recovers the original signal with the modulation removed. The modulation frequency of the signal must "match" the frequency of the demodulator. Receiver chips are typically marked TSMPXXYY, where XX (two or three digits) denotes a vendor specific type, and YY the modulation frequency in kHz. (Data sheet for a typical product. Not suited for capturing of unknown signals, since it removes the modulation frequency without identifying it.
Device Number
See protocol parameters. Denoted by D in IRP protocols.
Device Type
Class of components, like TV, VCR, Satellite receiver, etc.
A duration is either a gap or a flash.
Duty Cycle
The percentage of the time the the modulation pulse is on. Typically slightly less than 50%.
Ending sequence
See IrSignal.
"EventGhost is an advanced, easy to use and extensible automation tool for MS Windows. It can use different input devices like infrared or wireless remote controls to trigger macros, that on their part control a computer and its attached hardware." Licensed under GPL2.Home page for Eventghost.
Library for IR signal analysis and exchange by Graham Dixon. Licensed under the GPL3 license. For the present project, the interesting parts are the Analyzer, the repeat finder, and functions for the UEI learned format. These parts has been translated to Java by myself: API documentation, source.
An embedded "program" for the rendering and transmission of one or several protocols. One executor can manage several protocols; also, for one protocol there may be several alternative executors. An executer has its own parametrization, more-or-less similar to the parametrization of the protocol. Used in JP1 Remotes and RemoteMaster.
Flash (or "on-period")
Period of time when the IR light is "on", or flashed with the selected modulation frequency. See IrSequence.
Function Number
See protocol parameters. In IRP protocols, denoted by F. A synonym is OBC.
Gap (or "off-period", "Pause")
Period of time when the IR light is off. See IrSequence.
Generating, sometimes called rendering
The process of evaluating an IrProtocol for a particular parameter value, rendering an IrSignal. Commonly used rendering programs/engines are the older MakeHex, and the more modern and capable IrpMaster (included in IrScrutinizer and IrMaster).
Girr (Generic IR Remote)
A general XML-based exchange formats for IR Signals. Really a container format that can contain any of the CCF, raw format, protocol/parameter format, as well as other text formats like Global Caché sendir and UEI learned format. For a full description, see the full documentation.
Global Caché
Manufacturer of IR sending hardware, in some cases with learning and/or receiving possibilities. Web site.
GPL3 license
The current version of the GNU General Public License. Used by my software projects (with some exceptions), and many so-called open-source software projects. The basic idea is the licensee is allowed to use, enhance etc. the software (also in a commerical product and context), but is not allowed to turn it, or a derived product, into non-free software.
IR (Infrared light)
According to Wikipedia, infrared light are light (electromagnetic radiation) of wavelength between 700nm and 1mm. For control of consumer electronics (CIR), according to Wikipedia, wavelengths around 870 nm and 930-950 nm (latter preferred), in comparison to IrDA (850-900nm) are used. Almost always generated by an IR LED.
IrDA is a method for data exchange between PCs and portable devices. It is no longer to be considered as state-or-the-art, and has been almost completely replaced by Bluetooth and WiFi. Many devices with IrDA hardware is still around, but it is, with few exceptions, unsuitable for consumer IR.
IR LED (light emitting diode)
Semiconductor component capable of sending light with the desired IR wavelength. A typical representative is the Osram SFH 4512.
(IR) Protocol
An algorithm for turning a number of parameters into an IR signal. It defines the necessary parameters and their allowed values. In almost all protocols, the most frequently changing parameter is called "F" (function number). Almost all protocols have a "device number" called "D". Many protocols have a "sub-device" number, called "S". A few protocols have a toggle parameter, in general called "T", and being persistent. A protocol may also have other parameters, with "arbitrary" names.
A program for generating, analyzing, importing, and exporting of infrared signals. Now discontinued, replaced by IrScrutinizer.
A program and API library for rendering IRP protocols version 2. See its documentation. Comes with a powerful (but slightly hard to use) command line interface. For GUI usage, see IrMaster and IrScrutinizer. Note that the word "IrpMaster" sometimes refers to the command line program, sometimes to the rendering engine contained in IrMaster and IrScrutinizer.
IRP Notation
Compact, slightly cryptical, notation for defining an IrProtocol. Specification.
Program that accompanies the IrWidget, also by Kevin Timmerman. Originally a support to the IrWidget, was further developed (in particular through Graham Dixon) to a fairly general and capable IR analyzing program, supporting also DecodeIR and ExchangeIR. The program was a major inspiration source for IrScrutinizer.
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared signals.
IR Sequence
Sequence of time durations, in general in expressed microseconds, together with a modulation frequency. The even numbered entries normally denote times when the IR light is on (modulated), called "flashes", the other denote off-periods "gaps".
IR Signal
Consists of three IR sequences, called
  1. start sequence (or "intro", or "beginning sequence"), sent exactly once at the beginning of the transmission of the IR signal,
  2. repeat sequence, sent "while the button is held down", i.e. zero or more times during the transmission of the IR signal (although some protocols may require at least one copy to be transmitted),
  3. ending sequence, sent exactly once at the end of the transmission of the IR signal, "when the button has been released". Only present in a few protocols.
Any of these can be empty, but not both the intro and the repeat. A non-empty ending sequence is only meaningful with a non-empty repeat.
An "open hardware" project by Dangerous Prototypes, see the product page. Consists of a microprocessor PIC18F2550, a demodulating IR-receiver, a non-demodulating IR-receiver, an IR-LED, and a USB-connector. Thus, is usable both for learning, including frequency measurements, receiving demodulated R-signals, and sending IR signals. Supported by IrScrutinizer.
A series of IR products from the firm with the same name. IrScrutinizer and IrMaster supports the Ethernet models (preferrably with the "IR data base"), for sending only.
An "open hardeware" project by Kevin Timmerman. Project page. That page presents many different versions, but the most spread version (commercially available by Tommy Tyler) consists of a micro processor PIC12F629, a non-demodulating sensor (QSE15x), and a USB serial FTDI interface. Supported by Kevin's IrScope, as well as IrScrutinizer.
Java Native Interface (JNI)
A technique for having a Java program calling a native shared library (DLL in Windows, "Shared object" (.so) in other operating systems). See the Wikipedia article.
Community for customizing JP1 Remotes. Forum.
JP1 Remote
Customer remotes manufactured by Universal Electronics Inc., manufactured by many different names, like One for all etc. Has been reverse engineered by the JP1 community and can be programmed through a connector, called (after the PCB print). The main tool for this is RemoteMaster.
A standard for using human readable text to transfer structured data, as an alternative to XML. See the Wikipedia article.
An open source project for sending and receiving IR signals from Linux. Official web site. First release in May 1996, current version is 0.9.4(pre1), released in January 2016. IrScrutinizer supports sending through a LIRC server, patched with the CCF patch, and can also import and export files in lircd.conf format.
The main daemon of the Lirc project. Accepts commands on a Unix domain socket, as well as on a TCP socket, by default 8765. Accepts commands to send IR signals in Remote/Command format only. For a complete list or commands implemented, see the man page of irsend, a progam that implements a simple client for the Lircd server daemon.
The main Lirc configuration file; a data base of remotes and its contained commands. Typically residing in /etc/lirc/lircd.conf. Also used to denote the file format. The files in the Lirc data base are in this format. Although its syntax and semantics is documentated, should not be considered a viable exchange format. Can be imported by IrScrutinizer — since it contains a substantial abount of Lircd, translated to Java.
A predecessor to IrpMaster. Adheres to an earlier version ("Version 1") of the IRP Notation. For the original C++ program by John Fine, neither a GUI nor a command line interface are present; the parameters are given to the program by editing the data base files. A Java translation (by myself) exists, which has a command line interface, available here.
Mode2 (LIRC) format/program
1. A simple test format consisting of interleaved "on- and off-durations. 2. A simple program contained in Lirc, printing the mode2 text format of received IR sequences to standard output. 3. In Lirc, notation for IR receiving hardware capable of generating data in mode2 format, i.e. getting the durations in micro seconds.
Modulation frequency
During the "on" periods, the IR light is not just constantly on, but "flashed" on and off at a frequency called the modulation frequency, typically between 36kHz to 40kHz, in some cases higher (up to 56kHz), or much higher (455kHz, Bang & Olufsen equipment). This reduces noise sensitivity and power consumption, and also allows higher currents through the IR LED (that thus does not have to be able to survive the high current continuously). Also see Duty cycle.
(Non-demodulating) IR receiver
IR receiver that outputs the received IR signal essentially as received, i.e. without removing a modulation. Preferred sensor component is a chip with pre-amplifier like TSMP58000, at least for "moderate" modulation frequencies (< 60kHz).
Original Button Code
Synonym for function number.
Parametric IR signal
An Ir Signal given as a protocol and a parameter assignment to its parameters. Of course, a renderer may compute the numerical IR Sequences, but these are considered secondary, it is defined by its protocol and parameters values.
IR signal format, not to be confused with the pcf file format of the Pronto NG remotes! This is a proprietary and encrypted form of IR signals. As far as I am aware, it is presently not known how to decode this representation.
pcf file format
Like the xcf format, this is a ZIP file containing an XML file with the real payload, and a number of icon files. Unfortunately, the enclosed IR signals are in the PCF format, thus possible to decrypt only by the ProntoEditNG program.
Persistent variable
A persistent variable in an IR protocol may, but need not, be given a value before generating. If not, it retains its value from previous invocation, or, for the first invocation, has a default value.
Pronto Classic
Legendary Family of advanced touch-screen remote controls. Manufactured by Philips between 1998 and 2004. Consists of the models TS1000, TSU2000, TSU6000, RC5000, RC5000i, RC5200, RC9200, RU890, RU940, RU970, USR5, RAV2K, RAV2KZ1. Configurable/programmable by a GUI program "ProntoEdit", as well as the open-source program Tonto.
Windows program for programming the Pronto remotes. Exists in different versions for different Pronto series. From its owner Philips now discontinued, but available for download at RemoteCentral.
Pronto frequency code
The second number in the CCF representation. For f in Hertz, this is the four-digit hexadecimal number given as 1000000/(f*0.241246). It can be conveniently computed by the Time/Frequency Calculator in IrScrutinizer, available under the Tools menu.
Pronto NG (New Generaton)
Later generation of Pronto touch screen programmable remotes. Uses the pcf format as their configurations. Can be read by ProntoEditNG.
Pronto Professional (*.xcf configuration files)
Later generation of Pronto touch screen programmable remotes. Uses the xcf format as their configurations. Consists of the models TSU9800, TSU9600, TSW9500, TSU9400, TSU9300, TSU9200, TSU9500 (Philips) and RC9001 (Marantz). Discontinued in 2010.
Protocol Parameters
See IR Protocol.
Data base file for RemoteMaster. Despite the name, it does not descibe protocols in our sense, but rather executors their properties and parametrization.
properties (of an interactive program)
The part of the program's state saved between sessions for each user; saved to disk.
Raw IR sequence/signal
A raw Ir Sequence is a sequence of (in general) measured on-off durations. It may or may not have one or many decodes, but these are considered to be secondary; its is defined by its numeric time durations. Often written with signs: a "+" indicates a flash, a "-" indicates a gap.
Receiving IR signals (deployment)
The use case of receiveing an a priori partially known (typically through its protocol, in particular, the modulation frequency) signal, identifying it completely (typically its parameters protocol parameters), and possibly initiating an action. Cf. the other use case capturing.
Repeat finder
Class in ExchangeIr (function in the original version) that from an IR sequence numerically tries to identify the intro-, repeat-, and ending sequence that has generated the original sequence.
Repeat sequence
See IrSignal.
1. A collection of commands with unique names. 2. A piece of hardware with buttons etc.
Remote/Command format
Given appropriate data base entries, the name of a remote (or device) together with the name of a command, can identify a command uniquely.
Powerful open-source tool for the programming of JP1 remotes. see Manual.
RMDU file
Configuration file for RemoteMaster, describing the configuration of a (universal) remote for a particular device. Contains parametrized commands, unfortunatelly not in the protocol/parameter form, but parametrized by an executor and its parameters. In some cases, IrScrutinizer can import these files.
"To examine in detail with careful or critical attention."
sendir (Global Caché) format
Text format used by Global Caché devices for expressing an IR signal, together with some additional information (number of sends, transmitter). IrScrutinizer can translate to and from this format.
Start sequence
See IrSignal.
Sub device Number
See protocol parameters. In IRP protocols, denoted by S.
TVS (tab separated values)
Like CSV but using a tab character (ASCII character 9). File extension .tsv, or other.
Persistent variable in an IrProtocol, in general alternating between 0 and 1, between different invocations. I.e., if the first invocation has the toggle value 0, all even invocations will have the value 1 of the toggle, all even the value 0, independent of the number of repeat sequences. Also see protocol parameters.
An open source re-implementation of ProntoEdit for the Pronto Classic, as well as an Java API library for reading and manipulating CCF files. Author is Stuart Allen. Sources at Github.
Some IR senders have more than one sending channel, called transmitter, allowing for example to control different equipment independently, even if they are using the same commands. These are called transmitters. Note that by definition, every IR sender has at least one transmitter, but only in the case of multiple transmitters, a selection is meaningful.
UEI learned format
Proprietary internal format for a single IR signal from Universal Electronics Inc. Has been reverse engineered in ExchangeIR, thus supported by IrScrutinizer.
wave file format
An IR sequence rendered with halfed modulation frequency, as a sequences of equdistant samples (in general with sample frequency 44.1kHz or 48kHz) considered as an audio signal. It is supposed to be "playbacked" through an audio system connected to a pair of IR LEDs connected in anti-parallel, which will again double the carrier frequency. IrScrutinizer supports both the generation of wave files, as well as its import and analysis.
According to its its web site, it "...is the Windows equivalent of LIRC". It is not a port of LIRC, nor does it share any code with LIRC. Statements on Lirc in these pages are not necessarily true for WinLirc.
xcf configuration file
Configuration file format for the Pronto Professional line of remotes. Consists of a ZIP file containing one configuration file in XML-format, as well as a number of supplementary icon images. The XML file is very easy to understand (for programmers!), and can contain IR signals in different formats, like CCF format (usable!) and PCF format (encrypted, thus not usable).
Here, a data base file in certain text file format.
XML Schema
XML Schema (also called XSD, for "Xml Schema Language") is an XML language for describing the syntax of XML documents. See the Wikipedia article.
XSLT (Extensible Stylesheet Language Transformations)
XSLT is an XML language for transforming XML documents into other XML documents, HTML-pages, or plain text. See the Wikipedia article. The programs here use only XSLT version 1.0.

Appendix. Semantics of the Pronto HEX (CCF) format.

There are a few very old guides to the format circulating on the internet. These were written in the previous century, as the subject was not very well understood. Although likely very valuable at the time they were written, however, now they are basicall completely unsuitable. Please do not read, and in particular, do not recommend to others. This appendix contains all needed to know — at least in 2016.

An IR signal in Pronto CCF form consists of a number of 4-digit hexadecimal numbers. For example:

0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 06FB 015B 0057 0016 0E6C

The first number, here 0000, denotes the type of the signal. 0000 denotes a raw IR signal with modulation, while 0100 denotes a non-modulated raw IR signal. There are also a small number of other allowed values, denoting signals in protocol/parameter form, notably 5000 for RC5-protocols, 6000 for RC6-protocols, and 900A for NEC1-protocols.

The second number, here 006C, denotes a frequency code. For the frequency f in Hertz, this is the number 1000000/(f*0.241246) expressed as a four-digit hexadecimal number. In the example, 006C corresponds to 1000000/(0x006c * 0.241246) = 38381 Hertz. (It can be conveniently computed by the Time/Frequency Calculator in IrScrutinizer, available under the Tools menu.)

The third and the forth number denote the number of pairs (= twice the number of durations) in the start- and the repeat sequence respectively. In the example, there are 0x0022 = 34 starting pairs, and 2 repeat pairs.

Next the start- and the repeat-sequences follow; their length being given by the third and the forth number, as per above. The numbers therein are all time durations, the ones with odd numbers on-periods, the other ones off-periods. These are all expressed as multiples of the period time; the inverse value of the frequency given through the second number. For this reason, "frequency" must be a sensible number also for the non-modulated case, denoted by the first number being 0100. In the example, the fifth number 0x015B denotes an on-period of 0x015B*periodtime = 347/f = 347/38381 = 0.009041 seconds.

In particular, all sequences start with an on-period and end with an off-period.

In the Pronto representation, there is no way to express an ending sequence.