You will need
- A Quansheng UV-K5 (the original model; the UV-K5 V3 and UV-K1 use a different chip and are not supported).
- A red AIOC cable and a USB-C lead.
- Chrome or Edge on a Windows, Mac, Linux or ChromeOS computer.
- An amateur radio licence: transmit only where yours allows.
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.
- Plug the AIOC into the radio and the computer, and switch the radio on normally (not in flash mode).
- 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
- Switch the radio off, with the AIOC plugged into the radio and the computer.
- 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.
- Press Connect. If the page asks for a port, pick the AIOC's ("All-In-One-Cable" or similar).
The radio restarts by itself and shows its welcome screen for a few seconds. This page then checks the new firmware for you. If nothing has happened after about 15 seconds, switch the radio off and on again (without PTT) or press the button. The menu's last item, Ver, shows the version too.
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
dialoutgroup 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).
- Close any program using the AIOC (soundmodem, terminal). The radio can stay connected.
- Press Switch to bootloader and pick the AIOC ("All-In-One-Cable"). It restarts as "STM32 BOOTLOADER".
- Press Connect to bootloader and pick "STM32 BOOTLOADER". The browser asks again because, to it, this is a new device.
- 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.
- Firmware
- Signal
- Battery
- Radio is
- Deviation
The radio transmits only from 136 to 174 MHz and from 400 to 470 MHz; the page will not save anything outside those. Low power is kinder to the radio on long packet transmissions.
Receive level
Play the tone (or listen to a real packet signal) and turn the radio's volume knob until the bar sits in the green band.
The tone is a steady 1 kHz in place of received audio. How its level compares with a real signal's deviation is not calibrated yet, so check against real packets when you can. The browser asks to use a microphone: that is the AIOC's receive audio, and it stays on this computer.
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 card | The AIOC ("All-In-One-Cable"), at 48000 Hz. The AIOC's equaliser only works at 48000 Hz. |
|---|---|
| PTT | CM108 (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 level | Near 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. |
| TXDELAY | Start 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 level | There 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
- Never transmit with the charger connected. On the bench it put severe noise on the signal and every packet failed.
- Serial port: 38400 baud only. Slower rates can look like a PTT press to the radio.
- Send nothing on the serial port while transmitting. Any byte ends the transmission.
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
- quansheng-packet: the radio firmware, its releases, keys, menu and how it works.
- aioc-packet: the AIOC firmware and its releases.
- Going back: flash the stock firmware (or another) the same way, and keep your radio backup from step 1. This page's flashers take any file in the "Use a file" boxes, including an AIOC backup.
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.