
This guide is intended to be a one-document how-to consolidating all of the information required to successfully build an AIOC AllStarLink Node

Table of Contents:

Introduction
One of the lease expensive ways to make an AllStarLink Node
Traditional "home" node would be a Raspberry Pi (3/4/5) with a Shari PiHJat SA818, or similar device attached. The PiHat containing the radio itself and the Raspberry Pi running the software needed to be an AllStarLink node. (Asterisk etc.) This is great if you want a permanent AllStarLink node that runs all the time, and you need your node to be online all the time.
Typical costs to get that going are going to be about $60 for the Raspberry Pi, and $75 for the PiHat at current Amazon prices. You will also need a power supply with enough current to run the Pi properly (2A minimum) which will run you another $10. You can save a few bucks on the PiHat on AliExpress. So bare minimum you're going to be $145 to get the basic node setup.
This "Cheaper" way is more suited for those that want to have an AllStarLink node available, but maybe not have it up 24/7. Although it can absolutely be running 24/7 if desired. This method of creating the AllStarLink node is cheaper and, in the end, actually has more options than the traditional route. It consists of a Raspberry Pi (3/4/5/Zero 2 W), most any HT with mic/speaker connectors and a little soundcard board called "All-In-One-Cable" or AIOC. Most would run this using a Raspberry Pi Zero 2 W vs. the need to run a full-size Pi with aligned USB ports etc. Current Amazon prices for a Pi Zero 2W are $24. The AIOC is $20 or $35 if you don't want to solder the jacks on yourself (it takes 5min, and its super basic soldering). And obviously you need a HT to be the radio part of this node, any cheap radio will work just fine as it only needs RX and TX for you in your home, low power etc. The Pi Zero 2 can run on less than 500mAh, so running from a basic USB power source or battery bank is nice. You could even tap into the HT battery with a step down to 5v for the Pi and run it all self-contained. So, $45 less the cost of a cheap HT, let's say you throw a UV-K5 on there which is a spectrally clean Chinese radio with tons of hackability and use, that will run you another $20. So, for under $70 with the USB-C cable needed for the AIOC and you have an AllStarLink node for half the price.
The only real drawbacks of the AIOC method are tying up one of the many HTs we all have because we have an addiction to buying shiny things. And the volume issue that everything AllStarLink is plagued with is a bit fiddlier when it's controlled by the HT volume knob, but that is also kind of a benefit that you don't have to tune any of it in the menus and software. The AIOC method is also Half-Duplex, but for a home/personal node, that's not an issue.
The big upsides are its flexibility. If you want to cover a large area it's just a matter of changing power and antennas on the HT/Radio connected to it. So for example, if you wanted to provide node access for a whole neighborhood, you would only need to put an external antenna on your HT to the roof, and bump the power up to 5 Watts and you would get great area coverage for all that needed to access it. With PiHats you are mostly limited to their built-in radio's output power and frequencies. Speaking of you could easily adapt this to running on HF, Digital or any other bands just based on the radio you connect to it. The AIOC is just a sound card interface and has the ability to be setup to hold ground to key, or hold open etc. to act like a microphone on a radio. It would be trivial to wire this up with a RJ-45 and plug directly into my FT-991A for example. Another benefit of the AIOC outside of AllStarLink is its original intended purpose which is an All In One Cable for programming etc. for K connector enabled radios. And even after setting up for AllStarLink it still works for that purpose.
Requirements
Skills & Tools:
- Desire to tinker / DiY
- Soldering Iron
- Basic soldering skills
- Computer (Windows, Mac, Linux)
- MicroSD to USB adapter to load Pi img
- Approved AllStarLink.org account
- WiFi Internet Access (*Can use Ethernet, but not covered in guide)

Parts Needed


Required:
- Most Any Basic HT with Kenwood "K" connector as TX/RX for the node
- Raspberry Pi Zero 2 W to run the AllStarLink Image
- 8gb or larger MicroSD card
- AIOC (All-In-One-Cable) as the Audio interface between radio and Pi
- Cable to connect USB Micro to USB-C
- Micro USB cable to power Raspberry Pi
Optional Recommended items to improve build:
- Short USB-C to Micro USB cable with Right Angle USB-C connector
- Snap on Ferrite Core Beads for all cables involved
- 5V 2A Micro USB Power Supply
- Battery Eliminator for your chosen radio if you plan on running 24/7
Where to get these items:
- Raspberry Pi Zero 2 W - Link
- 16gb+ MicroSD card - Link
- AIOC (All-In-One-Cable) - Link
Choose Unsoldered or Soldered version. The soldering is very basic, saves $15 - Basic Handheld Transceiver with "K" connector such as Baofeng, TYT, Quansheng, Tidradio etc...
- Short Right Angle USB-C to Micro USB Cable - Link
- Snap on Ferrite Core Beads - Link
- 5V 2A Micro USB Power Supply - Link
AllStarLink.org Node Setup
Go to www.allstarlink.org and click "Login/Sign Up" and follow the instructions on-page to complete your registration.
Registration may take 24 hours to be approved. Once verified, you will get an email and you can then proceed to setup your Server and Node on the AllStarLink website.
To setup the Server then Node you will first log into the AllStarLink website and click "Portal" then "Server Settings" Read and Proceed through setup. Fill out the required fields and any optional fields you want and Submit. You can always come back and edit the server later.
Once the server is setup, you will need to add a Node to that server. Click "Portal" then "Node Settings" Read and Continue. Follow directions on-screen and fill out required information. Again, you can come back and edit this as needed later.
Approval for each of these may take some time, plan accordingly
Soldering the AIOC
Prepare the AIOC board for soldering by test fitting the audio jacks onto the board. Work each leg to naturally sit in the right place, the bottom grounds as flat as possible against the pads for best contact.








When you feel the board is properly aligned its time to solder.
Solder each pad to the coresponding connector on the audio jack. Flow enough solder to make a good solid connection as this is both electrical and physical support for the card. =
*If you have it, a little flux on each pad before you flow solder on will help a lot.




Remove your completed AIOC from the soldering guide and test fit in your radio. It should snap in and seat fully.
*If you have it, use a multimeter to test continuity between each pad and its position on the audio jack.
Flash Basic Pi Image
We need to build a quick environment to flash the AIOC board with firmware and rename to be seen as a CM108 sound card for it to work with the AllStarLink software. You will need to download some software, links below.
Raspberry Pi Manager: Link - Pick the correct one for your computer and install it.
Install the Raspberry Pi Manager and open it up. Insert your MicroSD card into an adapter if needed and insert into your computer.
Click on the "Choose Device" and select "Raspberry Pi Zero 2 W".


Click on "Choose OS" and select "Raspberry Pi OS (Legacy 32bit".


Click on "Choose Storage" and select your MicroSD card. If you have more than 1 option available, make sure you are selecting the right card..


Click on "Next" and then "Edit Settings"


Enter in the hostname for your node. I used my callsign + asl + 2 "w0phpasl2" for example.
Enter Username and Password. I used my callsign again as the username and set a strong password.
Enter the SSID (name) of your WiFi and then the WiFi password needed to get on your network. None of this information is sent anymore, it is used to get the Raspberry Pi onto your network as it boots headless (no monitor or keyboard).
Set the Country for your Wifi and your locale information for the timezone. If you fail to do this, the time will be wrong on your node.
Click the "Services" tab at the top and make sure to "Enable SSH" and click "Save"


Click "Yes" to confirm using the custom settings, then "Yes" to confirm overwriting data on the displayed drive. Again, verify that the correct drive is displayed.


The writing process will begin and take a few minutes to complete and will then verify the data was written properly. It will notify you when done and you can then eject the MicroSD card and insert it into the Raspberry Pi.


Windows users only - Download Putty (SSH Client): Link - I recommend downloading the stand-alone executable so there is nothing to install.
Mac and Linux users can utilize the built in terminal clients that support SSH.
AIOC Firmware Flash
Assemble and Power up the Raspberry Pi Instructions:
- Stick the heatsink to the CPU on the Raspberry Pi if you haven't already
- Place a jumper wire from the first to last pin on the AIOC as pictured (red wire)
- Connect the AIOC to the USB-C end of your cable
- Connect the MicroUSB end of the cable to the MicroUSB port on the Raspberry pi
- Ensure the jumper wire is not shorting or touching anything else
- Connect your power cable to the other MicroUSB port on the Raspberry Pi
- Plug in your power cable to the power supply
The LED on the Raspberry Pi will light up and flash as it boots up, but the LED on the AIOC should not be on. This indicates it is in DFU mode and configured to be flashed for the first time. This is because of the jumper wire.
The Raspberry Pi might take 3-5 minutes to boot up for the first time as it is preparing the Operating System and MicroSD card. Do not interrupt this process or you will have to re-flash the MicroSD card with the OS again and start over.
Open Putty or other Terminal software and connect to the hostname you set in the Raspberry Pi Manager Settings + ".local". Example: w0phpasl2.local is the hostname of my node in this guide.
Click "Open" at the bottom. You may get a warning, click "Accept" to continue.
Enter your Username and Password as set in the Raspberry Pi Manager Settings.


At the shell prompt type "lsusb" and hit enter. You should see something similar to the screenshot. The top item is the AIOC adapter.
user@hostname:~$ lsusb
Now that you've verified the AIOC is being detected by the Raspberry Pi we need to download a script that will help us configure the environment and download the firmware as well. Run the code in the box below:
user@hostname:~$ wget www.g1lro.uk/runmeonce.sh


The script needs to be made executable, run the code below:
user@hostname:~$ chmod +x runmeonce.sh
And now lets run that script to install needed programs and download the firmware itself, run the code below:
user@hostname:~$ ./runmeonce.sh
This may take a few minutes to complete as it installs software on the Raspberry Pi to aid in the firmware flashing. You may be prompted to continue, if so, hit "Y" then enter to continue. You will be returned to the prompt when completed.


We are not ready to flash the firmware on the AIOC. Take a moment and make sure there are not LEDs lit on the AIOC and that the jumper is in place and USB cable is plugged in. Then run the code below:
user@hostname:~$ ./flash1.3.sh
Flashing of the firmware is done! Lets verify that the AIOC is properly showing up now. Run lsusb again.
user@hostname:~$ lsusb
You should see that it now reads: Generic All-In-One-Cable


We now need to rename the AIOC to present itself as a CM108 sound card. Run the code below:
user@hostname:~$ sudo python aioc.py
You should see the following output in screenshot.
Run lsusb one more time to verify that the ID and label have changed.
user@hostname:~$ lsusb


Flashing of the AIOC is completed, you can now power off the Raspberry Pi and remove the wire jumper from the AIOC card. Moving forward if you want to flash the AIOC for any reason you do not need to jump the pins. If for some reason the AIOC "bricks" you can repat these steps to recover the card and get firmware back on it.
Flash AllStarLink Image
Now we are ready to get on with actually getting AllStarLink sofware on the Raspberry Pi so it can be configured and your node online! Much of this will be a near repeat of what we did with the Basic Raspberry Pi OS image, this time we will be using a custom flash file, but all other steps are the same.
Download the latest firmware from AllStarLink here: Link - download the larger .xz file.
Open Raspberry Pi Manager. Insert your MicroSD card into an adapter if needed and insert into your computer.
Click on the "Choose Device" and select "Raspberry Pi Zero 2 W".


Click on "Choose OS" and scroll down to the bottom of the list and select "Use Custom".


Navigate to where you downloaded the AllStarLink Raspberry Pi image, select it and click "Open"
Click on "Choose Storage" and select your MicroSD card. If you have more than 1 option available, make sure you are selecting the right card..


Click on "Next" and then "Edit Settings"


The information should still be populated from the previous image, but verify everything is correct. I have had problems with the WiFi Password in the past, I always re-enter it to be sure.
Enter in the hostname for your node. I used my callsign + asl + 2 "w0phpasl2" for example.
Enter Username and Password. I used my callsign again as the username and set a strong password.
Enter the SSID (name) of your WiFi and then the WiFi password needed to get on your network. None of this information is sent anymore, it is used to get the Raspberry Pi onto your network as it boots headless (no monitor or keyboard).
Set the Country for your Wifi and your locale information for the timezone. If you fail to do this, the time will be wrong on your node.
Click the "Services" tab at the top and make sure to "Enable SSH" and click "Save"


Click "Yes" to confirm using the custom settings, then "Yes" to confirm overwriting data on the displayed drive. Again, verify that the correct drive is displayed.


The writing process will begin and take a few minutes to complete and will then verify the data was written properly. It will notify you when done and you can then eject the MicroSD card and insert it into the Raspberry Pi.


Re-assemble and Power up the Raspberry Pi Instructions:
- Connect the AIOC to the USB-C end of your cable
- Connect the MicroUSB end of the cable to the MicroUSB port on the Raspberry pi
- Connect your power cable to the other MicroUSB port on the Raspberry Pi
- Plug in your power cable to the power supply
The Raspberry Pi should power up, LED blinking. The LED on the AIOC should also now light up. It will take a few minutes again for this first boot of the new image.
Configure Your Node
In your browser you will want to enter the hostname of your Raspberry Pi + ".local" Example: w0phpasl2.local - you will most likely get a brwoser warning "Your connection is not private" due to the AllStarLink softwre not providing an SSL certificate, you can safely ignore this.


You should be greeted with the landing page for your AllStarLink Node. If for some reason your computer was unable to resolve the hostname, you may want to try restarting the Raspberry Pi by removing power, waiting 10s, then powering it back on and giving it abou a minute to fully boot back up.
Click on the "Web Admin Portal" (Cockpit) and log in using your credentials set during the Raspberry Pi Image process.
Next we need to enable Administrative Access.
Click on "Turn on Administrative access" to enable.


Click "Terminal" on the bottom left and you will be presented a web SSH session.
Lets start running commands and get this node online!
user@hostname:~$ sudo asl-menu


Using your arrow keys to navigate, select "Node Settings" then "AllStar Node Setup Menu"


In another tab in your browser open up the AllStarLink.org website, Log In, click "Portal" and "Nodes" to display your node(s). You will need some information from this screen to fill in the settings on your setup.
Enter in your Node Number.


To get your node's password you can either hover over the blank password field in the table shown, or click into your node and retrive it that way.
Enter the password.
Select "None of the above" for the node configuration.


Using the arrow keys navigate up to the top option "0" and hit enter.
Select Half Duplex.


Restart Asterisk when prompted.


Almost there, you just need to change a few settings in SimpleUSB to control the AIOC.
Run the simpleusb-tune-menu with the code below:
user@hostname:~$ sudo simple-usb-tune-menu
When the menu comes up, hit "g" to "Toggle PL Filter" to "disabled"


Next hit "j" and then in the sub-menu select "1" to Change CTCSS From "usbinvert" to "no"
Type "p" to display current configuration. Verify your settings match the screenshot with the exception of your node# and the settings we changed are still correct.


Now type "w" to write the settings to the configuration file. Then "0" to exit the menu.
Reboot the node by going to "Overview" and "Restart" in the upper right. Wait about 30s and you can reconnect. Refresh your node page on AllStarLink.org and verify that your node now shows "Registered" as "Yes", your node is now online!


You now need to configure "Allmon3" so you can manage your connections via the web interface.
Set/Change the "admin" user password for Allmon3 by running the code below:
user@hostname:~$ sudo allmon3-passwd admin
Enter a new password (it will not be echoed to your screen), hit enter and verify by re-typing it.
Restart the allmon3 service to pick up the password changes by using the code below:
user@hostname:~$ sudo service allmon3 restart


Navigate back to your browser that has the landing page open and click on "Node Links" in the center, this will open the Allmon3 interface.
Click Login and enter your credentials for the Allmon3 admin user.




Testing Your Node
Setup your "Node" HT to work with the radio you will use to TX/RX with the node.
- Node HT
- Choose a quiet frequency that is availble (no local repeaters etc.)
- Setup a RX CTCSS tone to filter incoming signals
- Set the squelch fairly high
- Turn off any Roger Beeps and other tones
- Turn the power to its lowest setting. Raspberry Pi's do not like RFI
- TX/RX Radio
- Tune to the same frequency as Node HT
- Set a TX CTCSS tone to match Node HT's RX tone
- Turn your power to low, you don't need 10 watts to go 30ft
- Test that both radios can talk to the other by keying one at a time. You should hear the HT on the TX/RX radio and the other way around.
- You can now plug the AIOC into your Node HT!
Verify your status is green and Transmit is idle.
Click the Link icon in the top right.


Set the Command to "Connect", enter node number 55553 (audio test node) then click "Execute" to connect.


The node should show up in the table and if anyone else is talking on that node at the time you will see the Transmit status turn red and you should hear that audio through your TX/RX radio now.
When the node is quiet, you can transmit with your callsign and "testing audio" and a few seconds after you unkey you should hear an audio report back as well as your own transmission repeated back.
Spend a few minutes and adjust the volumne knob on the Node HT as well as the Mic Gain on the Node HT until you get a satisfactory reponse from the testing node.


To disconnect, you can either click the small X next to the node number in the table, or click the link icon again and select "Disconnect" and enter the node number then "Execute" to disconnect immediately.


Additional Information
Power Consumption:
Idle, TX, RX runs between 190mA and 230mA
During heavy CPU load such as updates, power consumption can go up to 350mA while the CPU is being taxed.
A cheap 10,000mA battery bank from Amazon for $9 can run the node for over 36 hours.
Customization:
There are tons of settings in the /etc/asterisk/rpt.conf file that you can use to add macros, scheduling, and much more to your node. These things are a bit beyond this beginners guide, but I may make another article covering some of the basics at a later time.
I setup Macros for frequently connected nodes such as the audio test parrot and my local repeaters. It makes connecting using DTMF quicker as you only have to type *5X to connect vs. *3XXXXX.
Start-Up Macro is handy to have your node ident and say the time each time it starts up which is handy to know the Pi has booted and is ready for use.
Scheduling is possible with cron style entries to allow your node to automatically execute macros at specified times and days. Example would be to connect your node to a Trivia Net at 6:55am and then disconnect that node at 8:15am on certain days.