# iSTRAIN — build stages **Primary goal:** detect a train blocking *your* crossing, from passive RF alone. **Secondary:** capture and learn — radios, trains, hardware, software. Not a toy. This file renders in the dashboard's checklist panel; edit it to track your own build. Full instructions: **APOCALYPSE-EDITION.md**. ## The plan · two radios, two bands - **Radio A (a Blog V4 is ideal) → rail VHF voice 160–162 MHz** — RTLSDR-Airband demodulates your pinned road/detector channels at once (your subdivision's AAR channel is the mission). - **Radio B (any RTL-SDR) → EOT-system UHF hop** — 452.9375 (head/BOT) ⇄ 457.9375 (EOT/tail), retune-in-place; ±12.5 kHz DPU neighbors watched inside each dwell. ## Stage 0 · Host & dongles - [ ] Linux host with Docker; base tools installed (rtl-sdr, ffmpeg, python3-numpy) - [ ] DVB driver blacklisted on the host (`config/blacklist-rtl-sdr.conf`); `lsmod | grep dvb` empty - [ ] Dongles serialized (`rtl_eeprom -s …`) so services pick them by name - [ ] NOAA weather RX proves the antenna→dongle→software chain end to end ## Stage 1 · Your crossing - [ ] Railroad + subdivision identified; road channel + neighbors found (cross-checked on 2 sources) - [ ] Nearby defect-detector mileposts noted (your early-warning tripwires) - [ ] `config/istrain.conf` edited with YOUR voice channels ## Stage 2 · Bring-up - [ ] DSP selftests pass (`iq_hop.py --selftest`, `iq_channelize.py --selftest`) - [ ] Stack builds and runs (`docker compose --profile radio --profile radio1001 up -d`) - [ ] `level.json` refreshing; clips landing; dashboard live at `:3456` - [ ] First EOT decode on a real train (unit ID + brake psi + motion) 🎉 ## Stage 3 · Ears & polish - [ ] Whisper transcription wired (comms band-pass first, VAD on — see APOCALYPSE §7) - [ ] Squelch tuned to your noise floor (not a textbook number — APOCALYPSE §8) - [ ] Standing carriers (fixed wayside boosters) identified and carded, not chased ## Stage 4 · If you expose it publicly - [ ] Read APOCALYPSE §10 (security): presentation-node read-only mode, no PUSH_KEY, proxy auth - [ ] Antenna moved high and away from your computers — the #1 range lever ## The habit that makes it work - [ ] Keep one append-only, numbered observations log. Record findings AND retractions.