
signal-monitor
by TobiasWooldridge
SDR sub-module for WaveCap
SKILL.md
name: signal-monitor description: Get real-time signal quality metrics (RSSI, SNR, S-meter) from WaveCap-SDR channels. Use when checking signal strength, monitoring reception quality, or debugging weak signals.
Signal Monitor for WaveCap-SDR
This skill provides real-time signal quality metrics from SDR channels, including RSSI, SNR, signal power, and S-meter readings.
When to Use This Skill
Use this skill when:
- Checking signal strength of a tuned station
- Monitoring reception quality over time
- Debugging weak or noisy signals
- Comparing signal quality between antennas
- Verifying that a channel is receiving properly
- Getting S-meter readings (ham radio style)
Available Metrics
| Metric | Description | Range |
|---|---|---|
| RSSI (dB) | Received Signal Strength Indicator | -100 to 0 dB |
| SNR (dB) | Signal-to-Noise Ratio | 0 to 60+ dB |
| Signal Power (dB) | Audio output power level | -80 to 0 dB |
| S-Units | Ham radio S-meter reading | S0 to S9+60 |
| Squelch State | Whether squelch is open/closed | true/false |
Usage Instructions
Step 1: Get Channel Metrics
Use the helper script to get signal metrics:
PYTHONPATH=backend backend/.venv/bin/python .claude/skills/signal-monitor/get_signal_stats.py \
--channel ch1 \
--port 8087
Or use curl directly:
# Get extended metrics for a channel
curl http://127.0.0.1:8087/api/v1/channels/ch1/metrics/extended | jq
# Example output:
{
"channelId": "ch1",
"rssiDb": -45.2,
"snrDb": 28.5,
"signalPowerDb": -22.1,
"sUnits": "S8",
"squelchOpen": true,
"streamSubscribers": 1,
"streamDropsPerSec": 0.0,
"captureState": "running",
"timestamp": 1700000000.0
}
Step 2: Monitor Signal Over Time
Monitor signal quality continuously:
PYTHONPATH=backend backend/.venv/bin/python .claude/skills/signal-monitor/get_signal_stats.py \
--channel ch1 \
--monitor \
--interval 1.0 \
--duration 60
Step 3: Get Spectrum Snapshot
Get a single FFT spectrum snapshot (without WebSocket):
curl http://127.0.0.1:8087/api/v1/captures/c1/spectrum/snapshot | jq '.centerHz, .sampleRate'
Interpreting S-Meter Readings
| S-Units | Signal Quality | Typical Use |
|---|---|---|
| S0-S2 | Very weak | Marginal reception |
| S3-S5 | Weak | Usable with noise |
| S6-S7 | Moderate | Good reception |
| S8-S9 | Strong | Excellent reception |
| S9+10 | Very strong | Local/powerful station |
| S9+20+ | Extremely strong | Possible overload |
API Reference
GET /channels/{chan_id}/metrics/extended
Returns extended signal metrics including S-meter reading.
Response:
{
"channelId": "ch1",
"rssiDb": -45.2,
"snrDb": 28.5,
"signalPowerDb": -22.1,
"sUnits": "S8",
"squelchOpen": true,
"streamSubscribers": 1,
"streamDropsPerSec": 0.0,
"captureState": "running",
"timestamp": 1700000000.0
}
GET /captures/{cid}/spectrum/snapshot
Returns single FFT spectrum snapshot.
Response:
{
"power": [-80.1, -78.5, ...],
"freqs": [90000000, 90000122, ...],
"centerHz": 90300000,
"sampleRate": 250000,
"timestamp": 1700000000.0
}
GET /channels/{chan_id}/metrics/history?seconds=60
Returns time-series of metrics (currently single point).
Common Issues
Issue: No Signal / Low RSSI
Symptoms: RSSI below -90 dB, S0-S1 readings Solutions:
- Check antenna connection
- Verify frequency is correct
- Increase gain in capture settings
- Check for interference
Issue: Low SNR Despite Good RSSI
Symptoms: RSSI is good but SNR is poor (<10 dB) Solutions:
- Reduce gain (may be overloading)
- Check for nearby interference
- Try different antenna
- Enable noise blanker
Issue: Squelch Always Closed
Symptoms: squelchOpen is always false Solutions:
- Lower squelch threshold (more negative dB)
- Check if signal is actually present
- Verify channel offset is correct
Files in This Skill
SKILL.md: This file - instructions for using the skillget_signal_stats.py: Helper script for fetching and displaying signal metrics
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon