-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
KP edited this page May 18, 2025
·
1 revision
This page documents the high-level design and data flow of the toc-lp-kit container stack.
-
sdr-pipeline
- Runs
rtl_fmtuned to 7.078 MHz USB - Pipes raw IQ → audio via
soxinto PulseAudio null-sink
- Runs
-
PulseAudio (host)
- Null-sink js8loop exposes the audio stream for JS8Call
- Socket shared at
/tmp/pulse/native
-
js8call
- Captures audio from “Monitor of js8loop”
- Provides GUI and writes JSON decodes to
~/.js8call/decode.log
-
chrony
- Keeps the system clock accurate via public NTP
- Ensures JS8Call time-slots align across all nodes
- All services run in Docker host network mode → share the host’s IP
- PulseAudio protocol socket mounted into SDR & JS8Call containers
-
Persistent logs:
js8-logDocker volume →/home/js8/.js8call
- RF → received by RTL-SDR v4
- rtl_fm demodulates USB → sox converts to 12 kHz WAV
- WAV → piped into PulseAudio null-sink “js8loop”
- JS8Call container decodes audio from “js8loop”
- JSON messages stored in
js8-logvolume - Chrony keeps time within ±1 s of true NTP
Return to Home