Skip to content

Check the radio is healthy

The self-test checks the board in about 15 seconds, with no cable and nothing transmitted.

# run from: the repo root
./devkit selftest --ssh                                    # no cable, never transmits

It checks the rails, die temperatures, the digital interface eye and the receiver.

You should see: every line PASS, no failures, and HEALTHY. The end of a real run:

# run from: the repo root - the last lines of the command above, captured from the board
== Receiver (no cable) ==
  PASS   capture returns the requested length
           16384 of 16384 samples
  PASS   I and Q are both live
           10 distinct I values, 11 distinct Q - a stuck converter shows one or two
  PASS   DC offset within range
           -90.6 dBFS (I +0.1, Q -0.0 LSB)
  PASS   RX gain chain responds at the top of its range
           noise floor -106.4 -> -102.4 -> -102.0 -> -87.9 -> -79.4 dBFS at 0/20/40/60/70 dB gain; converter-limited below ~40 dB, +22.7 dB over the top 30 dB
  PASS   second receive channel alive
           RX2 floor -100.9 dBFS (its input is whatever is on the RX2 port)
  PASS   RX synthesiser tunes across the range
           8 of 8 points from 70 to 6000 MHz

== RF loopback ==
  info   skipped
           not requested. Cable TX1 to RX1 through a 20-30 dB pad and add --loopback to measure the analogue path.

25 passed, 0 warnings, 0 failed in 15 s
HEALTHY
(analogue front end untested - rerun with --loopback)
It hangs, or reports Calibration TIMEOUT?

Power the board from a mains charger: on laptop USB bus power alone, a board with a power amplifier browns out under sustained use (troubleshooting).

The loopback test transmits. Cable a transmit port to a receive port through a single 20 dB pad first, and affirm the channel (before you transmit):

# run from: the repo root
./devkit selftest --ssh --loopback --pad 20 --channel 0 \
    --sweep-points 60 --sweep-start 70e6 --sweep-stop 6e9 --json run1.json

What one board measured, and what the numbers mean: measured performance.