UV-K5 packet station setup

Turn a Quansheng UV-K5 and a red AIOC cable into a packet radio station, right here in your browser. Nothing to install, no pins to short, no command line.

Checking your browser...

You will need

Looking for the firmware files...

Each step checks what it needs before it changes anything, and you can do the steps again at any time.

1 Flash the radio

This puts the packet firmware on the radio. The first time you flash it over other firmware, it starts factory-fresh (144.800 MHz, low power, wide). Later updates keep your settings. The radio's factory calibration is always kept.

Back up your radio (recommended)

This saves the radio's memory to a file: its settings and its factory calibration, which is unique to this radio. The packet firmware never changes the calibration, but keep the file safe in case you go back to the stock firmware.

  1. Plug the AIOC into the radio and the computer, and switch the radio on normally (not in flash mode).
  2. Press Back up and pick the AIOC's serial port ("All-In-One-Cable" or similar). It takes a few seconds, then your browser saves the file.

Flash

  1. Switch the radio off, with the AIOC plugged into the radio and the computer.
  2. Hold PTT while you switch the radio on. The torch LED lights and the screen stays blank: this is flash mode. Let go of PTT.
  3. Press Connect. If the page asks for a port, pick the AIOC's ("All-In-One-Cable" or similar).
Use a firmware file from your computer

For a release you downloaded yourself (quansheng-packet-vX.Y.Z.bin). The page checks it looks like UV-K5 firmware.

If something goes wrong
  • The backup gets no answer: the radio must be switched on normally, not in flash mode. Push the plugs fully into the radio and press Back up again.
  • No answer from the radio when flashing: push the plugs fully into the radio (they are stiff), check the torch LED is on, and try Connect again. The radio sits in flash mode until you switch it off.
  • Could not open the port: close any other program using it (CHIRP, a soundmodem, Direwolf). On Linux, add yourself to the dialout group and log in again.
  • Stopped part way: nothing is lost. Put the radio back in flash mode and flash again; the bootloader cannot be overwritten.
  • A different bootloader version: the page only flashes radios with bootloader 2.00.06, the one this firmware is tested with, and refuses before sending anything.

2 Flash the AIOC

The packet AIOC firmware adds a transmit equaliser that makes a UV-K5's audio flat, which the radio firmware's default deviation expects. Flashing it resets the AIOC's settings to the defaults: PTT from the CM108 (HID) interface, and from the serial port with DTR high and RTS low. To go back to the stock AIOC firmware and settings, use the AIOC toolkit's flasher (the Flash Firmware tab).

Linux only, once per computer: the browser needs permission to open the AIOC, which shows up as two USB devices here (the AIOC itself, 1209:7388, and after the switch its bootloader, STM32 BOOTLOADER, 0483:df11). Run this in a terminal, then unplug and replug the AIOC:

sudo tee /etc/udev/rules.d/70-aioc.rules >/dev/null <<'RULES'
SUBSYSTEM=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="7388", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="7388", TAG+="uaccess"
SUBSYSTEM=="tty", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="7388", TAG+="uaccess"
RULES
sudo udevadm control --reload-rules && sudo udevadm trigger

The file name must start with a number below 73 (70 here): later rules are too late to grant access, so a rule named 99-something silently does nothing.

Windows only, once per computer: open Zadig, choose Options, List All Devices, pick AIOC DFU Runtime (Interface 6) (USB ID 1209 7388 06), check the driver on the right is WinUSB, and click Install Driver.

If the picker then shows no "STM32 BOOTLOADER" after the switch, do the same in Zadig for it.

Mac, Linux and ChromeOS need nothing extra (Linux: see the permissions note below).

  1. Close any program using the AIOC (soundmodem, terminal). The radio can stay connected.
  2. Press Switch to bootloader and pick the AIOC ("All-In-One-Cable"). It restarts as "STM32 BOOTLOADER".
  3. Press Connect to bootloader and pick "STM32 BOOTLOADER". The browser asks again because, to it, this is a new device.
  4. Save a backup if you like, then flash.
Use a file from your computer (or restore a backup)

A full AIOC image or a backup saved here. The page checks it looks like AIOC firmware.

Check the equaliser

Once the AIOC has restarted, this reads (never changes) its settings to confirm the equaliser is on.

3 Set up the radio

With the radio switched on normally, connect to set its frequency, power and channel width. Changes are saved in the radio.

Don't transmit while this page is connected. The radio's PTT and its serial input share one wire, so anything this page sends ends a transmission. Disconnect here before you start your soundmodem (only one program can use the serial port anyway).

4 Set up your TNC

Your soundmodem or TNC (pdn-soundmodem, Direwolf, QtSoundModem and so on) does the packet work. Point it at the AIOC and use these settings.

Sound cardThe AIOC ("All-In-One-Cable"), at 48000 Hz. The AIOC's equaliser only works at 48000 Hz.
PTTCM108 (the AIOC's HID interface, GPIO 3, the usual default). Or the serial port with DTR high and RTS low, the AIOC's other default.
Transmit levelNear full scale, just short of clipping. Then set the deviation in the radio (menu DevW, or DevN on narrow): the default gives about 2.8 kHz at full scale. Never the other way round: a quiet TNC with a high deviation setting sends more hiss.
TXDELAYStart at 50 ms. On the bench 30 ms was enough for AFSK 1200 and QPSK 3600, and FSK 9600 liked 50 ms. The station you talk to may need more.
Receive levelThere is no squelch: audio is always on. Set the radio's volume knob with the level meter in step 3: peaks in the green band, -18 to -9 dBFS.

Three rules

pdn-soundmodem

In /etc/pdn-soundmodem/soundmodem.json, name the AIOC's card and its CM108 PTT (find the hidraw node as its docs show, and add the udev rule):

{
  "device": "plughw:CARD=AllInOneCable,DEV=0",
  "modems": [ { "subChannel": 0, "mode": "afsk1200" } ],
  "ptt": { "type": "cm108", "device": "/dev/hidraw0" },
  "waterfall": { "port": 8107, "enableAudioControls": true }
}

It runs at 48000 Hz by default. Your node or APRS software sends TXDELAY over KISS. Set the receive level against the station page's level meter, and the transmit level with its TX gain slider. See the pdn-soundmodem docs.

Direwolf and other soundmodems

ADEVICE plughw:CARD=AllInOneCable,DEV=0
ARATE 48000
PTT CM108
TXDELAY 5

Direwolf's TXDELAY is in 10 ms units, so 5 is 50 ms. On Windows, pick the AIOC's sound card by name. Other soundmodems: the same ideas, 48000 Hz, CM108 PTT, 50 ms TXDELAY.

More

Report a problem: opens a GitHub issue filled in with your browser, what it supports, the firmware versions and this page's recent messages. You can edit it before you submit, and it needs a GitHub account.

This page runs entirely in your browser. It talks to your radio and AIOC through the browser's serial, USB and HID permissions, which you grant one device at a time; nothing is sent anywhere else. Use at your own risk, as with any firmware.