Operation Anansi logo
OPERATION ANANSI FIELD OPS · ISSUE 01
Spider Sense logo — a masked web-slinger in a green web

SPIDER SENSE

Operation Debrief

A Flipper Zero surveillance-device field sensor — from a custom firmware, through a companion app, to a live feed on the Anansi intelligence globe.

01 · MISSION BRIEF

The Setup

The globe watches the region from above. Spider Sense walks the street and reports what's actually transmitting in the room.

Spider Sense turns a Flipper Zero and a cheap ESP32 Wi-Fi board into a pocket detector for surveillance hardware — Flock ALPR cameras, Axon gear, generic IP cameras, Ring, Wi-Fi deauthers, evil-twin access points and pentest kit — and then pipes what it finds into Anansi, the regional intelligence globe, as a mappable layer. It is the field-sensor arm of Operation Anansi.

The work came in three parts, in this order: a custom Flipper firmware to live on (?xOS), the sensor + app that are the real payload (Spider Sense), and the bridge that feeds it back to the globe (Anansi integration).

Assets & Methods

AssetFunction
Flipper ZeroHandheld host — display, alerts, controls, GPIO bridge
?xOS firmwarePersonal Flipper firmware (official-based), ghost-themed, Spider Sense bundled
Wi-Fi Dev Board (ESP32-S2)Headless sensor — 2.4 GHz sniffing, detection matching, UART out
Spider Sense firmwareSquachWatch detection engine, re-stated as a serial sensor build
Spider Sense app (.fap)Flipper app — live list, detail, vibrate/LED/sound alerts
Wire protocolSQW,* text lines over GPIO UART, 115200
Anansi integrationGod's Eye View data layer: serial middleware → GeoJSON → globe
Detection catalogFlock, Axon, ALPR, camera, Ring, deauth, evil-twin, pentest gear
02 · FIELD LOG

The Build, Panel by Panel

1
PART ONE · THE FIRMWARE

?xOS — a Flipper to live on

Before the sensor, the handheld needed its own identity. ?xOS (by whoXisXhe) is a personal Flipper Zero firmware that swaps the stock dolphin for a spider/ghost world. It was built twice on purpose: first on RogueMaster — a full custom firmware with hundreds of bundled tools, where ~523 of its apps compiled cleanly after a build-and-triage pass — then rebuilt from scratch on the official Flipper firmware (1.4.3, API 87.1) for a clean, upstream-compatible base, renamed ?xOS.

Every piece of dolphin art is replaced by original characters drawn in code — generic arcade-style ghosts and a masked web-slinger, not anybody's licensed mascots — from a Python pipeline that renders 1-bit frames with the Flipper's own fonts: eight idle animations (a web-weaver, a graveyard float, peek-a-boo, rise-from-grave, a corridor chase, a conga line, a spooked jump, a vanish), plus every system screen (success, save, NFC/RFID, Sub-GHz, U2F, pairing, the passport portraits, the CLI banner). Spider Sense ships inside it.

?xOS original ghost idle animations on the Flipper screen
?xOS idle animations — original ghost art, rendered from code, playing on the 128×64 screen
2
THE SENSOR

ESP32 on the GPIO header

The detector itself is the SquachWatch engine re-stated as a headless serial sensor for the official Flipper Wi-Fi Dev Board (ESP32-S2). It puts the radio in listen-only mode, hops channels 1–13, and matches every frame against SquachWatch's signature tables — the same OUI / SSID / behavior rules that power the full device — then streams one text line per finding out of UART0 to the Flipper's GPIO pins (13/14) at 115200. No network, no beacon of its own: it only listens, so nothing in the room can tell it is there.

One hard limit shaped everything: the S2 has no Bluetooth radio at all. So the whole Wi-Fi catalog works — Flock, Axon, ALPR, cameras, Ring, deauth floods, evil-twin APs, and pentest gear like Pwnagotchi and the Wi-Fi Pineapple — but the Bluetooth half of SquachWatch (AirTags, trackers, camera glasses, BLE skimmers, Remote ID drones) sits dark until the sensor moves to a Bluetooth-capable board. The code for those detections already exists; the chip just can't run them.

3
PART TWO · THE MEAT

Spider Sense — the Flipper app

This is the core of the project. Spider Sense is a native Flipper Zero app (.fap) that reads the sensor's lines over the GPIO UART and turns them into a live operator display. It opens on an Anansi splash, then shows the latest detection, a running list of the last 32, and a detail view per device (type, vendor, MAC, RSSI, channel, confidence). Each new detection buzzes the Flipper, flashes the LED, and chirps — the LED on the board flashes too, so it works even glanced-at in a pocket.

Controls map to the pad: OK opens the list, Up pauses, Down locks or hops the channel, Left toggles sound, Right steps the minimum confidence (LOW → MED → HIGH) so a passing ESP32 dev board doesn't cry wolf as a possible Flock camera. It's built against the dev-channel SDK so the same .fap loads on RogueMaster, Momentum, Unleashed and official firmware — and confirmed LIVE on real hardware, streaming detections from the board on the header.

Spider Sense Flipper app — splash screen and live detection screen
Spider Sense on the Flipper — the Anansi splash (top) and a live FLOCK detection with signal, channel and confidence (bottom)
4
THE WIRE

A deliberately boring protocol

The board and the Flipper talk in plain comma-separated text, one record per line, so any ESP32 that speaks it works with the app and any terminal can read it. Free text (vendor, SSID) always comes last with its separators scrubbed, so one odd network name can never split a record.

SQW,HELLO,<firmware>,flipper-devboard,wifi
SQW,STAT,<uptime>,<frames/s>,<channel>,<hopping>,<running>,<total>,<dropped>
SQW,DET,<NEW|AGAIN|SEEN>,<TYPE>,<H|M|L>,<MAC>,<rssi>,<channel>,<hits>,<vendor>,<name>

That same line format is what the Anansi side consumes — which is what made the integration clean.

5
PART THREE · THE WRAP-UP

Integrating Spider Sense into Anansi

This is where the two projects tie back together. Anansi (the God's Eye View–based intelligence globe) already renders CCTV, traffic and regional feeds; Spider Sense adds ground truth — real surveillance hardware, detected in the field, plotted where it was seen. A new flipperDetections layer brings the sensor onto the globe:

A dev-server serial middleware (in vite.config.js, same pattern as Anansi's other proxies) reads the Flipper's COM port — fed by the Flipper's own USB-UART bridge — parses the SQW,* stream into memory, writes a capture CSV, and serves the detections as GeoJSON. A dedicated live layer re-fetches on an interval, so new detections appear on the globe without toggling anything, and while it's enabled the browser quietly posts its geolocation so live hits land at the operator's real position. For precise after-the-fact mapping, a GPX import timestamp-matches a logged phone track to the capture so every detection gets exact coordinates — wardriving, but for surveillance gear. Because the detections carry type and MAC, they can be cross-checked against Anansi's existing CCTV catalog: the globe says a camera should be here; Spider Sense confirms it's live and hands over its hardware address.

The integration lives in the Anansi app repo; this sensor and app live here. The SQW protocol above is the seam between them.

System Architecture

FIELD                                   HANDHELD                 OPERATOR / GLOBE
┌──────────────────────┐  UART 115200  ┌───────────────┐  USB   ┌────────────────────┐
│ ESP32-S2 Wi-Fi board │ ── 13/14 ───▶ │ Flipper Zero  │ ─────▶ │ PC — Anansi (vite)  │
│ Spider Sense sensor  │               │  · ?xOS        │        │  serial middleware  │
│  · ch 1–13 hop       │ ◀── cmds ──── │  · Spider Sense│ ◀────  │  → /api/flipper      │
│  · SquachWatch match │               │    app (.fap)  │        │  → GeoJSON layer     │
│  · SQW,* lines out   │               │  · USB-UART br. │        │  → 3D globe + CCTV   │
└──────────────────────┘               └───────────────┘        └────────────────────┘
         listens only                     shows + alerts            maps + cross-checks
                                                                   (+ phone GPS / GPX)
03 · OBSTACLES

What Actually Went Wrong

  • The S2 has no Bluetooth — the official Wi-Fi Dev Board is Wi-Fi-only, so half of SquachWatch's catalog (AirTags, trackers, glasses, skimmers, drones) can't run on it. Scoped the sensor to the Wi-Fi detections and documented the Bluetooth half as a board upgrade, not a code gap.
  • Flipper app API versioning — a .fap only loads when its API major matches the firmware's and its minor is ≤. Built against the dev-channel SDK so the app loads across RogueMaster / Momentum / Unleashed / official instead of one firmware only.
  • RogueMaster → official port — moving ?xOS to the official base meant a large bundled-app triage: of RogueMaster's app set, ~523 compiled against the official API and the rest, which depend on RogueMaster's own firmware patches, were dropped. One app had to go for a duplicate app-id that collided with a firmware built-in.
  • A double-compiled app — a stray nested copy of the Spider Sense source made the linker see two definitions of the entry point; flattening the folder fixed it.
  • requestRenderMode camera control — on the Anansi side, a new view-control panel's orbit math failed when the center-of-screen pick returned nothing; switched to intersecting the camera's view direction with the ellipsoid, which is layout-independent and always resolves.
  • Unrelated git histories — the target repos had their own histories, so updates went onto their own branches rather than force-overwriting anyone's main.
WI-FI COMPLETE — BLUETOOTH PENDING HARDWARE
04 · FUTURE OPS

What's Next

  • Move the sensor to a Bluetooth-capable ESP32 (original or S3) with onboard GPS — unlocks the full detection catalog (AirTags, trackers, glasses, drones) and self-locating detections, no phone required.
  • Have the ESP32 stamp each detection with GPS at the source, so the Anansi layer gets exact coordinates live instead of via GPX timestamp-matching.
  • Cross-match detections against Anansi's CCTV catalog automatically — confirm mapped cameras, and flag unmapped ones the field sensor discovers.
  • Optional LoRa/mesh relay so multiple sensors report into one Anansi picture.
05 · THE TAKEAWAY

Skills Applied

  • Embedded firmware — an ESP32 Wi-Fi sniffer/sensor build and a native Flipper Zero application in C, against two different SDKs.
  • Cross-platform build systems — PlatformIO for the ESP32, the Flipper build toolchain (ufbt / fbt) for the app and firmware, plus a Python asset pipeline that renders 1-bit UI art.
  • Protocol design — a deliberately simple, resilient serial wire format that decouples sensor, handheld and globe.
  • Firmware engineering — porting a custom firmware onto an upstream base, resolving API-version and app-id conflicts, and flashing/validating on real hardware.
  • Geospatial integration — a live data layer on a CesiumJS globe fed from a serial device, with browser geolocation and GPX timestamp-matching.
  • Original UI / brand work — a code-generated ghost + spider art set designed to avoid anyone else's IP while carrying a consistent identity.
06 · METHODOLOGY

On the Use of AI

Being upfront about the split is more honest than presenting it as solo work.

Claude (Anthropic) was used throughout as a coding, debugging and design assistant — writing the ESP32 sensor build and the Flipper app, porting ?xOS onto the official firmware, generating the original ghost/spider art pipeline, and building the Anansi data layer and this debrief. The hardware decisions, the real-device testing, and every commit were driven directly; Claude functioned as a pair-programming and research tool, not an autonomous builder.

07 · CREDITS

Standing on Other People's Work

SquachWatch-CYD · skizzophrenic The detection engine — the signatures, the OUI/SSID/behavior rules, the whole idea of a surveillance-device detector — is SquachWatch-CYD by skizzophrenic. Spider Sense re-states its Wi-Fi detection core as a headless serial sensor for the Flipper dev board and adds the companion app; the hard part — knowing what a Flock camera or a Pineapple actually looks like on the air — is theirs. Full credit for the foundation.
RogueMaster & the CFW community RogueMaster and the wider Flipper custom-firmware community built the firmware ?xOS was first grown on, and the enormous bundled-app ecosystem that came with it. ?xOS stands on that work before it was rebuilt on the official base.
Flipper Devices Flipper Devices makes the Flipper Zero and the official firmware that the final ?xOS build is based on, and the SDK the Spider Sense app targets.
God's Eye View · Bilawal Sidhu The Anansi globe it feeds into is built on God's Eye View by Bilawal Sidhu — see the Operation Anansi debrief for that side of the project.
08 · SUMMARY

Where This Leaves Things

A custom Flipper firmware, a field sensor, and a companion app were built end to end and confirmed live on real hardware — a handheld that detects surveillance gear on the air — and then wired back into the Anansi intelligence globe as a mappable, self-locating feed. ?xOS gave it a home; Spider Sense is the payload; the Anansi integration is what makes a detection in a parking lot show up as a pin on the map. Wi-Fi is done and running; Bluetooth is one board away.

OPERATION COMPLETE