Skip to content
Alejandro Mora edited this page May 8, 2026 · 3 revisions

InfraFi

Transmit WiFi credentials from a Flipper Zero to a Linux server via infrared.

InfraFi is a three-part system: a Flipper Zero app that encodes and transmits WiFi credentials over IR, a Linux daemon (infrafid) that receives them and connects the machine to the network, and an optional Arduino Pro Micro firmware that acts as a universal IR transceiver bridge when the host hardware has no native CIR receiver.


How It Works

flowchart LR
    subgraph Flipper Zero
        A[InfraFi App]
        A1[Manual Entry]
        A2[NFC Tag Scan]
        A3[Saved Networks]
        A1 --> A
        A2 --> A
        A3 --> A
    end

    subgraph Linux Server
        B[infrafid daemon]
        B1["IR RX (LIRC or evdev)"]
        B2[WiFi Connect]
        B3["IR TX (ACK)"]
        B1 --> B --> B2
        B -.-> B3
    end

    A -- "IR (RC-6 or NEC)" --> B1
    B3 -. "ACK (OK/FAIL)" .-> A
Loading
  1. You enter or scan WiFi credentials on the Flipper (manually, from an NFC tag, or from saved networks on the SD card).
  2. The Flipper encodes the credentials as a series of RC-6 (or NEC) IR messages and transmits them.
  3. The daemon on the Linux server receives the IR scancodes, reassembles the payload, verifies the CRC, and calls NetworkManager (or falls back to /etc/network/interfaces) to connect.
  4. Optionally, the daemon transmits an ACK back to the Flipper with the result (OK:192.168.x.x or FAIL).

The Arduino Pro Micro firmware acts as a USB-attached IR transceiver when the server has no built-in CIR hardware, decoding IR to serial and transmitting serial-commanded IR pulses.


Components

Component Path Description
Flipper App flipper/ Flipper Zero external app (.fap), built with ufbt
Linux Daemon daemon/ infrafid service, receives IR and manages WiFi
Arduino Firmware arduino/ Pro Micro IR transceiver bridge, built with PlatformIO

Quick Links


Version

Current version: 1.2.0 (shared across all components via flipper/protocol/version.h)

Clone this wiki locally