Configuration Guide
The rpi-seism daemon is controlled by a single config.yml file. Settings are strongly typed and cross-validated using Pydantic to ensure the hardware and software stay in sync.
Station Metadata
Section titled “Station Metadata”These settings define your station’s identity in the global FDSN network.
| Field | Type | Constraints | Description |
|---|---|---|---|
network | string | 1-2 chars | FDSN Network code (e.g., XX) |
station | string | 1-5 chars | Station identifier (e.g., RPI3) |
latitude | float | -90 to 90 | Decimal degrees |
longitude | float | -180 to 180 | Decimal degrees |
elevation | float | N/A | Meters above sea level |
Hardware Epochs (start_date)
Section titled “Hardware Epochs (start_date)”The daemon uses this date to manage StationXML epochs. If you change hardware settings but keep the same start_date, the daemon will refuse to start to prevent corrupting your instrument response metadata.
MCU & ADC Settings
Section titled “MCU & ADC Settings”These values are pushed to the MCU during the Serial Handshake.
| Enum | Value | Range | Best Use Case |
|---|---|---|---|
| PGA_1 | 0 | ± 5.0 V | Raw ADC testing / DC signals |
| PGA_2 | 1 | ± 2.5 V | 3.3V sensor bypass |
| PGA_4 | 2 | ± 1.25 V | Medium gain staging |
| PGA_8 | 3 | ± 625 mV | High-output piezo sensors |
| PGA_16 | 4 | ± 312.5 mV | Low-noise differential inputs |
| PGA_32 | 5 | ± 156.25 mV | Small signal amplification |
| PGA_64 | 6 | ± 78.125 mV | GD-4.5 Geophone + ×100 Preamp |
| Enum | Value | SPS | Status | Use Case |
|---|---|---|---|---|
| DRATE_100SPS | 8 | 100 | ❌ Too slow | Static DC monitoring |
| DRATE_500SPS | 9 | 500 | ⚠️ Marginal | Low-bandwidth (20Hz) |
| DRATE_1000SPS | 10 | 1000 | ⚠️ Marginal | Standard 50Hz output |
| DRATE_2000SPS | 11 | 2000 | ✅ Optimal | Required for 100Hz output |
| DRATE_3750SPS | 12 | 3750 | ✅ Stable | High-speed multiplexing |
| DRATE_7500SPS | 13 | 7500 | ✅ Low Latency | High-frequency analysis |
| DRATE_30000SPS | 15 | 30000 | ⚠️ High Noise | Maximum speed / Burst mode |
The 13× Timing Rule
Section titled “The 13× Timing Rule”To ensure the MCU can multiplex 3 channels without jitter, the ADC sample rate must be at least 13 times higher than the daemon’s requested output rate.
- Target: 100 Hz output.
- Minimum ADC Speed: 1300 SPS.
- Setting: Use
adc_sample_rate: 11(2000 SPS).
Channel Definitions
Section titled “Channel Definitions”Defines how the physical ADC pins map to SEED-compliant seismic channels.
| Field | Type | Description |
|---|---|---|
name | string | 3-char SEED code (e.g., EHZ, EHN, EHE) |
adc_channel | int | Physical pin index (0, 1, or 2) |
orientation | enum | vertical, north, or east |
sensitivity | float | Geophone sensitivity in V·s/m |
analog_gain | float | Hardware gain (e.g., 100.0 for your InstAmp) |
Jobs settings
Section titled “Jobs settings”Reader
Section titled “Reader”Configures the serial port settings for the RS-422 link to the MCU.
| Field | Default | Description |
|---|---|---|
| port | /dev/ttyUSB0 | Serial device path |
| baudrate | 250000 | UART baud rate (9600–2000000) |
Writer
Section titled “Writer”Configures the MiniSEED/SDS flush schedule.
| Field | Default | Description |
|---|---|---|
| write_interval_sec | 1800 | 10–86400 s |
Event Trigger (STA/LTA)
Section titled “Event Trigger (STA/LTA)”Configures the real-time earthquake detection engine.
| Parameter | Recommended | Description |
|---|---|---|
sta_sec | 0.5 | Short-term average window (seconds) |
lta_sec | 10.0 | Long-term average window (seconds) |
thr_on | 3.5 | Trigger ratio (STA/LTA) to start event |
thr_off | 1.5 | Ratio to end event (Hysteresis) |
Notification Services
Section titled “Notification Services”The daemon uses Apprise for alerts. You can add multiple notification targets.
jobs_settings: notifiers: - url: "tgram://bot_token/chat_id/" # Telegram enabled: true - url: "discord://webhook_id/webhook_token/" # Discord enabled: false