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>
This commit is contained in:
istrain
2026-07-24 23:19:16 -04:00
commit 559caead36
41 changed files with 6740 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
# PyEOT
GNU Radio/Python-based decoder for EOT packets
This combination of a GNU Radio Companion flowgraph (EOT.grc) and accompanying pyeot.py will receive
and decode packets from the End-of-Train device. The GRC flowgraph should be run before running the pyeot script.
Note that pyeot.py MUST be run in Python 3.x.
ZeroMQ PUB/SUB sockets are used to transfer the bitstream from GRC to the script. It is set to localhost, but also works
over an internet connection. Requires installation of zmq package.
Receive frequnecy should be set 457.9375 MHz.
Note that this software is receive-only, and will not generate packets. It is intended only for passive monitoring.
This software does not decode packets from the Head-of-Train device.
This is a POC. No attempt is made to catch or handle errors. If the GRC flowchart crashes or the TCP connection is interrupted, the receiver script will not know about it, and will not automatically reconnect.
Also included are slides from my talk at DEFCON 26, and a WAV file with some packets to play with.
Not much if any testing has been done with this version.