1. Home
  2. Docs
  3. AIOB Documentation
  4. Configuration
  5. Configuring the AIOB Using the Python Config Tool

Configuring the AIOB Using the Python Config Tool

Modern versions of the AIOC and AIOB have one firmware version with different configuration settings settable through a python script.

aioc-util Usage

Note: AIOC-UTIL is not made by, maintained by, or reviewed by Big Time Radio or Lucas W1BTR. These instructions are copied from his Github.

aioc-util.py is a command-line tool for configuring the AIOC device, viewing its internal registers and change them, including setting the PTT source.

This utility is written by Hrafnkell Eiríksson TF3HR based on code from G1LRO and from Simon Küppers/skuep.

The code is only tested against AIOC firmware v1.3. Firmware v1.2 does not seem to work. Please upgrade your AIOC if needed.

Requirements

  • Python 3
  • hid Python package to access the USB HID interface
  • A hid shared library for your platform, see below.

Installation

Clone this repository (or download it zipped)

git clone https://github.com/hrafnkelle/aioc-util.git

Create and activate a virtual environment in the cloned repository, then install dependencies. A virtual environment is reccomended since the distribution provided HID python module seems to be an older version (at least on Debian/Raspian OS). That way the hid module can be pip installed without affecting the whole system. If you have installed python3-hid or python3-hidapi with apt you may need to uninstall that.<>

Linux

cd aioc-util
python3 -m venv venv
source venv/bin/activate
pip install hid

A udev rule is provided to allow non-root access to the AIOC device. Install it by copying the file to /etc/udev/rules.d/, then reload rules and replug the device:

sudo cp udev/rules.d/91-aioc.rules /etc/udev/rules.d/
sudo udevadm control --reload
sudo udevadm trigger

Unplug and replug your AIOC USB device after installing the rule.

After this, you can run aioc-util.py without sudo.

The libusb/hidapi project also has a udev rule that could be used.

If needed, install libhidapi-hidraw0 and libhidapi-libusb

sudo apt install libhidapi-hidraw0 libhidapi-libusb

Windows

cd aioc-util
python3 -m venv venv
.\venv\Scripts\activate
pip install hid

On Windows, you need to provide the hidapi.dll library. Download the Windows release build of the hidapi project (from the Releases page), locate hidapi.dll, and copy it into this project’s root directory (alongside aioc-util.py).

Usage

List the available command line arguments

./aioc-util.py --help

Example: Setting VPTT/VCOS control registers

./aioc-util.py --vptt-lvlctrl 0x80 --vptt-timctrl 10 --vcos-lvlctrl 0xff --vcos-timctrl 20 --store

Example: Key radio

To key a radio set ptt1 state to on, to unkey use off

./aioc-util.py --set-ptt1-state on

Example: Accessing an AIOC with custom USB VID/PID

./aioc-util.py --open-usb 0x1234 0x5678 --dump

On Windows you may need to put python in front of the script name

python aioc-util.py --dump

Finding the VID/PID

If you need to find the USB Vendor ID (VID) and Product ID (PID) for your device, you can use the following commands:

  • Linux: use lsusb to list USB devices and look for your device’s VID:PID pair.
  • Windows (PowerShell):Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -like “USB\VID*” } | Select-Object Name, InstanceId

Application examples

You may need to set the AIOC register values to defaults before using the suggestions below.

./aioc-util.py --defaults --store

APRSDroid

To use with APRSDroid, the virtual PTT should be enabled on the AIOC. This way you don’t have to rely on the VOX function of your radio to key the radio for transmission.

./aioc-util.py --ptt1 VPTT --store

AllStarLink3

It is simple to set up an AllStarLink node with the AIOC.

Make sure you have a udev rule to allow access to the HID functionality of the AIOC like described above. Set the VCOS_TIMCTRL register to 1500

./aioc-util.py --vcos-tmctrl 1500 --store

ASL3 supports the AIOC on its default USB VID PID values. You can edit the file /etc/asterisk/res_usbradio.conf and uncomment the line with the AIOC USB VID and PID values. This way you don’t have to change the VID and PID so it looks like a CM108 interface. If you would rather change the VID and PID values then you can do that with

./aioc-util.py --set-usb 0x0d8c 0x000c --store

How can we help?