This is the Ham Radio All-in-one-Cable. It is currently still being tested! Please read this README carefully before ordering anything.
The AIOC is a small adapter with a USB-C connector that enumerates itself as a sound-card (e.g. for APRS purposes), a virtual tty (“COM Port”) for programming and asserting the PTT (Push-To-Talk) as well as a CM108 compatible HID endpoint for CM108-style PTT (new in firmware version 1.2.0).
You can watch the videos of the Temporarily Offline and HAM RADIO DUDE YouTube channels below.
There is also a German 4-part article with instructions here.
kicad/k1-aioc/jlcpcb
)
BOM-k1-aioc.csv
CPL-k1-aioc.csv
This gives you 5 (or more) SMD assembled AIOC. The only thing left to do is soldering on the TRS connectors (see here). The total bill should be around 60$ US for 5 pieces plus tax and shipping from China.
Note that the following message from JLCPCB is okay and can be ignored.
The below parts won't be assembled due to data missing.
H1,H2 designators don't exist in the BOM file.
J2,D3,D4,R17 designators don't exist in the CPL file.
Note for people doing their own PCB production: I suggest using the LCSC part numbers in the BOM file as a guide on what to buy (especially regarding the MCU).
Note the current hardware version is 1.0, but there is a version 1.2 currently in the making here that will feature
This is the process I use for building. See photographs in images
folder.
PG-204P
and PG-203P
or compatible TRS connectors (2 solder lugs and a big tab for the sleeve connection). Adafruit products 1800
and 1798
are confirmed to work as well.Note It is unfortunately quite common that the TRS connectors have intermittent contact after soldering the ring or tip tabs. In this case, it helps to re-melt the solder joint, then using e.g. tweezer slightly assert some sideways force onto the contact and let the solder joint solidify while applying the pressure on the contact. This will keep some tension on the area where the tab internally connects to the barrel and thus give a solid (spring loaded) connection.
For building the firmware, clone the repository and initialize the submodules. Create an empty workspace with the STM32CubeIDE and import the project.
git clone <repositry url>
git submodule update --init
<project-root>/stm32
aioc-fw
project in the same folder without copyingThe following steps are required for initial programming of the AIOC:
dfu-util
to program the firmware binary from the GitHub Releases page like this:
dfu-util -a 0 -s 0x08000000 -D aioc-fw-x-y-z.bin
Note that a libusb
driver is required for this. On Windows there are additional steps required as shown here (DFuSe Utility and dfu-util). On other operating systems (e.g. Linux, MacOS), this just works ™ (provided libusb is installed on your system).
On Linux (and MacOS), your user either needs to have the permission to use libusb (plugdev
group) or you might need to use sudo
.
Once the AIOC has firmware loaded onto it, it can be re-programmed without the above BOOT sequence by following these steps.
Note This requires firmware version >= 1.2.0. For older firmwares, the initial programming sequence above is required for updating the firmware.
dfu-util
like this
dfu-util -d 1209:7388 -a 0 -s 0x08000000:leave -D aioc-fw-x-y-z.bin
This will reboot the AIOC into the bootloader automatically and perform the programming. After that, it automatically reboots the AIOC into the newly programmed firmware.
Note Should you find yourself with a bricked AIOC, use the initial programming sequence above
The serial interface of the AIOC enumerates as a regular COM (Windows) or ttyACM port (Linux) and can be used as such for programming the radio as well as PTT (Asserted on DTR=1
and RTS=0
).
Note before firmware version 1.2.0, PTT was asserted by DTR=1
(ignoring RTS) which caused problems with certain radios when using the serial port for programming the radio e.g. using CHIRP.
The soundcard interface of the AIOC gives access to the audio data channels. It has one mono microphone channel and one mono speaker channel and currently supports the following baudrates:
Since firmware version 1.2.0, a CM108 style PTT interface is available for public testing. This interface works in parallel to the COM-port PTT. Direwolf on Linux is confirmed working, please report any issues. Note that currently, Direwolf reports some warnings when using the CM108 PTT interface on the AIOC. While they are annoying, they are safe to ignore and require changes in the upstream direwolf sourcecode. See https://github.com/wb2osz/direwolf/issues/448 for more details.
[...]
ADEVICE plughw:<x>,0 # <- Linux
ADEVICE x 0 # <- Windows
ARATE 48000
[...]
PTT CM108 # <- Use the new CM108 compatible style PTT interface
PTT <port> DTR -RTS # <- Alternatively use an old school serial device for PTT
[...]
APRSdroid support has been added by AIOC by implementing support for the fixed 22050 Hz sample rate that APRSdroid requires. It is important to notice, that the exact sample rate can not be achieved by the hardware, due to the 8 MHz crystal. The actual sample rate used is 22052 Hz (which represents around 90 ppm of error). From my testing this does not seem to be a problem for APRS at all.
However, since APRSdroid does not have any PTT control, sending data is currently not possible using the AIOC except using the radio VOX function. See https://github.com/ge0rg/aprsdroid/issues/324. My previous experience is, that the Android kernel brings support for ttyACM devices (which is perfect for the AIOC) so implementing this feature for APRSdroid should theoretically be no problem.
Ideas such as implementing a digital-modes-spefic VOX-emulation to workaround this problem and let the AIOC activate the PTT automatically are currently being considered. Voice your opinion and ideas in the GitHub issues if this seems interesting to you.
CHIRP is a very popuplar open-source programming software that supports a very wide array of HT radios. You can use CHIRP just as you would like with a regular programming cable.
Download:
Upload:
Select “DTR only” for PTT Pin, so that the correct RTS/DTR sequence is generated for PTT
There are known issues with EMI, when using a handheld radio with a monopole (i.e. stock) antenna. In this case, the USB cable will (inadvertently) work as a tiger-tail (counterpoise) and thus, high RF currents go through the USB lines which cause issues with the USB connection. Some people have connected cables between the radio and the AIOC and put a ferrite core on those wires, which seems to reduce those issues. I am trying to find out, which of the wires between the radio and the AIOC produce the problem, so that we might add SMD ferrites on the AIOC in the future
I encourage you to check for Pre-Releases announcing upcoming features. Currently we are working on