Files
istrain-public/ATTRIBUTION.md
T
istrain 559caead36 istrain-public: from-scratch build of a passive RF train detector
Public community release. The complete working system — DSP + decoders (scripts/),
web dashboard + API (dashboard/), container stack (docker/), config templates (config/) —
plus APOCALYPSE-EDITION.md, the full build guide for a human or a coding agent. GPLv3
(PyEOT dependency). Scrubbed of all secrets, internal IPs, hostnames, and location detail.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 23:19:16 -04:00

1.5 KiB

Attribution & licensing

istrain-public is licensed GPLv3 (see LICENSE). This choice follows the strongest dependency: the EOT decoder validates frames against PyEOT, which is GPLv3.

Third-party code vendored here

  • scripts/eot/PyEOT/PyEOT by Eric Reuter, the open-source End-of-Train / FFSK decoder (packet parser + BCH check) and its demo recording. GPLv3, its LICENSE kept intact in that directory. Our scripts/eot/eot_scan.py calls into it at runtime for frame-sync and validity checking; the two-pass adaptive front-end (drift-tolerant tone tracking + fuzzy sync) is our addition.

The shoulders this stands on

The tools and communities credited in the dashboard's With Thanks panel are the real foundation — RTL-SDR Blog and the osmocom rtl-sdr tools, RTLSDR-Airband, faster-whisper / OpenAI Whisper, FFmpeg, NumPy, Docker + Dockge, and the railfan frequency communities (RadioReference, Railroad-Frequencies.com, the regional railfan sites) that publish the channel plans that make any of this findable. See dashboard/index.html for the full list with links.

Note for the person who forked this

If you'd rather license your own build permissively (MIT/BSD), you can — but not while PyEOT is vendored and imported. Swap in your own FFSK frame parser + BCH check (the spec is public — 1200-baud FFSK, the SigidWiki EOTD page documents it), drop scripts/eot/PyEOT/, and the GPL obligation goes with it. Everything else here is original work.