Skip to content

Daemon Overview

The RPI-Seism daemon is the central nervous system of the project. It is a high-performance, multi-threaded Python application designed to acquire, process, store, and broadcast triaxial seismic data in real-time.

The daemon acts as the bridge between raw hardware signals and high-level data analysis tools. It manages the high-speed RS-422 serial stream from the MCU and distributes it to specialized processing threads.

  • Sensor: 3x GD-4.5 Geophones (Triaxial)
  • Signal Chain: LT1167 InstAmp → ADS1256 (24-bit ADC)
  • Transport: RS-422 @ 250 kbps via MAX490E
  • Physical Layer: Cat5/6 cabling for long-distance noise immunity

Real-time Acquisition

Continuous 100 SPS sampling with CRC-32 checksum validation for every packet.

Standardized Storage

Writes to SDS (SeisComP Data Structure) in MiniSEED format with automatic midnight splits.

Live Streaming

Websocket server (ws://8765) broadcasting 4× decimated (25 Hz) filtered data.

Smart Alerts

Integrated STA/LTA trigger engine with Apprise support (Telegram, Email, etc.).


  1. Installation Clone the repo and sync dependencies using uv:

    Terminal window
    git clone https://github.com/rpi-seism/rpi-seism-daemon.git
    cd rpi-seism-daemon
    uv sync
  2. Initial Configuration Running the daemon for the first time generates a default config.yml:

    Terminal window
    mkdir -p data
    uv run rpi-seism
    nano data/config.yml
  3. Deployment

    Terminal window
    uv run rpi-seism

The daemon utilizes five concurrent threads to ensure no data loss during heavy I/O operations:

ThreadResponsibilityOutput
ReaderSerial parsing & CRC validationInternal Queues
MSeedWriterSDS Archival (MiniSEED)/data/archive/
WSSenderDecimation & Live Broadcastws://port:8765
TriggerSTA/LTA Event DetectionEarthquake Event
NotifierAlert Delivery (Apprise)Telegram/Email

  • Format: MiniSEED (FDSN compliant).
  • Metadata: Auto-generated StationXML with pole-zero instrument response.
  • Structure: SeisComP Data Structure (SDS) YEAR/NET/STA/CHAN.D/.