-
-
Notifications
You must be signed in to change notification settings - Fork 1
Hardware Setup
InfraFi supports multiple receiver backends. Choose the one that matches your hardware.
Many Intel NUCs and mini-PCs include an ITE8708 CIR (Consumer Infrared) chip. This is the simplest setup - no additional hardware needed.
Supported devices: Intel NUC8, NUC7, NUC6, and other systems with ITE8708 or compatible CIR controllers.
Verify your CIR receiver:
ls /dev/lirc* # Should show /dev/lirc0
cat /sys/class/rc/rc0/protocols # Should include [rc-6]If RC-6 is not active:
echo "rc-6 nec" | sudo tee /sys/class/rc/rc0/protocolsThe install.sh script handles this automatically and creates a udev rule to persist it across reboots.
Note on TX: Many NUCs (e.g. NUC8i5BEK) include the ITE8708 chip but have no physical IR LED wired for transmission. In this case, ACK TX requires an external IR blaster (see Option C below).
Daemon invocation:
sudo infrafid -d /dev/lirc0 -f -vThe Arduino Pro Micro firmware provides a universal IR transceiver via USB CDC serial. This works on any Linux machine regardless of built-in IR hardware. It supports both RX and TX (ACK), so no separate IR blaster is needed.
See Arduino Firmware for full build and wiring instructions.
Daemon invocation:
sudo infrafid -s /dev/ttyACM0 -f -vIf your CIR receiver works fine for RX but has no TX capability, you can add a USB IR blaster as a dedicated ACK transmitter (e.g. a USB FLIRC dongle configured for LIRC TX).
sudo infrafid -d /dev/lirc0 -a /dev/lirc1 -f -v
# ^RX ^TXSome embedded Linux devices (e.g. Squeezebox Touch) expose IR via the Linux input subsystem (/dev/input/eventN) using NEC protocol scancodes via MSC_RAW events.
sudo infrafid -e /dev/input/event1 -f -vFind the right event device:
cat /proc/bus/input/devices # Look for IR or remote entriesThe Arduino Pro Micro firmware uses the following pin assignments:
| Pin | Function | Component |
|---|---|---|
2 (INT0) |
IR Receive | TSOP38238 data out |
3 (PWM) |
IR Transmit | IR LED via NPN transistor |
4 |
Test Mode | Jumper to GND to enable |
17 (RX LED) |
Activity indicator | Built-in LED |
TSOP38238
Pin 1 (OUT) --> Arduino pin 2
Pin 2 (GND) --> GND
Pin 3 (VS) --> 3.3V or 5V (with 100 ohm series + 100uF cap to GND)
Arduino pin 3 --> 100 ohm resistor --> NPN base (e.g. 2N3904)
NPN collector --> IR LED anode (940nm, e.g. TSAL6200)
IR LED cathode --> GND
NPN emitter --> GND
A 100 ohm resistor on the base and a 10-33 ohm resistor in series with the LED are typical values. Higher LED current = longer range.
The
SEND_PWM_BY_TIMERbuild flag is required for hardware PWM IR carrier generation on the Pro Micro. This is set inplatformio.ini.
The Flipper Zero has a built-in IR transmitter and receiver on the top edge of the device. No modification needed. Aim this port at the server's IR receiver window.
Effective range depends on lighting conditions and line of sight. For best results:
- Keep within 2-3 meters
- Avoid bright ambient light directly on the receiver
- Aim the Flipper top edge directly at the IR window
| Hardware | RX Protocol | TX (ACK) |
|---|---|---|
| ITE8708 CIR | RC-6, NEC (kernel decoded) | Rarely has TX LED wired |
| Arduino Pro Micro | RC-6 (IRremote lib) | RC-6 via IR LED |
| evdev input | NEC via MSC_RAW | No (use separate LIRC device) |
| USB IR Blaster | N/A (TX only) | RC-6 via LIRC |
Getting Started
Components
Reference