Native RF analysis for macOS
Read the radio.
Sigil is a precision instrument for radio signals — live spectrum and waterfall from six SDR families, deep offline IQ analysis, and seven protocol decoders. Built native: SwiftUI, Metal, Accelerate.
macOS 14+ · Apple Silicon & Intel · no hardware required for file analysis
| 14:32:07.412 | 1C6F02A4 | Schrader-EG53MA4 | temp=21°C pressure=32.5PSI |
| 14:32:09.876 | 0F58C11D | Toyota | temp=24°C pressure=35.1PSI |
| 14:32:11.204 | 1C6F02A4 | Schrader-EG53MA4 | temp=21°C pressure=32.4PSI |
Drives
- USRP UHD
- RTL-SDR
- HackRF One
- SoapySDR any device
- SignalHound BB60
- HydraSDR RFOne
Live capture loads each device's free library (a one-line Homebrew install) — file analysis needs no hardware and no installs.
Inside the instrument
See it, box it, keep it
Live spectrum and waterfall render on Metal at full display refresh while a rolling buffer — sized to your Mac's memory — retains the raw IQ behind everything on screen. Shift-drag a box around any burst that scrolls past and Sigil cuts that slice to a SigMF recording, straight into analysis. Click-to-tune VFO with live audio: NBFM, WFM, AM, USB/LSB.
- 60–120 fps Metal spectrum + waterfall, vsync-paced
- Anything visible is capturable — buffer follows the waterfall
- Live ↔ analysis without stopping the SDR
From trajectory to symbols
Point the symbol analyzer at an unknown burst and it recovers the carrier, the baud, and the constellation — blind. The lock chip is honest: you get QPSK · EVM 4.2% only when there's a real symbol lock, never a decorated guess. Eye diagrams, measurements, and a modulation classifier that names what it sees: CW, CSS, FM, M-FSK, PSK, OOK, FSK.
- Blind carrier / baud / constellation recovery
- Eye diagram with strobe-aligned traces
- Band power, occupied bandwidth, channel SNR
Constellation SYM 9600 · QPSK · EVM 4.2%
Eye · I
A workbench for raw bits
Decoded a frame nobody documents? Drag across the bit grid to carve fields, read each one as hex, decimal, binary, or ASCII, and let the checksum search tell you which of 51 catalogued CRC models connects the message to its check bytes. Reverse-engineering, minus the spreadsheet.
- Drag-select field annotation over raw decoder bits
- 51-model verified CRC catalog
- Checksum identification over any selection
Bits 96 bits · FSK burst
Seven decoders, one pipeline
Every decoder reports why it bailed when it finds nothing — stage, message, and a hint — so a silent capture is a clue, not a dead end.
| Decoder | Modulation | What you get |
|---|---|---|
| CW | On-off keyed Morse | Text with adaptive WPM tracking |
| OOK | Pulse trains | Bits, Manchester decode, protocol matching |
| FSK | 2-level FSK | NRZ bitstream with symbol-center clock recovery |
| POCSAG | FSK · 512–2400 Bd | Pager messages — address, function, alpha/numeric |
| FLEX | 2/4-level FSK · 1600/3200 Bd | BCH-checked pager frames, full field table |
| TPMS | OOK / FSK bursts | Tire sensor ID, pressure, temperature |
| LRS | FSK paging | Restaurant pager transmissions |
Unknown signal? analyze renders a modulation verdict first — then you pick the decoder.
The engine ships as a CLI, too
The same DSP core behind the app — pure Swift and Accelerate, ~730 tests — drives three command-line tools. Decode recordings in batch, generate synthetic IQ for testing, and capture from hardware headlessly.
$ decode drive.sigmf -d tpms
[structured] Schrader-EG53MA4 id=1C6F02A4 temp=21°C pressure=32.5PSI
$ generate psk random:2000 --order 4 --symbol-rate 9600 -o qpsk.sigmf
$ capture --device hackrf -c 433.92e6 -s 10e6 -o band.sigmf
Reads
- SigMF
- fc32 / cf32
- cs16 / sc16
- cu8
- cs8
- WAV
- BLUE .cdif / .blue
- SDVR
- raw
Coming soon.
Sigil for macOS
1.0 in development
- All seven decoders, all six SDR drivers
- Analysis suite — symbols, bits, measurements, classifier
- One-time purchase — no subscription
Pricing announced at launch · secure checkout via Paddle · VAT handled
Beta program
Beta opening soon
- Full app, no feature gates
- Signed, notarized builds with auto-update
- Open a SigMF recording — no hardware needed
macOS 14 Sonoma or later · universal binary (Apple Silicon & Intel)