From d7c1031b66bcf6be1f537fa060cbf69c9b137da6 Mon Sep 17 00:00:00 2001 From: Silas Date: Mon, 27 Jul 2026 21:34:43 -0400 Subject: [PATCH] =?UTF-8?q?README:=20rtl-sdr.com=20feature=20link=20+=20bl?= =?UTF-8?q?og-reader=20pointer=20to=20APOCALYPSE-EDITION;=20add=20'Open=20?= =?UTF-8?q?problems'=20section=20(antenna=20range,=20mid/DPU=20ID,=20HOT?= =?UTF-8?q?=20command+BCH,=20direction-of-travel,=20taxonomy=20portability?= =?UTF-8?q?)=20=E2=80=94=20invite=20contributions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- README.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 292217f..d5e034e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ trackside **defect detectors** on 160–162 MHz, and the **End-of-Train** and ** telemetry on 457.9375 / 452.9375 MHz. It decodes the End-of-Train brake-pressure and motion data, transcribes the voice, and fuses it all into one live verdict. -**Live instance:** [istrain.jhestyr.net](https://istrain.jhestyr.net) +**Live instance:** [istrain.jhestyr.net](https://istrain.jhestyr.net) · [featured on rtl-sdr.com](https://www.rtl-sdr.com/istrain-detecting-if-a-train-is-blocking-a-local-crossing-by-listening-to-railroad-frequencies/) + +**New here from the blog?** → the full build guide is [`APOCALYPSE-EDITION.md`](APOCALYPSE-EDITION.md) (human- or coding-agent-readable). Open problems we'd take help on are at the bottom. It's built on a couple of ~US$30 RTL-SDR dongles, some wire, and an always-on Linux box running Docker. No transmitting, no license needed to receive in the US, no railroad cooperation — the @@ -54,6 +56,26 @@ straight through by a human **or** handed to an LLM coding agent pointed at this Any one can be too weak to read, but a real train lights several bands at once — so istrain correlates across all of them. +## Open problems — what we're still figuring out + +Passersby with RF chops: these are the live unknowns. Pull requests, corrections, and "actually, +it works like this" all welcome. + +- **Range is antenna-bound.** The rail voice band is weak and buried in house RF; gain doesn't help + (it just amplifies the noise). A grounded rooftop antenna is the open lever — height and distance + from the shack, not dBi. What we've got works; what we want is the dwellers' faint keys cleanly. +- **Mid-train / DPU bursts (±12.5 kHz off the EOT/HOT centers) are unidentified.** They're *not* + drifted EOT (our decoder says no). Next step is sub-channel labeling to separate a real + distributed-power emitter from the fixed wayside booster carrier before any raw-IQ demod. +- **The Head-of-Train frame is only half-cracked.** We recover the frame and decode the *addressed + unit* (enough to join head to tail), but the command/type field + BCH are still unread. HOT-format + docs are scarce; if you know the framing, we'd love a pointer. +- **Direction of travel** should fall out of the approach/recede signal envelope — unbuilt, and + blocked on the better antenna above. +- **The brake-pressure taxonomy** (passing / dwelling / cut-and-standing / departing) came from ~50 + ground-truthed passages on one subdivision. It may read differently on other railroads and + operating patterns — more ground truth from other crossings would sharpen it. + ## License & credits **GPLv3** — see [`LICENSE`](LICENSE). The EOT decoder validates frames against