Skip to content

Releases: M0LTE/aioc-packet

aioc-packet 1.4.1-packet.3

Choose a tag to compare

@github-actions github-actions released this 01 Oct 17:56

What's new in 1.4.1-packet.3

  • 9600 baud receive now works with the UV-K5. The radio's receive audio rolls off below about 128 Hz, and the phase of that roll-off stops 9600 baud packet decoding: on the bench, live on hardware, 0 of 60 frames decoded from the radio's audio. A new receive equaliser undoes it inside the AIOC, so it works with any modem: with it, 60 of 60 on pdn-soundmodem, its offline decoder and Direwolf alike, on the same bench. (bench/EQ.md also quotes 0 of 70 and 70 of 70: those are earlier recordings run through a model of the filter.) 1200 and 3600 baud are unchanged. It is on by default, runs while the host records at 48000 Hz, and adds 7.0 ms of delay to received audio. With another radio, switch it off with tools/aioc_eq.py rx off --store.
  • Audio is now handled in 1 ms blocks (by DMA) instead of one interrupt per sample. That leaves the AIOC plenty of headroom with both equalisers running while a modem plays and records at once (38% of the processor, measured), and adds 1 ms of delay each way.
  • USB reports are no longer sent from interrupts. Carrier detect and the IN1/IN2 inputs reported to the host from inside an interrupt, which could collide with the USB stack's own work (upstream behaviour). They are sent from the main loop now.
  • Status register fix: the PTT, virtual PTT and virtual COS states now show in register 0xC0, where their definitions put them. Upstream wrote them into 0xD0, over the recording mute bits and the play and record states. Only matters to software that reads those registers.
  • aioc_eq.py diag says why the AIOC last restarted (watchdog, fault, host request), with a fault record that survives the restart, and how busy the processor is. Useful if anything ever goes wrong.
  • Upgrading with -keep-settings: the receive equaliser comes on unless your settings were stored by a release that has it. The transmit equaliser behaves as before.

AIOC firmware v1.4.1 with a transmit and a receive equaliser added, for packet radio with the Quansheng UV-K5 and quansheng-packet. Flash quansheng-packet on the radio and aioc-packet-1.4.1-packet.3.bin on the AIOC, and you are ready for packet. See the README for flashing (in your browser, or with dfu-util) and setup.

The equaliser is on out of the box with the k5-red profile, measured on a red AIOC (rev 1.0 circuitry) with a UV-K5. It is untested on other boards and radios; rev 1.2 boards have different output circuitry. If you are not sure, use stock AIOC firmware, or switch the equaliser off with tools/aioc_eq.py off --store.

The receive equaliser is on out of the box too. It undoes the UV-K5's receive audio high-pass (about 128 Hz), which otherwise stops 9600 baud packet decoding, and adds 7.0 ms of delay to received audio. It runs only while the host records at 48000 Hz. With another radio, switch it off with tools/aioc_eq.py rx off --store.

Which file do I want?

File What it is
aioc-packet-1.4.1-packet.3.bin The one to use. Equalisers on. Resets the AIOC's stored settings to the defaults (PTT from the CM108 PTT and from serial DTR high, RTS low).
aioc-packet-1.4.1-packet.3-keep-settings.bin For dfu-util upgrades that keep your stored settings. The equaliser comes on if your settings were stored by stock firmware (or none are stored), and stays as you stored it if they were stored by aioc-packet. The receive equaliser comes on unless your settings were stored by a release that has it.
aioc-packet-1.4.1-packet.3.hex The recommended image as Intel HEX, for programmers that want it.
SHA256SUMS Checksums for the files above.

With dfu-util, back up first: dfu-util -d 1209:7388,0483:df11 -a 0 -s 0x08000000:131072 -U aioc-backup.bin. Then flash: dfu-util -d 1209:7388,0483:df11 -a 0 -s 0x08000000:leave -D aioc-packet-1.4.1-packet.3.bin.

The transmit equaliser only runs while the host plays audio at 48000 Hz. It lowers the level by 5.7 dB at 1 kHz; the quansheng-packet firmware's default deviation allows for that. With a stock AIOC (no equaliser) use deviation 0x762 instead.

Build

Built by GitHub Actions from this tag with:

arm-none-eabi-gcc (15:14.2.rel1-1) 14.2.1 20241119
binutils-arm-none-eabi 2.45.50.20251209-1ubuntu1+23build1
gcc-arm-none-eabi 15:14.2.rel1-1
libnewlib-arm-none-eabi 4.6.0.20260123-1
container ubuntu:26.04

SHA256SUMS

8ea3a7c5c4d303cb86e4bb046449687982c04e49eb83edda2c4c1fa2e9eb8eac  aioc-packet-1.4.1-packet.3-keep-settings.bin
7f464fb4e4c9ac6cba04b630edc637a6c1d34104cc4c6562b078e1c89914b653  aioc-packet-1.4.1-packet.3.bin
22f41620694daa6bcb733f9f914c6841243c13b408d388b9e53d88d8374a3ddc  aioc-packet-1.4.1-packet.3.hex

aioc-packet 1.4.1-packet.2

Choose a tag to compare

@github-actions github-actions released this 30 Sep 14:11

What's new in 1.4.1-packet.2

  • The equaliser is now on by default with the k5-red profile, so flashing aioc-packet-1.4.1-packet.2.bin is all the AIOC needs for packet with a UV-K5 running quansheng-packet. No tool to run.
  • Fewer files. The separate -k5-red image is gone: the main .bin is that image now. If you want the equaliser off, use stock AIOC firmware, or switch it off with tools/aioc_eq.py off --store.
  • Upgrading with -keep-settings keeps your stored settings. If they were stored by stock AIOC firmware, the equaliser now comes on; if you stored it off with this release or later, it stays off. Settings stored by 1.4.1-packet.1 with the equaliser on stay on; stored with it off, they come on, so run aioc_eq.py off --store afterwards if you want it off.
  • The README now leads with the two-step setup and the browser flasher.

AIOC firmware v1.4.1 with a transmit equaliser added, for packet radio with the Quansheng UV-K5 and quansheng-packet. Flash quansheng-packet on the radio and aioc-packet-1.4.1-packet.2.bin on the AIOC, and you are ready for packet. See the README for flashing (in your browser, or with dfu-util) and setup.

The equaliser is on out of the box with the k5-red profile, measured on a red AIOC (rev 1.0 circuitry) with a UV-K5. It is untested on other boards and radios; rev 1.2 boards have different output circuitry. If you are not sure, use stock AIOC firmware, or switch the equaliser off with tools/aioc_eq.py off --store.

Which file do I want?

File What it is
aioc-packet-1.4.1-packet.2.bin The one to use. Equaliser on. Resets the AIOC's stored settings to the defaults (PTT from the CM108 PTT and from serial DTR high, RTS low).
aioc-packet-1.4.1-packet.2-keep-settings.bin For dfu-util upgrades that keep your stored settings. The equaliser comes on if your settings were stored by stock firmware (or none are stored), and stays as you stored it if they were stored by aioc-packet.
aioc-packet-1.4.1-packet.2.hex The recommended image as Intel HEX, for programmers that want it.
SHA256SUMS Checksums for the files above.

With dfu-util, back up first: dfu-util -d 1209:7388,0483:df11 -a 0 -s 0x08000000:131072 -U aioc-backup.bin. Then flash: dfu-util -d 1209:7388,0483:df11 -a 0 -s 0x08000000:leave -D aioc-packet-1.4.1-packet.2.bin.

The equaliser only runs while the host plays audio at 48000 Hz. It lowers the level by 5.7 dB at 1 kHz; the quansheng-packet firmware's default deviation allows for that. With a stock AIOC (no equaliser) use deviation 0x762 instead.

Build

Built by GitHub Actions from this tag with:

arm-none-eabi-gcc (15:14.2.rel1-1) 14.2.1 20241119
binutils-arm-none-eabi 2.45.50.20251209-1ubuntu1+23build1
gcc-arm-none-eabi 15:14.2.rel1-1
libnewlib-arm-none-eabi 4.6.0.20260123-1
container ubuntu:26.04

SHA256SUMS

8dd3d8edfd014c2de8a6954514c9be2d8df34d707d78fa658c013a60c384ad4e  aioc-packet-1.4.1-packet.2-keep-settings.bin
12544183cb19d3da9deb49deaa3b82eda34af80bd70424edee40f1bb99d32f00  aioc-packet-1.4.1-packet.2.bin
154bfc17bc624aab823690c04fec435b316341caa1f0fcabe199be1764f1a3d7  aioc-packet-1.4.1-packet.2.hex

aioc-packet 1.4.1-packet.1

Choose a tag to compare

@github-actions github-actions released this 30 Sep 12:33

AIOC firmware v1.4.1 with a transmit equaliser added, for packet radio with the Quansheng UV-K5 and quansheng-packet. With the equaliser off (the default) the audio is bit-for-bit what stock v1.4.1 sends. See the README for flashing and setup.

Only the red AIOC (rev 1.0 circuitry) has been measured. The k5-red profile is for that board with a UV-K5; it is probably wrong for other boards, such as rev 1.2, which has different output circuitry.

Which file do I want?

File What it is
aioc-packet-1.4.1-packet.1-keep-settings.bin Most people. Leaves your stored AIOC settings (PTT mapping and so on) as they are. The equaliser starts off; switch it on with tools/aioc_eq.py apply k5-red --store.
aioc-packet-1.4.1-packet.1-k5-red.bin Red v1 AIOC with a UV-K5: the k5-red equaliser profile is on from the start, no tool needed. Resets stored settings to the defaults.
aioc-packet-1.4.1-packet.1.bin The full image, equaliser off. Resets stored settings to the defaults, like the upstream releases.
aioc-packet-1.4.1-packet.1.hex The full image as Intel HEX, for programmers that want it. Also resets stored settings.
SHA256SUMS Checksums for the files above.

Back up first: dfu-util -d 1209:7388,0483:df11 -a 0 -s 0x08000000:131072 -U aioc-backup.bin. Then flash, for example: dfu-util -d 1209:7388,0483:df11 -a 0 -s 0x08000000:leave -D aioc-packet-1.4.1-packet.1-keep-settings.bin.

The equaliser only runs while the host plays audio at 48000 Hz. It lowers the level by 5.7 dB at 1 kHz; the quansheng-packet firmware's default deviation allows for that. With a stock AIOC (no equaliser) use deviation 0x762 instead.

Build

Built by GitHub Actions from this tag with:

arm-none-eabi-gcc (15:14.2.rel1-1) 14.2.1 20241119
binutils-arm-none-eabi 2.45.50.20251209-1ubuntu1+23build1
gcc-arm-none-eabi 15:14.2.rel1-1
libnewlib-arm-none-eabi 4.6.0.20260123-1
container ubuntu:26.04

SHA256SUMS

d830d9b68f601f945994c1e0c9f9421256750592dc37849021d9476fb3855227  aioc-packet-1.4.1-packet.1-k5-red.bin
3f675580ca049e742d6c12e90430ce395011b66233f902b8bd7accd989812520  aioc-packet-1.4.1-packet.1-keep-settings.bin
39c1fa6d1ad0d2c95549c716ce93b9459541485cfc0348b27256da33035aa1ba  aioc-packet-1.4.1-packet.1.bin
7fe849ae1741a5d2f4f99a0c20fa0a73597d5ab49ea82f776fe323642670d055  aioc-packet-1.4.1-packet.1.hex