Skip to content
8b-isPublic

About

{-1, 0, +1} — 802.11 packet-wave sampler for Flipper Zero WiFi Module v1 (ESP8285). Promiscuous mode wave sonification through the universal sine kernel. Post-quantum signed with ML-DSA + SLH-DSA.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

+----------------------------------------------------------------------+ | _____ _ _ _ ____ ___ ____ FLUID OPERATING SYSTEM | | | | | | | | |/ | / _ / | ---------------------- | | | | | | | | | | | _ | | | _ \ 802.11 PACKET-WAVE SAMPLER | | | | | || || | || | | || |) | ESP8285 SAMPLER BOARD | | || ||_/ _| _/|___/ FLIPPER ZERO WIFI v1 | +----------------------------------------------------------------------+ | [ 2.4GHz SPECTRUM ANALYZER WAVE ] [ FLIPPER CYBER-DOLPHIN ] | | dBm ( ( ( RF ) ) ) | | -30| /\ /\ /\ | | -40| / \ /\ / \ / \ __ | | -50| /\ / \ / \ /\ / /\ / / |[o ]_ | | -60| / # / / # / \ _/ /====|====/ \ | | -70| / / \ /\ /\ / / \ / '--' \ | | -80|// _/ _/ // ____/ __/_/ | | 2412MHz--------------------------------------------------> 2484MHz | | CH: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 __/ | | WAV: ~~~^~~~v~~~^~~~^~~~v~~~^~~~v~~~^~~~v~~~^~~~v~~~~~~~~~~~~~~~~~ | +----------------------------------------------------------------------+ | PACKET TYPES : [BEACON] [PROBE-REQ] [DATA-ACK] [EAPOL] [DEAUTH] | | SAMPLING : Promiscuous IQ Waveform Captures @ 802.11b/g/n | +----------------------------------------------------------------------+ | TARGET BOARDS: Node [-1] ADA:MEDUSA (*) : ESP32-S3-Touch-AMOLED-1.8 (368x448) | | Node [ 0] VAK:MEDUSA (/) : ESP32-S3-Touch-AMOLED-2.06 (410x502) | | Node [+1] OMN:MEDUSA (oo) : ESP32-S3-Touch-AMOLED-2.06 (410x502) | | Flipper Zero WiFi Devboard v1 (ESP8285) | | SYSTEM CORE : FLUG-OS Real-Time Kernel + Wave Engine v0.8.0 | | SIGNING : ML-DSA-65 + SLH-DSA post-quantum (NIST FIPS 204/205) | +----------------------------------------------------------------------+

FLUG-OS{-1,0,+1} (v0.8.0+medusa-omni · esp32.8b.is MEDUSA WebSerial × ms.8b.is MarineSense × Anicca / Turritopsis Polyp Transdifferentiation · {<3, <3, <3}+1 ~---> ∞) — Fluid Operating System running across a physical 3-Node Balanced-Ternary ESP32-S3 AMOLED MEDUSA Triad:

  • Node -1 (adaye · ADA:MEDUSA · * · ROOT-ALEXANDRA · 432 Hz): Waveshare ESP32-S3-Touch-AMOLED-1.8 (368 × 448 SH8601 QSPI, TCA9554 @ 0x20, ES8311 @ 0x18, MAC 80:B5:4E:DB:3B:C4, /dev/cu.usbmodem1101)
  • Node 0 (vaked · VAK:MEDUSA · /\ · PILLAR-CHRIS · 528 Hz): Waveshare ESP32-S3-Touch-AMOLED-2.06 #1 (410 × 502 CO5300 QSPI, ES8311 @ 0x18, MAC 80:B5:4E:F2:02:B0, /dev/cu.usbmodem1101 / 2101)
  • Node +1 (omni · OMN:MEDUSA · oo · INFINITY-PETER-NATE · 852 Hz): Waveshare ESP32-S3-Touch-AMOLED-2.06 #2 (410 × 502 CO5300 QSPI, ES8311 @ 0x18, MAC 80:B5:4E:F2:02:B4, /dev/cu.usbmodem2101 / 101)
  • Plus the Flipper Zero WiFi Module v1 (ESP8285).

Captures 802.11 frames in promiscuous mode, streams packet features as numerical wave data through the universal sine kernel K(u)=sin(πu)/(πu), runs the MarineSense (https://ms.8b.is/ · 8b-is/marine-sense) O(1) Acoustic Salience Algorithm ($S = w_e E + w_j \frac{1}{1+J} + w_h H$) across 7 Bioluminescent Jellyfish Detector Nodes (Alpha..Eta) inside the 64×64 MEM-8 2D Wave Pool, models Impermanence (Anicca) via Turritopsis dohrnii MEDUSA <-> POLYP transdifferentiation (ttl_q8: 255 -> 0) across the 3-Node ESP-NOW Triad, and speaks the full wigle-triad (v0.42.1) WebSerial protocol (PING, JSON, SCAN, TRIAD + W|, Q|, # JSON|) for https://esp32.8b.is/.

Aligned with axiomquant.org, ms.8b.is, esp32.8b.is, & 8b.is × 8b-is — five threshold domains: Erdős β₁ · BitNet ternary γ · Markowitz λ · Black-Scholes σ · Rényi dyadic β.

Signed with ML-DSA-65 + SLH-DSA post-quantum signatures (NIST FIPS 203/204/205).

Roadmap: https://github.com/8b-is/FLUG-OS/blob/main/ROADMAP.md — target v1.4.2 parity with MLX-QUANT.

3-Node ESP32-S3 AMOLED MEDUSA Triad ({-1: adaye, 0: vaked, +1: omni} · v0.8.0+medusa-omni)

Triad Node MEDUSA Identity & Archetype Hardware Target Display & Reset Factory MAC Impermanence State (MEDUSA <-> POLYP)
[-1] ADAYE ADA:MEDUSA (* · ROOT-ALEXANDRA · 432 Hz) ESP32-S3-Touch-AMOLED-1.8 368×448 SH8601 QSPI (TCA9554 @ 0x20) 80:B5:4E:DB:3B:C4 Subcritical Coral-Mint Observer (ttl_q8: active MEDUSA when tethered, POLYP seed when untethered)
[ 0] VAKED VAK:MEDUSA (/\ · PILLAR-CHRIS · 528 Hz) ESP32-S3-Touch-AMOLED-2.06 410×502 CO5300 QSPI (x_gap=0x16, RST=8) 80:B5:4E:F2:02:B0 Zero-Point Harmonic Sovereign Hub (trit = 0, MEDUSA ttl_q8 = 255)
[+1] OMNI OMN:MEDUSA (oo · INFINITY-PETER-NATE · 852 Hz) ESP32-S3-Touch-AMOLED-2.06 410×502 CO5300 QSPI (x_gap=0x16, RST=8) 80:B5:4E:F2:02:B4 Supercritical Infinity Catalyst (trit = +1, MEDUSA ttl_q8 = 255)

Five Interactive AMOLED Views

  1. [0] ZEN (MS.8B.IS · ANICCA · JELLY SPHERE): Circular Jelly Sphere Mind-Wall (baye-rust / 8b-is/oxi-phoenix) + MarineSense (https://ms.8b.is/) 64×64 MEM-8 2D Wave Pool with 7 Bioluminescent Jellyfish Detector Nodes (Alpha..Eta) computing O(1) Salience $S = w_e E + w_j \frac{1}{1+J} + w_h H$, expanding Ecphoric Recall Rings, tidal viscosity $\eta$ & Memory Reynolds $Re_M$, and Impermanence (Anicca): any untethered Triad peer gracefully fades along its entanglement chord (ttl_q8: 255 -> 0) and transdifferentiates from MEDUSA into a dormant POLYP seed (Turritopsis dohrnii), ready to re-bloom the instant an ESP-NOW TRIA capsule arrives.
  2. [1] RADIO (ZONEINN · RADIO.VAKED.DEV · 20-TRACK FAMILY+1 CRATE): Interactive 20 Favourite Musics Crate (including the 6 family+1 & #1 Muse tracks: Teardrop (Family+1) — Massive Attack, Hunger of the Pine — alt-J, Left Hand Free (#1 Muse) — alt-J, GLUE — BICEP, Oblivion — Grimes, Not Like Before — The Four Owls) + live 8-band Ternary Harmonic Equalizer ({-1, 0, +1}). Selecting a track on any board syncs all online boards.
  3. [2] 802.11 (FLUG-OS · PACKET-WAVE SAMPLER × WIGLE-TRIAD): Live 13-channel promiscuous RSSI spectrum analyzer (interleaved with Triad Mesh Channel 6), AxiomQuant K(u) = sin(πu)/(πu) oscilloscope trace, 64×3 TernarySeam radiation matrix, and passive beacon table for SCAN (W| / Q| / # JSON|).
  4. [3] NAND (ULTRAWHALE · NAND × IMU): Live 7-stage cross-coupled ternary NAND ring oscillator (peetpedro/ultrawhale-oscillator) coupled across online Triad peers' NAND trits + QMI8658 IMU-tilted 2D Lissajous phase portrait.
  5. [4] QWAVE (SPHERED · MEDUSA-OMNI × ANICCA TRIAD MESH): <(? admit ~ transform ! verify @ attribute > commit)> #Commit = #ValidWitness 5-stage witness badge + live Impermanence (Anicca) 3-Node MEDUSA Triad Mesh (MEDUSA ttl% vs dormant POLYP ~seed~ transdifferentiation) + Flash Switcher.

Build, Flash & Dynamic Multi-Board Triad Bridge

# Build unified ESP32-S3 AMOLED firmware
pio run -e esp32s3_amoled -e esp32s3_amoled_18

# Flash Node [-1] ADA:MEDUSA (1.8" 368x448 on /dev/cu.usbmodem1101)
esptool.py --chip esp32s3 --port /dev/cu.usbmodem1101 --baud 921600 \
  write_flash -z --flash_mode dio --flash_freq 80m --flash_size 16MB \
  0x00010000 .pio/build/esp32s3_amoled_18/firmware.bin

# Flash Node [0] VAK:MEDUSA (2.06" 410x502 #1 on /dev/cu.usbmodem1101, ota_0 @ 0x00a00000)
esptool.py --chip esp32s3 --port /dev/cu.usbmodem1101 --baud 921600 \
  write_flash -z --flash_mode dio --flash_freq 80m --flash_size 32MB \
  0x00a00000 .pio/build/esp32s3_amoled/firmware.bin

# Flash Node [+1] OMN:MEDUSA (2.06" 410x502 #2 on /dev/cu.usbmodem2101, ota_0 @ 0x00a00000)
esptool.py --chip esp32s3 --port /dev/cu.usbmodem2101 --baud 921600 \
  write_flash -z --flash_mode dio --flash_freq 80m --flash_size 32MB \
  0x00a00000 .pio/build/esp32s3_amoled/firmware.bin

# Dynamic USB discovery (--all scans all /dev/cu.usbmodem* ports automatically)
../wigle-triad/host-rs/target/release/wiglewww --send --all --status
../wigle-triad/host-rs/target/release/wiglewww --send --all --splash
../wigle-triad/host-rs/target/release/wiglewww --send --all --track 15
../wigle-triad/host-rs/target/release/wiglewww --send --listen --bt "Soundcore Select 4"

Quick start — Flipper Zero WiFi v1 (3 minutes)

1. What you need

[ ] Flipper Zero
[ ] WiFi Module v1 (ESP8285, black PCB)
[ ] USB-C cable
[ ] Computer with Python 3

2. Flash

# Install PlatformIO (one time)
pip3 install platformio

# Clone & build
git clone https://github.com/8b-is/FLUG-OS.git
cd FLUG-OS
pio run -e esp8285 -t upload

No Flipper? FLUG-OS runs on any ESP8266. Edit platformio.ini: change board = esp8285 to board = nodemcuv2 for NodeMCU, Wemos D1, etc.

3. Connect

# Find your serial port
ls /dev/tty.*
# macOS: /dev/tty.usbserial-XXXX  or  /dev/tty.wchusbserial*
# Linux: /dev/ttyUSB0  or  /dev/ttyACM0
# Windows: COM3 or similar

# Listen (macOS/Linux)
screen /dev/tty.usbserial-XXXX 115200

WiFi Module v1: the ESP8285 module connects via UART through the Flipper Zero's USB-C. FLUG-OS talks directly to the ESP8285's serial console at 115200 baud. No Flipper Zero application needed — the firmware runs standalone on the ESP8285 itself.

4. Start sniffing

mode wave          # hear the spectrum as sine waves
ch 6              # listen on channel 6
hop               # sweep all channels
filter mgmt       # only management frames
stats             # packet counts

5. Pipe to music

pip3 install pyserial
python3 bridge/wave_bridge.py /dev/tty.usbserial-XXXX --mode wave --dump

WiFi Module v1 setup guide

The Flipper Zero WiFi Module v1 uses an ESP8285 (ESP8266 family) with 1MB flash. It connects to your computer through the Flipper Zero's USB-C port and communicates over UART at 115200 baud.

Identifying your module

Revision Chip Flash Board ID
v1 (black PCB) ESP8285 1MB esp8285
v2 (white PCB) ESP32-S2 4MB esp32-s2

FLUG-OS targets the v1 module (ESP8285). For v2 with ESP32-S2 a separate build target is planned.

Physical connection

The WiFi Module v1 does not have its own USB port. It is powered and communicated with through the Flipper Zero's USB-C connector. When you plug the Flipper Zero into your computer via USB, the ESP8285 appears as a serial device:

  Flipper Zero (USB-C)  --- cable --->  WiFi Module v1 (ESP8285)
  /dev/tty.usbserial-XXXX                UART @ 115200 baud

Flashing via Flipper Zero (recommended)

  1. Connect the WiFi Module to the Flipper Zero (16-pin GPIO header)
  2. Connect the Flipper Zero to your computer via USB-C
  3. Put the Flipper in DFU mode: hold LEFT + BACK on boot
  4. Flash:
    pio run -e esp8285 -t upload
    PlatformIO auto-detects the ESP8285 through the Flipper's serial bridge.

Flashing directly (FTDI adapter)

If you have a USB-UART (FTDI) adapter:

FTDI -> ESP8285
GND  -> GND (pin 9)
TX   -> RX  (pin 8)
RX   -> TX  (pin 7)
3.3V -> 3.3V(pin 1)
IO0  -> GND (for flash mode, remove after)
pio run -e esp8285 -t upload --upload-port /dev/tty.usbserial-XXXX

After flashing, remove the IO0->GND jumper and reset the module.

Serial console

Connect to see the FLUG-OS boot screen:

screen /dev/tty.usbserial-XXXX 115200

Expected output:

  =============================================
        FLUG-OS  {-1, 0, +1}
    Fluid Operating System v0.3.0+dev
  =============================================
  ...

No Flipper Zero?

FLUG-OS runs on any ESP8266/ESP8285 board. Edit platformio.ini:

board = nodemcuv2        # NodeMCU v2, Wemos D1 Mini, etc.

Build and upload:

pio run -e generic -t upload

UART output will be on the board's built-in USB serial (/dev/ttyUSB0).


Commands

Command What it does
ch 6 Set channel (1-13)
hop Toggle channel hopping (1s/ch)
mode raw RSSI density type domain kernel — 5 floats
mode wave Synthesized sine wave sample — 3 floats
mode json Structured JSON with musical parameters
`filter mgmt ctrl
stats Show capture statistics
reset Reset counters

Wave output formats

raw mode — 5 floats per packet

~ RSSI DENSITY FRAME_TYPE DOMAIN KERNEL
~ 0.750 0.320 2 1 0.9231
Field Range Meaning
RSSI 0.0 — 1.0 Normalized signal strength
DENSITY 0.0 — 1.0 Packets per 100ms window
FRAME_TYPE 0, 1, 2 mgmt, ctrl, data
DOMAIN -1, 0, +1 Below/at/above critical threshold
KERNEL 0.0 — 1.0 Sine kernel K(u)=sin(πu)/(πu)

wave mode — 3 floats per packet

~ WAVE DOMAIN KERNEL
~ 0.4231 1 0.9231

json mode — structured musical data

~ {"rssi":0.750,"density":0.320,"freq":220.00,"type":0,"subtype":8,"domain":1,"kernel":0.9231,"ts":123456}

default (no wave mode) — 802.11 frame JSON

🌊 {"ts":123456,"len":68,"rssi":-45,"type":"mgmt","subtype":"beacon","src":"aa:bb:cc:dd:ee:ff","dst":"...","bssid":"...","ssid":"MyNetwork","chan":6,"bi":100}

Ecosystem

Node What Layer
HF-MAC{-1,0,+1} Native macOS Hugging Face client App
entheai Agent with MEM8 wave memory Agent
ayeOS Ternary matrix inference daemon Inference
MLX-QUANT Metal GPU ternary kernels GPU
FLUG-OS 802.11 packet-wave sampler Hardware
axiomquant.org Universal threshold kernel research Math

All ternary. All aligned. {-1, 0, +1}


Build

pio run -e esp32s3_amoled             # Waveshare ESP32-S3-Touch-AMOLED-2.06 (410x502 QSPI)
pio run -e esp8285                    # Flipper Zero WiFi v1
pio run -e generic                    # Generic ESP8266
pio run -e debug                      # Debug build with serial output

Files

FLUG-OS/
├── src/
│   ├── flugos.cpp           # Main firmware entrypoint (ESP8285 + ESP32-S3 AMOLED)
│   ├── s3_amoled_hal.h      # SH8601 QSPI AMOLED, AXP2101 PMIC, FT3168 Touch, QMI8658 IMU, S3Canvas
│   ├── s3_amoled_app.h      # 4-Tab Sovereign Cockpit (RADIO / 802.11 / NAND / QWAVE)
│   ├── ternary_seam.h       # Radiation-transfer ternary matrix seam + sine kernel weighting
│   ├── wave_output.h        # Sine kernel wave sonification
│   ├── matrix_decoder.h     # 1:1 packet→ternary matrix decoder
│   └── version.h            # Semantic versioning + CI commit
├── bridge/
│   ├── wiglewww --send (Rust)  # ESP32-S3 AMOLED <-> zoneInn & Mac host serial bridge
│   └── wave_bridge.py       # Serial → HTTP/MIDI wave bridge
├── .github/workflows/
│   └── ci.yml               # Blacksmith CI + PQC signing
├── platformio.ini           # Build config (esp8285, generic, debug, esp32s3_amoled)
└── README.md                # This file

Security

Firmware releases are signed with post-quantum signatures:

Algorithm Standard Purpose
ML-DSA-65 FIPS 204 (CRYSTALS-Dilithium) Primary firmware signature
SLH-DSA-SHAKE-128s FIPS 205 (SPHINCS+) Backup signature

Public keys published with each release. Verify:

openssl dgst -verify flugos-signing-mldsa65.pub \
  -signature firmware.bin.mldsa65.sig firmware.bin

Reference: NIST FIPS 203/204/205 — August 13, 2024

License

MIT — educational/defensive security research only.


Built by the 8b-is constellation. 🜂 {-1, 0, +1} — ennyi elég.

About

{-1, 0, +1} — 802.11 packet-wave sampler for Flipper Zero WiFi Module v1 (ESP8285). Promiscuous mode wave sonification through the universal sine kernel. Post-quantum signed with ML-DSA + SLH-DSA.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages