Articles in this section

Supported infrared protocols

Article Content

The following IR code encodings are currently supported:

  • PRONTO format for raw infrared code representation
  • HEX format for codes learned with the Unfolded Circle Dock (see supported IR protocols below)

PRONTO format

PRONTO format is a widely-used, standardized text format for representing infrared signals. It captures the precise timing of light pulses (ON/OFF bursts) needed to control devices.

Format specifications:

  • Only raw oscillated codes are supported (first field is 0000).
  • PRONTO format does not have a dedicated repeat count field; instead, it uses an optional second burst sequence.
  • The third field specifies the number of burst pairs in the first sequence (main command).
  • The fourth field specifies the number of burst pairs in the second sequence (optional repeat command).
  • If the fourth field is 0000, there is no repeat sequence.
  • Either sequence may be optional; both sequences may exist, or only the first or second sequence may be present.

Repeat handling:

  • If a PRONTO code lacks a second burst sequence (fourth field = 0000), the entire first sequence is sent multiple times during transmission.
  • If a PRONTO code contains only a repeat sequence with a missing first sequence (third field = 0000), the repeat sequence is sent at least once and the repeat count automatically increases by one.

HEX format

The HEX encoding is Unfolded Circle's internal format for representing IR codes with specific IR protocols. It is derived from the IRremoteESP8266 library used in the Dock.

Format specification:

<protocol>;<hex-ir-code>;<bits>;<repeat-count>

  • protocol: Numeric protocol identifier from the IRremoteESP8266 library (see table below)
  • hex-ir-code: Hexadecimal code prefixed with 0x
  • bits: Number of bits in the hex-ir-code
  • repeat-count: Number of repeats to send

Example

Code 17;0x2A4C0A8242CA;48;0:

  • 17: Denon protocol
  • 0x2A4C0A8242CA: IR code data
  • 48: 48-bit code
  • 0: Default repeat count for Denon (0 = no extra repeats beyond protocol minimum)

Repeat handling:

The repeat count is part of the encoding. Different IR protocols have different minimum repeat requirements for devices to recognize commands.

  • Some protocols (e.g., Sony) require the command to be sent 2 or 3 times before devices recognize it.
  • Repeat behavior depends on the protocol: Denon repeats the entire command, while LG sends a protocol-specific repeat code after the command.
  • The Dock automatically handles all repeat logic when sending IR codes, so this is transparent to the user.

IR protocol support

The Unfolded Circle Dock supports the following IR protocols using HEX format:

Nr Protocol Min repeat Send only Toggle Frequency Duty cycle Comment
1 RC5 0   y 36000 25 12-bit code. Note: 13-bit code is RC5X protocol.
2 RC6 0   y 36000 33 20, or 36-bit codes
3 NEC 0     38000 50 32-bit code
4 SONY 2     40000 50 12, 15, or 20-bit codes
5 PANASONIC 0     38000 50 40 or 48-bit codes
6 JVC 0     38000 33 16-bit code
7 SAMSUNG 0     38000 50 32-bit code
9 AIWA_RC_T501 1     38000 50 15-bit code
10 LG 0     38000 50 28 or 32-bit codes
12 MITSUBISHI 1     38000 50 16-bit code
13 DISH 3     38000 50 16-bit code
14 SHARP 0     38000 50 15-bit code
17 DENON 0     38000 50 14, 15, or 48-bit codes. If ≥48 bits, uses 36.7 kHz. Some devices require repeat count of 1 or 2.
19 SHERWOOD 1 y   38000 50  
21 RCMM 0   (y) 36000 33 12, 24, or 32-bit codes. Toggle only for 32-bit codes.
22 SANYO_
LC7461
0     38000 50 42-bit code. SANYO LC7461 message
23 RC5X 0   y 36000 25 13-bit code
26 NEC_LIKE 0     38000 50 32-bit code
29 NIKAI 0     38000 50 24-bit code
35 MAGIQUEST 0     38000 50 56-bit code
39 MITSUBISHI2 1     38000 50 16-bit code
43 GICABLE 1     38000 50 16-bit code
47 LUTRON 0     40000 40 35-bit code
50 PIONEER 0     40000 50 64-bit code
51 LG2 0     38000 50 LGv2 (28-bit) protocol
56 SAMSUNG36 0     38000 50 36-bit code
58 LEGOPF 0     38000 50 16-bit code
64 INAX 1     38000 50 24-bit code
74 SONY_38K 3 y   38000 50  
75 EPSON 2     38000 50 32-bit code. NEC-like protocol without NEC-style repeat.
76 SYMPHONY 3     38000 50 12-bit code. Works for Rowenta fans
81 DOSHISHA 0     38000 50 40-bit code
82 MULTI
BRACKETS
1     38000 50 8-bit code
88 ZEPEAL 4     38000 50 16-bit code
91 METZ 0     38000 50 19-bit code
95 ELITESCREENS 1     38000 50 32-bit code
99 XMP 0     38000 50 64-bit code. Xfinity XR2 and XR11 remote support.
106 BOSE 0     38000 50 16-bit code. Currently only tested against Bose TV Speaker.
107 ARRIS 0     38000 50 32-bit code. Manchester code–based protocol.
117 TOTO 1     38000 50  
123 GORENJE 0     38000 50 8-bit code.
124 WOWWEE 0     38000 50 11-bit code

Table legend:

  • Nr: the protocol number in the HEX format string
  • Min repeat: Minimum repeat count automatically applied when sending IR codes; manually set lower values are overridden
  • Send only: Indicates protocols where only transmission is supported; IR learning is not available
  • Toggle: Indicates IR protocols where successive commands include toggle bits for state tracking
  • Frequency: Carrier frequency if the IR signal
  • Duty cycle: The proportion of time the IR LED is actively transmitting during each transmission cycle (100% = continuously on; 50% = on half the time)

Limitations and restrictions

IR learning with the Dock is based on the IRremoteESP8266 library and works automatically, but there are inherent limitations and challenges to be aware of.

  • The Air Condition IR protocols of the IRremoteESP8266 library are not supported.

Protocol detection challenges:

  • IR protocol detection does not always work reliably because many protocols are slight variations of each other and differ primarily in repeat handling.
  • Some similar protocols (NEC variants, RC5/RC5X) are easily confused during learning, which can cause the same IR code to be detected as the wrong protocol.
  • If a learned code is assigned the wrong protocol, sending it may fail or behave unexpectedly.

Supported code lengths:

  • Only the IR code lengths listed in the Comment column above are supported for each protocol.
  • Not all protocols support all code lengths; attempting to learn a different length will fail or detect the wrong protocol.

Troubleshooting learned codes:

  • If a learned IR code does not work when sent, try manually adjusting the repeat count (the fourth number in the HEX format).
  • Denon devices are particularly sensitive: some require a repeat count of 1 or 2, even though the protocol default is 0.
  • Protocol-specific issues: Check the Comment column for known quirks and recommendations.

When learning fails:

  • If the Dock cannot learn a specific IR code, the protocol may not be supported, the code length may not match a supported variant, or the remote signal may be too weak or noisy. When learning fails, Dock 3 shows one of the following error messages on its screen:
    • UNKNOWN: The IR signal could not be decoded as any supported IR protocol.
    • INVALID: The captured data decoded to values that do not match the expected structure of the detected protocol.
    • OVERFLOW: The received IR data was too long and exceeded the internal buffer, so it could not be fully decoded.
    • FAILED: A general decoding error occurred.
  • If an error is shown while learning an IR code, try again and hold the remote a bit closer, pointing directly at the Dock’s IR receiver. If several attempts in a row show the same error, the IR protocol is likely not supported by the Dock or the signal quality is insufficient for decoding.
  • Send-only protocols (marked in the protocol table) cannot be learned.
  • Try obtaining PRONTO codes from the device manufacturer or from online IR code collections.

Planned features

  • Learning and sending raw IR timings for unsupported protocols (format compatible with IrScrutinizer for manual analysis)
  • Enhanced import support for commonly-used IR protocols with address and command specification (e.g., NEC, RC-5)
  • Conversion tools for UC HEX format to native protocol representation (extracting protocol-specific address and command values)
  • Conversion support for popular IR code collections like Flipper-IRDB
Was this article helpful?
2 out of 2 found this helpful