Claude Code Plugins

Community-maintained marketplace

Feedback

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.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

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 skill
  • get_signal_stats.py: Helper script for fetching and displaying signal metrics