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.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add mattnigh/skills_collection --skill collection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Collection?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mattnigh-collection-a6117297)More formats (shields.io, HTML) on the badges page.
---
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:
```bash
PYTHONPATH=backend backend/.venv/bin/python .claude/skills/signal-monitor/get_signal_stats.py \
--channel ch1 \
--port 8087
```
Or use curl directly:
```bash
# 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:
```bash
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):
```bash
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:**
```json
{
"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:**
```json
{
"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 skill
- `get_signal_stats.py`: Helper script for fetching and displaying signal metrics
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!