Software-defined emergency alerting, engineered like a broadcast appliance.
EAS Station ™ is an open-source, Raspberry Pi-class replacement for commercial EAS encoder/decoders — integrating CAP ingest, SAME audio synthesis, SDR verification, and multi-channel distribution into one disciplined stack.
Compliance & Safety
Read this before you plug anything in. All four apply at once.
Development-Only
Experimental. Not FCC-certified. Use only in controlled lab and training environments until a certification path is established.
No Live RF Leakage
The station emits valid SAME headers and attention tones. Never couple experimental output to on-air RF, STL, or streaming chains without explicit authorization — it will trigger downstream facilities.
Real Enforcement, Real Money
iHeartMedia: $1M consent decree (2015, Bobby Bones). Olympus Has Fallen trailer: $1.9M settlement. Misuse is traceable and can include equipment seizure and license revocation.
Ethics & Accountability
This project exists to strengthen public warning readiness, not to be weaponized. The maintainer will cooperate with authorities against misuse. Treat every generated signal with the gravity of a live alert.
Mission & Scope
CAP in, verified broadcast out — with the paper trail to prove it.
Primary Goal
Give emergency communications teams an automated CAP-to-EAS workflow — from ingestion through broadcast verification — with complete compliance documentation at every stage.
Drop-In Replacement Roadmap
Deliver the nine roadmap pillars — baseband capture, deterministic playout, hardware control, security, resilience, turnkey deployment, compliance analytics, unified documentation, and certification readiness — so the platform mirrors commercial decoders on commodity hardware.
Key Features
- CAP Feed Aggregation
- SAME Audio Generation
- PostGIS Spatial Intelligence
- SDR Verification
- Automatic RWT Scheduling
- LED Sign Integration
- Custom Display Screens & VFD Graphics
- MDC1200 Selective Calling
- Stratum 1 GPS Time Source
Software Stack
Boring, battle-tested pieces wired together deliberately.
Application Framework
Data & Spatial Layer
Servers & Deployment
Streaming, SDR & Audio
Scientific & Signal Processing
Authentication & Notifications
Timekeeping (Stratum 1)
Hardware Platform
Frontend Libraries (vendored locally)
Separated Service Architecture
Dedicated services with clear ownership — fault isolation by design.
app
Flask web UI, REST API, dashboards. No hardware access. Reads metrics from Redis.
sdr-service
SDR capture, FM demodulation, SAME decoding, Icecast streaming. USB access.
hardware-service
GPIO relays, OLED/VFD displays, LED sign protocols. I2C/GPIO access.
noaa-poller / ipaws-poller
CAP feed polling, XML parsing, deduplication. Writes to PostgreSQL.
Redis
Real-time metrics, waveforms, command pub/sub. 5 s TTL on live data.
PostgreSQL + PostGIS
Persistent storage for alerts, boundaries, configs, and compliance logs.
The Alert Pipeline
Four stages, one flow — CAP to verified broadcast.
1 · Ingestion
CAP feed polling, message parsing, and validation.
2 · Processing
SAME encoding, audio generation, content composition.
3 · Distribution
Multi-channel output, hardware control, scheduling.
4 · Verification
SDR monitoring, compliance analytics, audit trails.
MDC1200 Selective Calling
EAS breaks squelch only where it should — and identifies itself on every radio it reaches.
EAS Station ™ is the first open-source EAS encoder to natively support MDC1200 selective calling — Motorola's 1200-baud FFSK signalling protocol for Land Mobile Radio (LMR) systems. When EAS alerts are forwarded into a two-way radio dispatch system, MDC1200 ensures they are correctly identified on subscriber displays, selectively routed to authorised radios, and cleanly terminated — exactly as a Motorola infrastructure device would behave.
Pre-Alert PTT-ID
An MDC1200 PTT-ID packet transmits before the SAME header burst. Every subscriber radio on the channel displays EAS Station ™'s unit ID the moment the transmission opens — no ambiguity about the source.
Selective Unmuting
Motorola-compatible subscribers programmed with EAS Station ™'s unit ID break squelch automatically. Radios on the same channel that aren't configured for that ID stay silent — no alert fatigue on channels not intended for EAS.
Clean Post-Alert Close
After the EOM burst, a second MDC1200 packet (op 0x00) cleanly releases the call on every subscriber. The radio's display doesn't latch indefinitely, and the call list logs a complete, properly terminated entry.
Invisible to SAME Decoders
MDC1200 packets sit entirely outside the SAME burst window — before the first header and after the final EOM. Downstream ENDECs and EAS monitors receive a fully conformant SAME signal with no interference.
Dispatch Console Logging
Every EAS transmission appears in the radio system's call list with EAS Station ™'s unit ID, timestamp, and call duration — providing a hardware-level audit trail alongside the software compliance logs.
Fully Configurable
Unit ID, op-code, and argument accept decimal or 0x-hex values. Pre and post positions auto-select complementary op-codes (PTT-ID pre / PTT-ID post), and the entire profile can be switched to None, Bell, Beep, or DTMF with a single setting.
Stratum 1 GPS-Disciplined Time
Real broadcast-grade timing hardware — the station is the reference clock, not a client of one.
EAS Station ™ ships with first-class support for a GPS/PPS HAT that turns the station itself into a true stratum 1 NTP server. chrony consumes a multi-GNSS NMEA fix and the hardware Pulse-Per-Second edge as a kernel refclock, so every alert timestamp, every audit log entry, and every SAME header JJJHHMM field is locked to the satellites — accurate to sub-microsecond, with no upstream internet time required and no drift when the WAN is down.
Multi-GNSS Receiver
Uputronics GPS/RTC HAT with the u-blox MAX-M8Q tracks GPS, GLONASS, Galileo and BeiDou concurrently — fast cold-start, robust urban-canyon performance, and a clean 1 Hz NMEA stream at 9600 baud over the Pi UART.
Hardware PPS Edge
A discrete Pulse-Per-Second line wired to BCM 18 (Uputronics) or BCM 4 (Adafruit) is exposed to the kernel as a /dev/pps0 device and consumed by chrony as a refclock. Sub-microsecond rising-edge accuracy beats any internet NTP source.
True Stratum 1 NTP
With GPS time as the reference and PPS as the on-time marker, chronyc tracking reports Stratum: 1 and offsets in the microseconds. The dashboard's GPS card surfaces fix mode, satellite count, HDOP, and a live PPS pill so the lock can be proven at a glance.
Battery-Backed RTC
An on-HAT RV-3028-C7 (current revisions) or DS3231 (older boards) keeps the system clock disciplined across power cycles even before GPS lock returns. The kernel's `rtc0` is sourced from the HAT, not the SBC's bus, so cold-boots come up with a sane wall clock.
Air-Gap Friendly
The reference is the sky, not pool.ntp.org. EAS Station ™ holds stratum 1 with no internet at all — critical for field deployments, EOC roll-outs, COW trailers, and any site that loses transit during the very emergency the station is meant to cover.
One-Click Setup
Admin → Hardware Settings → GPS probes every prerequisite — RTC overlay, PPS device, gpsd / chrony / util-linux-extra packages, /boot/firmware/config.txt overlays, chrony's selected source — and offers a Run button per remediation step. Even seeding the RTC after a coin-cell change is a single click.
sent, effective, expires and onset fields whose math has to match the wall clock. A station that drifts seconds against NIST is a station whose RWT logs and compliance trail eventually cease to match the real world. EAS Station ™ owns its time at the hardware level.
See the GPS HAT Setup guide for board options, wiring, and the manual configuration steps the admin UI automates.
Maintainer
One operator, four disciplines, one lab.
Timothy Kramer / KR8MER
Project Lead · Putnam County, Ohio
Sole maintainer of EAS Station ™ — amateur radio operator with deep roots in public safety and mission-critical communications. The project pairs disciplined engineering with experimental emergency communications research.
Emergency Service
Amateur Radio
Licensed since 2004; General Class upgrade in 2025. Active in Skywarn and emergency communications nets.
Public Safety
17 years as a deputy sheriff — first-hand familiarity with Motorola mission-critical infrastructure and public warning workflows.
Electrician
Full-time electrical panel electrician. Brings hands-on hardware discipline and methodical troubleshooting to every layer.
Home Laboratory
Professional-grade radios, RTL-SDR capture nodes, digital paging decoders, and networking gear — used to validate every release.
Data Sources & Acknowledgments
Standing on public data and open-source shoulders.
Geographic Data
Alert & Protocol Sources
Open Source Community
AMPR Network Notice
Non-commercial use only · AMPR 44.0.0.0/8.
This site may be accessible via the AMPRNet (44.0.0.0/8), the globally routed IPv4 space allocated to the amateur radio community by the Amateur Radio Digital Communications (ARDC) foundation. Per FCC Part 97, ARDC policy, and AMPRNet allocation terms, this service is strictly non-commercial — no for-profit transactions, no commercial advertising.
- Operated by a licensed amateur radio operator (KR8MER) for non-commercial research, experimentation, and emergency communications training.
- AMPRNet use remains consistent with FCC Part 97 non-commercial requirements.
- Commercial use of the 44.0.0.0/8 block is prohibited under ARDC and FCC policy.
- Gateway registration and routing comply with AMPRNet gateway policies.
See ampr.org for AMPRNet policy and 47 CFR Part 97 for amateur radio regulations.
Additional Resources
Jump straight to docs and external references.