Verifies radio transmitter signal integrity and PTT switching via Analog Discovery 2.
Install
mkdir -p .claude/skills/transmit-test && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14501" && unzip -o skill.zip -d .claude/skills/transmit-test && rm skill.zipInstalls to .claude/skills/transmit-test
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Run the PTT signal integrity test on the radio transmitter hardware. Use when the user asks to test the transmitter, run a PTT test, check I/Q outputs, or verify transmit signal quality. Requires an Analog Discovery 2 connected to the radio.Key capabilities
- →Verify radio transmitter I/Q outputs are clean sinusoids
- →Detect intermittent failures in PTT activation
- →Report RMS amplitude of each channel
- →Report SNR in dB for signal quality
- →Report dominant frequency of the signal
- →Save raw waveform data and plots for failed iterations
How it works
The skill executes a Python script that controls PTT, drives microphone input, and reads I/Q outputs from an Analog Discovery 2 to verify signal integrity across PTT cycles.
Inputs & outputs
When to use transmit-test
- →Testing radio transmitter
- →Running PTT signal integrity tests
- →Checking I/Q output quality
About this skill
Transmit PTT Signal Integrity Test
Run transmit_test.py to verify the radio transmitter's I/Q outputs are clean sinusoids across repeated PTT cycles. This detects intermittent failures where PTT activation produces discontinuities, zeroed channels, or distorted waveforms.
Hardware requirements
An Analog Discovery 2 must be connected via USB with the following wiring:
- DIO-0 controls PTT (LOW = transmit, HIGH = off)
- W1 drives the microphone input (500 Hz, 100 mV sine)
- Scope Ch1/Ch2 read the I and Q quadrature outputs
Running the test
Run from the transmit directory:
cd /home/oliver/Sync/Ham/T41/Software/Phoenix/code/test/transmit
python3 transmit_test.py -n $iterations
If no iteration count is provided, default to 5 for a quick smoke test. For a full test run, use -n 100.
Interpreting results
The program exits with code 0 if all iterations pass, or code 1 if any fail. Each iteration reports:
- PASS/FAIL status
- RMS amplitude of each channel (expect 50-200 mV; below 5 mV = dead channel)
- SNR in dB (expect >40 dB; below 20 dB = distorted)
- Dominant frequency (expect 500 Hz)
Failed iterations automatically save raw waveform data to failures/ as .npz files along with a png plot.
Typical failure modes
| Symptom | Likely cause |
|---|---|
| RMS near zero on one/both channels | I/Q output not starting after PTT |
| Low SNR, correct frequency | Discontinuity or glitch in waveform |
Common options
| Flag | Default | Description |
|---|---|---|
-n, --iterations | 100 | Number of PTT cycles |
--settle-time | 0.5 | Seconds after PTT engage before capture |
--acquire-time | 0.1 | Capture duration in seconds |
--interval | 0.5 | Seconds between iterations |
--min-snr | 20.0 | Minimum SNR (dB) to pass |
--save-all | off | Save waveform data for passing iterations too |
If the test fails
- Report the summary line and any failure reasons to the user.
- If
.npzfiles were saved, you can load and inspect them:import numpy as np data = np.load("failures/fail_iter0001_TIMESTAMP.npz") ch1, ch2 = data["ch1"], data["ch2"] # I and Q waveform arrays sr = float(data["sample_rate"]) # 100000 Hz - Do NOT attempt to fix
transmit_test.pybased on test failures -- the failures indicate a hardware/firmware problem in the radio, not a bug in the test program.
If the AD2 is not connected
The program will print Failed to open device and exit with code 1. This is expected if no AD2 is plugged in. Do not retry -- inform the user that the hardware is not available.
When not to use it
- →When an Analog Discovery 2 is not connected to the radio
- →When the task is not to test the transmitter, run a PTT test, check I/Q outputs, or verify transmit signal quality
- →When the program prints 'Failed to open device' due to AD2 not being plugged in
Prerequisites
Limitations
- →The skill requires an Analog Discovery 2 hardware device
- →The skill is specific to testing radio transmitter I/Q outputs
- →The skill does not attempt to fix `transmit_test.py` based on test failures
How it compares
This skill automates the PTT signal integrity test using specific hardware and software, providing detailed metrics and failure analysis, which is more precise and repeatable than manual testing.
Compared to similar skills
transmit-test side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| transmit-test (this skill) | 0 | 2mo | Review | Advanced |
| dev | 2 | 6mo | Review | Advanced |
| examples-auto-run | 2 | 3mo | Review | Intermediate |
| lora-manager-e2e | 1 | 6mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
dev
atopile
LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, consume test-report.json/html artifacts, and discover/debug ConfigFlags.
examples-auto-run
openai
Run python examples in auto mode with logging, rerun helpers, and background control.
lora-manager-e2e
willmiao
End-to-end testing and validation for LoRa Manager features. Use when performing automated E2E validation of LoRa Manager standalone mode, including starting/restarting the server, using Chrome DevTools MCP to interact with the web UI at http://127.0.0.1:8188/loras, and verifying frontend-to-backend functionality. Covers workflow validation, UI interaction testing, and integration testing between the standalone Python backend and the browser frontend.
migrate
alirezarezvani
Migrate from Cypress or Selenium to Playwright. Use when user mentions "cypress", "selenium", "migrate tests", "convert tests", "switch to playwright", "move from cypress", or "replace selenium".
mobile-use-setup
minitap-ai
Interactive setup wizard for Minitap mobile-use SDK. USE WHEN user wants to set up mobile automation, configure mobile-use SDK, connect iOS or Android devices, or create a new mobile testing project.
create-environments
PrimeIntellect-ai
Create or migrate verifiers environments for the Prime Lab ecosystem. Use when asked to build a new environment from scratch, port an eval or benchmark from papers or other libraries, start from an environment on the Hub, or convert existing tasks into a package that exposes load_environment and installs cleanly with prime env install.