Common Configurations
This section provides real-world configuration examples for typical WsprDaemon deployments.
Single KiwiSDR Setup
Basic Single-Band Configuration
# Station information
WSPR_CALL="W1ABC"
WSPR_GRID="FN42"
# Single KiwiSDR receiver
RECEIVER_LIST=(
"kiwi1,192.168.1.100:8073"
)
# Simple 40m operation
WSPR_SCHEDULE=(
"kiwi1,40m,WSPR,00:00,23:59"
)
# Basic reporting
WSPRNET_CALL="${WSPR_CALL}"
WSPRNET_GRID="${WSPR_GRID}"
Multi-Band Time-Based Switching
# Station information
WSPR_CALL="K2DEF"
WSPR_GRID="FN32"
# Single KiwiSDR with band switching
RECEIVER_LIST=(
"kiwi_main,192.168.1.100:8073"
)
# Time-based band schedule
WSPR_SCHEDULE=(
"kiwi_main,160m,WSPR,00:00,06:00" # Night - 160m
"kiwi_main,80m,WSPR,06:00,08:00" # Dawn - 80m
"kiwi_main,40m,WSPR,08:00,16:00" # Day - 40m
"kiwi_main,20m,WSPR,16:00,20:00" # Afternoon - 20m
"kiwi_main,40m,WSPR,20:00,22:00" # Evening - 40m
"kiwi_main,80m,WSPR,22:00,24:00" # Night - 80m
)
# Enable noise measurement
ENABLE_NOISE_GRAPHS="yes"
NOISE_GRAPHS_DIR="${HOME}/wsprdaemon/noise_graphs"
Sunrise/Sunset Relative Scheduling
# Station information with location for sun calculations
WSPR_CALL="VE3GHI"
WSPR_GRID="FN03"
LATITUDE="43.6532"
LONGITUDE="-79.3832"
RECEIVER_LIST=(
"kiwi_toronto,192.168.1.100:8073"
)
# Sun-relative scheduling
WSPR_SCHEDULE=(
"kiwi_toronto,160m,WSPR,sunset-1h,sunrise+1h"
"kiwi_toronto,80m,WSPR,sunset-30m,sunrise+2h"
"kiwi_toronto,40m,WSPR,00:00,23:59"
"kiwi_toronto,20m,WSPR,sunrise-1h,sunset+1h"
"kiwi_toronto,15m,WSPR,sunrise+1h,sunset-1h"
)
RX888 with KA9Q-Radio
Single RX888 Multi-Band
# Station information
WSPR_CALL="W4JKL"
WSPR_GRID="EM75"
# RX888 via ka9q-radio multicast
RECEIVER_LIST=(
"rx888_main,239.1.2.3:5004"
)
# Multiple simultaneous bands
WSPR_SCHEDULE=(
"rx888_main,160m,WSPR,00:00,23:59"
"rx888_main,80m,WSPR,00:00,23:59"
"rx888_main,60m,WSPR,00:00,23:59"
"rx888_main,40m,WSPR,00:00,23:59"
"rx888_main,30m,WSPR,00:00,23:59"
"rx888_main,20m,WSPR,00:00,23:59"
"rx888_main,17m,WSPR,00:00,23:59"
"rx888_main,15m,WSPR,00:00,23:59"
"rx888_main,12m,WSPR,00:00,23:59"
"rx888_main,10m,WSPR,00:00,23:59"
)
# KA9Q-radio specific settings
RADIOD_CONF_FILE="/etc/radio/radiod@rx888.conf"
ENABLE_GRAPE="yes" # WWV/CHU recording for HamSCI
High-Performance RX888 Setup
# High-throughput station
WSPR_CALL="W5MNO"
WSPR_GRID="EM25"
# Multiple RX888 receivers
RECEIVER_LIST=(
"rx888_hf,239.1.2.3:5004"
"rx888_vhf,239.1.2.4:5004"
)
# Full HF coverage
WSPR_SCHEDULE=(
"rx888_hf,2200m,WSPR,00:00,23:59"
"rx888_hf,630m,WSPR,00:00,23:59"
"rx888_hf,160m,WSPR,00:00,23:59"
"rx888_hf,80m,WSPR,00:00,23:59"
"rx888_hf,60m,WSPR,00:00,23:59"
"rx888_hf,40m,WSPR,00:00,23:59"
"rx888_hf,30m,WSPR,00:00,23:59"
"rx888_hf,20m,WSPR,00:00,23:59"
"rx888_hf,17m,WSPR,00:00,23:59"
"rx888_hf,15m,WSPR,00:00,23:59"
"rx888_hf,12m,WSPR,00:00,23:59"
"rx888_hf,10m,WSPR,00:00,23:59"
"rx888_vhf,6m,WSPR,00:00,23:59"
"rx888_vhf,4m,WSPR,00:00,23:59"
"rx888_vhf,2m,WSPR,00:00,23:59"
)
# Performance optimizations
WSPRDAEMON_TMP_DIR="/dev/shm/wsprdaemon" # Use RAM disk
MAX_DECODE_JOBS="16" # Parallel processing
ENABLE_DEEP_SEARCH="yes"
Multi-Receiver Configurations
Antenna Diversity Setup
# Station with multiple antennas
WSPR_CALL="G0PQR"
WSPR_GRID="IO91"
# Multiple receivers for antenna diversity
RECEIVER_LIST=(
"vertical,192.168.1.100:8073"
"dipole,192.168.1.101:8073"
"beverage,192.168.1.102:8073"
)
# Merged receivers for best SNR selection
WSPR_SCHEDULE=(
"MERGED_160,160m,WSPR,00:00,23:59,vertical+beverage"
"MERGED_80,80m,WSPR,00:00,23:59,vertical+dipole+beverage"
"MERGED_40,40m,WSPR,00:00,23:59,vertical+dipole"
"MERGED_20,20m,WSPR,00:00,23:59,vertical+dipole"
)
# Individual receiver monitoring
WSPR_SCHEDULE+=(
"vertical,15m,WSPR,00:00,23:59"
"dipole,10m,WSPR,00:00,23:59"
)
Geographic Distribution
# Multi-site configuration
WSPR_CALL="VK2STU"
WSPR_GRID="QF56"
# Receivers at different locations
RECEIVER_LIST=(
"site_north,203.0.113.10:8073"
"site_south,203.0.113.20:8073"
"site_coastal,203.0.113.30:8073"
)
# Site-specific scheduling
WSPR_SCHEDULE=(
"site_north,40m,WSPR,00:00,12:00"
"site_south,40m,WSPR,12:00,24:00"
"site_coastal,20m,WSPR,06:00,18:00"
"MERGED_80,80m,WSPR,00:00,23:59,site_north+site_south"
)
# Site-specific noise monitoring
ENABLE_NOISE_GRAPHS="yes"
NOISE_SITE_LABELS="North,South,Coastal"
Specialized Configurations
Research Station Setup
# Scientific research configuration
WSPR_CALL="W0XYZ"
WSPR_GRID="EN35"
RECEIVER_LIST=(
"research_rx,192.168.1.100:8073"
)
# Comprehensive band coverage for research
WSPR_SCHEDULE=(
"research_rx,2200m,WSPR,00:00,23:59"
"research_rx,630m,WSPR,00:00,23:59"
"research_rx,160m,WSPR,00:00,23:59"
"research_rx,80m,WSPR,00:00,23:59"
"research_rx,40m,WSPR,00:00,23:59"
"research_rx,20m,WSPR,00:00,23:59"
"research_rx,15m,WSPR,00:00,23:59"
"research_rx,10m,WSPR,00:00,23:59"
)
# Enhanced data collection
ENABLE_GRAPE="yes"
ENABLE_NOISE_GRAPHS="yes"
ENABLE_EXTENDED_LOGGING="yes"
UPLOAD_TO_WSPRDAEMON_ORG="yes"
# Research-specific settings
NOISE_MEASUREMENT_INTERVAL="60" # Every minute
SAVE_WAV_FILES="yes" # Keep audio for analysis
EXTENDED_SPOT_FORMAT="yes" # Additional metadata
Contest/DXpedition Support
# Portable/contest configuration
WSPR_CALL="W1AW/P"
WSPR_GRID="FN42"
RECEIVER_LIST=(
"portable_rx,192.168.43.100:8073" # Mobile hotspot IP
)
# Contest-focused bands
WSPR_SCHEDULE=(
"portable_rx,80m,WSPR,00:00,06:00"
"portable_rx,40m,WSPR,06:00,18:00"
"portable_rx,20m,WSPR,18:00,24:00"
)
# Minimal resource usage
ENABLE_NOISE_GRAPHS="no"
ENABLE_GRAPE="no"
LOG_LEVEL="1" # Reduced logging
CLEANUP_OLD_FILES="yes"
Remote Site Configuration
# Unattended remote site
WSPR_CALL="VK9ABC"
WSPR_GRID="QI22"
RECEIVER_LIST=(
"remote_kiwi,10.0.0.100:8073"
)
WSPR_SCHEDULE=(
"remote_kiwi,40m,WSPR,00:00,12:00"
"remote_kiwi,20m,WSPR,12:00,24:00"
)
# Remote monitoring and reliability
ENABLE_WATCHDOG="yes"
WATCHDOG_RESTART_DELAY="300" # 5 minutes
ENABLE_EMAIL_ALERTS="yes"
EMAIL_ALERT_ADDRESS="admin@example.com"
# Bandwidth conservation
UPLOAD_COMPRESSED_LOGS="yes"
REDUCE_UPLOAD_FREQUENCY="yes"
ENABLE_LOCAL_BACKUP="yes"
Performance Tuning Examples
High-Throughput Optimization
# Optimized for maximum throughput
WSPRDAEMON_TMP_DIR="/dev/shm/wsprdaemon"
MAX_PARALLEL_JOBS="$(nproc)"
NICE_LEVEL="-10" # Higher priority
IONICE_CLASS="1" # Real-time I/O scheduling
# Memory optimization
MALLOC_ARENA_MAX="2"
MALLOC_MMAP_THRESHOLD_="131072"
# Network optimization
TCP_WINDOW_SCALING="1"
TCP_CONGESTION_CONTROL="bbr"
Resource-Constrained Setup
# Raspberry Pi optimization
MAX_PARALLEL_JOBS="2"
NICE_LEVEL="10" # Lower priority
ENABLE_SWAP="yes"
SWAP_SIZE="2G"
# Reduced logging
LOG_LEVEL="1"
ROTATE_LOGS_SIZE="100K"
KEEP_LOG_DAYS="7"
# Conservative scheduling
DECODE_TIMEOUT="30" # Shorter timeout
MAX_DECODE_ATTEMPTS="2"
Integration Examples
Home Automation Integration
# Integration with home automation
ENABLE_MQTT="yes"
MQTT_BROKER="192.168.1.50"
MQTT_TOPIC_PREFIX="wsprdaemon"
# Status publishing
PUBLISH_STATUS_INTERVAL="300" # 5 minutes
PUBLISH_SPOT_COUNT="yes"
PUBLISH_NOISE_LEVELS="yes"
Monitoring System Integration
# Prometheus/Grafana integration
ENABLE_METRICS_EXPORT="yes"
METRICS_PORT="9090"
METRICS_PATH="/metrics"
# InfluxDB integration
ENABLE_INFLUXDB="yes"
INFLUXDB_URL="http://192.168.1.60:8086"
INFLUXDB_DATABASE="wsprdaemon"
These configurations provide starting points for various deployment scenarios. Adapt the parameters to match your specific hardware, network, and operational requirements.