TR

transmit-test

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.zip

Installs 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.
241 chars✓ has a “when” trigger
Advanced

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

You give it
Optional number of iterations for the test
You get back
PASS/FAIL status, RMS amplitude, SNR, and dominant frequency for each iteration, with saved waveform data for failures

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

SymptomLikely cause
RMS near zero on one/both channelsI/Q output not starting after PTT
Low SNR, correct frequencyDiscontinuity or glitch in waveform

Common options

FlagDefaultDescription
-n, --iterations100Number of PTT cycles
--settle-time0.5Seconds after PTT engage before capture
--acquire-time0.1Capture duration in seconds
--interval0.5Seconds between iterations
--min-snr20.0Minimum SNR (dB) to pass
--save-alloffSave waveform data for passing iterations too

If the test fails

  1. Report the summary line and any failure reasons to the user.
  2. If .npz files 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
    
  3. Do NOT attempt to fix transmit_test.py based 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

Analog Discovery 2 connected via USBDIO-0 wired to control PTTW1 wired to drive microphone inputScope Ch1/Ch2 wired to read I and Q quadrature outputs

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.

SkillInstallsUpdatedSafetyDifficulty
transmit-test (this skill)02moReviewAdvanced
dev26moReviewAdvanced
examples-auto-run23moReviewIntermediate
lora-manager-e2e16moReviewAdvanced

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.

28

examples-auto-run

openai

Run python examples in auto mode with logging, rerun helpers, and background control.

23

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.

13

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".

13

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.

12

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.

11

Search skills

Search the agent skills registry