AIOC (All-In-One-Cable) Setup Guide for AllStarLink

Last Updated: 2026

This guide covers the configuration of the AIOC for use with AllStarLink nodes.

There are two methods to configure this device. We recommend Option 1 (USBRadio) for most users, as it maintains the device's native identity and allows for easier parameter adjustments.

Phase 1: Install the AIOC-Util

Before configuring the specific mode, you must install the necessary tools to communicate with the AIOC. This utility allows you to adjust settings like the Virtual COS (VCOS) timer.

  1. Install System Dependencies: Run the following command on your node (SSH or Terminal) to install Python, Git, and DFU utilities: sudo apt install git python3-venv dfu-util

  2. Download and Set Up the Utility: You can download the script directly using wget. We will also create a virtual environment to keep your system clean.
    # Create a directory and enter it mkdir aioc-util && cd aioc-util # Download the script wget https://raw.githubusercontent.com/hrafnkelle/aioc-util/main/aioc-util.py # Create and activate a Python virtual environment python3 -m venv vent source vent/bin/activate # Install the required library pip install hid

Note: Whenever you need to use this tool in the future, you must navigate to this folder (cd aioc-util) and run source vent/bin/activate first.

Option 1: USBRadio Mode (Recommended)

This is the preferred setup. It allows you to use the AIOC "as-is" without flashing the USB ID, while still allowing you to tweak internal parameters using the utility you just installed.

Step A: Configure AIOC Parameters

While in USBRadio mode, you can still use the aioc-util script to adjust the Virtual COS (VCOS) timer or other settings.

Example: Set VCOS to 1500ms With your virtual environment activated:

python aioc-util.py --vcos-timctrl 1500 --store

Step B: Configure AllStarLink

  1. Identify the Device: Ensure the AIOC is identified in your asterisk configuration. Edit /etc/asterisk/res_usbradio.conf and ensure the proper USB ID is set (default is 1209:7388).
  2. Run asl-menu Configuration:
    • Device Type: usbradio (Menu path: 2 > A1 > N4 > I2)
    • Duplex Type: 1 (Menu path: 2 > A1 > N5)
  3. Update usbradio.conf Settings: Edit the channel configuration file (Menu path: 6 > H). The following settings are recommended (tested on Puxing PX-888):
    • rxboost = 0
    • rxsqhyst = 500
    • carrierfrom = usbinvert
    • ctcssfrom = no
    • rxdemod = speaker
    • txprelim = no
    • invertptt = no

Option 2: CM108 Emulation Mode

This mode sets the AIOC to emulate a standard CM108 sound chip to use the SimpleUSB channel driver.

⚠️ Warning: Once switched to CM108 emulation, the aioc-util script will no longer work to change settings. To revert or change settings later, you will have to re-flash the firmware (see Troubleshooting & Firmware below).

Run the Configuration Command: With the virtual environment activated, run the following to set the USB ID and VCOS timer simultaneously:

python aioc-util.py --set-usb 0x0d8c 0x000c --vcos-timctrl 1500 --store --reboot

Expected Output: The script will confirm the new USBID (000c0d8c), store the settings, and reboot the device.


Troubleshooting & Firmware Updates

If you need to update the AIOC firmware or recover a device (for example, if you are stuck in CM108 mode and need to reset parameters), follow these steps.

1. Download Firmware

Download the latest firmware binary (.bin file) from the official AIOC GitHub Releases page:

2. Re-Flash the Device

Run the dfu-util command below. (Note: Replace aioc-fw-1.4.1.bin with the actual filename you downloaded).

sudo dfu-util -a 0 -s 0x08000000:leave -D aioc-fw-1.4.1.bin
  • If the first attempt fails: The device usually enters DFU mode automatically after a failed attempt. Simply run the command a second time.

  • Success: Look for "File downloaded successfully" and a progress bar reaching 100%.