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 with0x -
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
protocolnumber in theHEXformat 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
1or2, even though the protocol default is0. - 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