How To - Build a High-Quality Radio-less AllStar Node for Under $100
by David Gleason, NR9V

Introduction

AllStarLink Nodes can be built in many ways with various tradeoffs between cost, features, ease of construction, portability, and audio quality. Most nodes now available support only half-duplex operation and often have low audio quality. Various radio-less node designs have been documented online but they seem to all be very basic and outdated.

After months of research and testing starting in late 2022 I developed the AllScan ANF101 which is the highest-quality and most cost-effective full-duplex radio-based node on the market. I then took the same approach to radio-less nodes. My resulting ANR design delivers outstanding audio quality and dynamics while being low-cost, simple to build, easy to customize, with attractive enclosure options that perfectly complement MiniPC and RPi form factors.

AllScan ANR100 Radio-Less Node on Left (w/Dell Wyse 3040), ANR100-Mini on Right (w/RPi4)



Radio-less Node Benefits

Radioless nodes are ideal for use cases where WiFi or wired ethernet are available but the additional range provided by an HT or mobile radio is not needed, such as for a desk or table at your home QTH / office / shack, for vehicles or RVs where you have a wifi hotspot, and for 2nd offices, hotels, etc. Radio-less nodes are the simplest, easiest and most cost-effective way to get on AllStar with your own node, and are more portable than even the smallest radio-based node and radio needed to access it.

For a node that's sitting a few feet away on a desk it makes more sense to use a radioless node than to have multiple radios on transmitting 100's of milliWatts of RF. Or for the best of both worlds you can set up both a radio and radio-less node on one ASL server. MiniPC's and RPi's can easily accommodate multiple interfaces.

Radio-less nodes are more energy efficient, using generally less than a few Watts, vs. a node with radios plus other radio(s) to access it is easily 3 times the energy consumption. This efficiency means that a radio-less node can be left on and connected to your favorite repeater/hub 24x7 with no noticeable effect on your electric bill and no need to recharge batteries or leave radios powered on.

Radio-less nodes also support Full-Duplex by default. This is a powerful feature, as described in the Full-Duplex Communication Benefits section below, and makes a properly designed radio-less node much nicer to use than any half-duplex node.

Table of Contents

Overview

Quick Demo Video


AllScan ANR100 with Alinco EMS-57 DTMF Mic and External Speaker

AllScan ANR100-MGC - Back View

With optional Line Out Jack, 0/10/20dB Mic Boost Switch and Mic Gain Adjust Knob

Wiring Diagram

To enlarge images Right-Click → Open Image in New Tab

Wiring Diagram with Optional Mic Gain Control (MGC) Options

Supports low output dynamic mics and easy adjustment of mic levels. These additional controls are not needed with Alinco EMS-57, Kenwood MC-60A, MC-80, MC-85 or similar mics, but are needed for dynamic mics that do not have a preamp or other mics that have unusually low or high output levels. The added 10Ω resistor and 2,200μF capacitor ensure the lowest possible noise, particularly with older preamplified mics that do not have good supply voltage filtering or mics that combine audio and 5V on one line. See the Products Page for more details.

Completed Node Interface Module Interior View

Completed Module Interior View with Optional Mic Gain Controls

Background

My other How-To Guide on building a full-duplex node using 2 low-cost HTs covers my background in engineering, ham radio, and AllStar, and many other details on the history and features of AllStar. I recommend reviewing that document for a broader context on the use and design of both radio-less nodes and nodes with radios. Each has its advantages, and you can also build a node that does both ie. that has radio(s) as well as speaker and mic jack connections. This Guide enables a full-featured node to be built that has excellent audio quality and yet costs less than any other node on the market.

History

AllStarLink (ASL) has been used for controlling repeater systems for 15+ years, supporting a high-precision multiplexing receiver system that precisely time-aligns audio feeds from any number of receivers, It's based on Asterisk, a powerful open-source PBX system that supports numerous features including full-duplex communications, conference calling, autopatch, integration with VOIP systems and equipment, voicemail, voice detection, support for a wide range of codecs, and extensive control and monitoring capabilities via web and IP interfaces, DTMF commands, scripting and macros.

An AllStar node is part of a comprehensive system of GigaBytes of software and millions of lines of code that make up Linux, Asterisk, ASL, Apache, PHP, SQLite, and 1,000's of other utilities and programs that come with Linux. Linux, Asterisk and ASL are 100% open-source and free, meaning that not only is it free but that anyone can look at the source code, see how it works, modify it or improve it.

Node Components

There are several main pieces to an AllStar node:

  1. A computing device (ASL "server"). This can be a Raspberry Pi, any Intel/AMD PC or Mini/Thin-Client PC, or a "cloud" Linux server such as a linode.com VM. In the case of a cloud server an RTCM interface can be used which connects to a router and then to your radio (but which cost almost $300). RPi's and many Mini PCs use only a few Watts of power.
  2. A radio/audio/GPIO interface. This usually consists of a small PC Board with a C-Media CM108 or CM119 IC that interfaces to a USB port and provides an audio input, audio output(s), and GPIO lines for PTT, COS, and status LED(s). This is usually referred to as a URI (USB Radio Interface), or in the case of a radio-less node a UCI (USB Communications Interface).
  3. A radio-based node would then need an integrated radio as well as some other radio to then talk to the node with, but for a radio-less node only a speaker and mic are needed, or an IAX phone/PC app can be used in which case the node needs no audio interface, mic or speaker and could consist solely of a Mini PC or cloud VM running ASL.

Smartphone/PC IAX apps such as DVSwitch Mobile (DVSM), iaxRpt and DroidStar can easily connect to a node. The DVSM 2.x Android app supports IAX client, Web-Transceiver, and Node modes. DVSM in Node Mode is a true AllStar node with its own ASL node number but with some major limitations. VOIP phones (such as any model supported by Hamshack Hotline) can be convenient and usually have a speakerphone feature, and SIP phone apps such as Linphone can also be used. Because VOIP phones don't have a PTT button however it is necessary to dial *99 to key up and then # to unkey, which is not nearly as convenient as a real radio or PTT mic. See this excellent article on how to set up VOIP phones/apps on AllStar nodes. This also covers using ASL's autopatch feature, enabling calls to VOIP phones to be made from a radio. This does require port 5060 to be open in the node's iptables (firewall) configuration and forwarded to the node in your router settings.

Laptop and Netbook nodes are perfect both for traveling and for home use. For about the same price as a Mini PC or half the price of an RPi you get an LCD screen, keyboard, trackpad, more memory, and the latest Linux with 1,000's of free programs. Laptop Node Demo Video / Netbook Node Demo Video

AllScan ANR100-NB Netbook Node


I prefer laptops over netbooks as they have a larger screen, nicer keyboard, more I/O connections and more memory. Installing Debian on any PC or laptop is a great move – Linux and open-source software only get better over time due to being based on open standards and long-term stability. The Linux KDE Desktop Environment is very similar to Windows and very easy-to-use.

Audio Requirements

A radio-less node should have equal or better overall audio performance and features as even the best radio-based nodes. FM radios provide well-controlled audio filtering and limiting to ensure that transmitted RF is not overdeviated, which results in improved consistency of audio levels, maximizes average Signal-To-Noise Ratio (SNR) and better utilizes the available dynamic range of typical RF communications channels.

In nearly all pro audio, recording and broadcast applications some processing is done on voice signals which can include filtering out low and high frequency noise, clicks and pops, compressing the signal to give higher and more consistent average power levels, and limiting to prevent overly loud peaks and distortion.

Mic Audio Processing

Consistent audio levels and dynamics are important on any communication network, otherwise users have to make frequent volume adjustments to properly hear everyone. This is an issue on AllStar and I recommend that any time you hear someone who is significantly quieter or louder than average – let them know! Audio levels are easy to adjust on AllStar and there is no good reason anyone should have improper levels that require everyone else to ride their volume controls or put up with distorted audio.

With the feature-packed highly-optimized AllScan UCI120 USB Communications Interface now available at a low cost, spending hours to build a radio-less node interface may be more hassle than it's worth but can be a fun electronics project. Building a radio-less node is fairly simple if you're experienced with computers, Linux, and AllStar. With a few optimizations a radio-less node can sound as good or better than any radio, providing a full, clear sound typical of high-quality FM repeaters. This can be achieved in several ways:

Mic audio should have a slight amount of compression (eg. a 2:1 ratio) or similar AGC (Auto Gain Control) functionality along with hard-limiting to ensure no ADC clipping and a similar sound to high quality radio-based nodes. An AGC is essentially a compressor/limiter but with a longer release time and may include a gain hold time to provide more stable gain and thus more transparent audio. In this application the objective is to move the input range of a typical mic output (which can have 60+dB of dynamic range but with low average power and loud plosives, clicks and pops) to a higher average power level with hard-limiting of any overly loud peaks, ensuring the signal will come through clearly – even in loud environments that may have only 20dB of dynamic range.

This article on Repeater-Builder.com talks about dynamics processing in more detail, proposing an Auto-Gain Control (AGC) controlled by a side-chain signal low-passed between 800~1500 Hz to provide smooth subtle leveling while not significantly affecting the higher frequency content and intelligibility. This could be useful not only for radioless nodes but for any node.

The microphone is the first step in the signal chain of any node and if the audio levels, frequency response and linearity of the mic are bad, there is only so much that can be done to fix it. The audio may still sound thin, muffled or tinny, and lack detail and presence. In having tested many studio mics, desk mics, and hand mics I have heard only a few hand mics (Icom HM-154T, Motorola HMN10xx and TDN83xx series) that can sound as good as a high quality desk mic (such as the Icom SM-10, SM-50, or Kenwood MC-60A), higher-end dynamic mic (such as a Sennheiser e935), or condenser mic (such as a Rode NT3), but proper dynamics processing can make even average hand mics sound almost as good. As with any radio or audio system, the node will only sound as good as the microphone, thus an important consideration is finding a mic with excellent audio quality at a reasonable price.

AllStar nodes should support the use of a DTMF mic or keypad for control functions, which implies that a radioless node should either use a DTMF mic or integrate a DTMF keypad. DTMF commands can also be executed in AllScan, Allmon or other apps, thus a DTMF mic is not essential. Getting a mic that already has a DTMF keypad is simpler but limits the options to those that output actual DTMF audio rather than serial port data. I recommend a genuine Alinco EMS-57 as it's one of the few widely available models that meets these requirements and works with a 5V supply. This is a basic hand mic however and greatly benefits from AGC processing and filtering. Whatever you do be sure to avoid the $20 knockoff EMS-57 mics on amazon/ebay/etc. I have tested them and they sound terrible, with extremely thin, weak audio, and very high handling noise. Those who know the value of good quality audio probably already have a good mic or two that could be shared with a radio-less node using a mic/radio switch such as an MFJ-1263. However this would make the node less portable and could increase costs thus the node design should support mics such as the EMS-57 with the best possible audio quality.

To ensure a radio-less node's audio levels and quality will be on par with even the best radio-based nodes an Analog Devices MAX9814 Mic Preamp & AGC module should be added to provide low-noise mic preamplification, limiting, and a small amount of compression/AGC with attack and release times optimized for voice signals. These modules are available for under $3, which is quite a reasonable price for the resulting huge improvement in Rx audio quality.


The MAX9814 works very well with no audible noise and needs no adjustments other than setting the Gain and AR ratios to the minimum values (tie Gain to 5V, AR to Ground). It sounds clear and hi-fi, providing a nice smoothing of levels and good limiting without overcompression. These modules have a 220nF timing capacitor resulting in an AGC attack time of 0.5mS and a release time of 265mS. The fast attack time provides hard-limiting while the longer release time plus 30ms hold time provides smooth detailed audio that makes optimal use of the dynamic range of the CM1xx ADC.

Without an audio processing module there would be nothing to provide limiting of the mic signal, and because hand mics have low output levels with a lot of handling noise, clicks and plosives, the result would be poor sound quality with low average power levels. This is often an issue to some extent even with radio-based nodes when low-cost radios are used that do not have adjustment options for mic gain or dynamics. Some of these functions could be provided by modifying the ASL code but this would increase CPU use and not take full advantage of the dynamic range of the ADC or prevent clipping. Thus the better solution is to optimize the audio at the analog source.

I have also tested MAX4466 mic preamp and SSM2167 dynamics processing modules. The SSM2167's noise gate threshold is too high and is not adjustable which has a very audible effect where quieter parts of the mic audio are cut out (gated). This could be a desirable feature in some cases but with no way to turn it off it's not ideal for general use. Thus significant gain is required in front of the 2167 eg. with a MAX4466 preamp to keep the signal above the noise gate threshold, but this results in significant low frequency noise (-20 to -30 dBFS) even with sharp high-pass filtering. The output of the SSM2167 is then clear and loud and sounds good, with average levels well above its noise floor, but is significantly overcompressed due its compression region being only 31dB wide after which it goes into hard-limiting. I also tested the SSM2166 IC (larger version of the 2167 with more adjustment settings and lower noise gate threshold), which requires more components and does not appear to be available on any low-cost module, and it soon became clear why it is nowhere near as popular as the MAX9814 – the SSM2166 has a lot of noise and audible artifacts, regardless of the settings.

With the MAX9814 the audio sounds transparent, smooth and even, not at all overcompressed or distorted, pops/clicks/plosives/handling noise well limited, with clear full-sounding audio whether talking 2" or 6" away from the mic. Note however that talking any closer than 2" from a mic is generally bad mic technique. Your audio will be much smoother with a few inches of space between you and the mic and with the mic at an angle so that bursts of air (plosives) are not aimed directly at it. You should set your mic gain so that you can talk in a normal voice a few inches from the mic and have plenty of gain. There is a tendency with mics to assume you need to talk louder and closer to the mic than you really should and it takes some careful listening to yourself (using parrot mode / echo mode) and practice to get a more polished sound, but once you get there the ham community will definitely appreciate it.

These are well designed modules with ferrite beads for RFI rejection, low power consumption, and very low noise. For more details review the MAX9814 IC datasheet and other info online. With these modules being ≤ $5 there is no excuse to not use one in a radio-less node. These have an electret mic and bias resistor on the module which should both be removed. The mic audio line then connects to the Mic In pad location shown above.

Speaker Audio Processing

To ensure a radio-less node sounds as good as a radio, limiting and bandpass filtering can also be done on the Tx audio. Signals from AllStar can vary significantly due to some users having improper gain settings. Most radios will not make an overly quiet signal louder but they will limit overly loud signals. To give similar levels and dynamics to a radio, processing can be done on speaker audio to compress or hard limit signals above ~-10dBFS peak or ~-20dBFS RMS. In the ASL to UCI direction AGC and limiting is easier to do because the signal is in the digital domain where processing can be done in Asterisk or ASL. Thus the UCI only needs to provide basic filtering to prevent excessive low and high frequencies from going to the speaker.

Audio coming from the ASL network is referred to as Tx audio, as it's what would be transmitted over a local radio or repeater that is connected to a radio-based node, however as the UCI functions like a radio – in the sense that you plug in a mic and speaker, when you key up the mic you're transmitting, and you then listen to received signals – the "RX" LED in fact indicates that the UCI is receiving audio from the node ie. USB host.

Asterisk provides an AGC function that can be enabled in extensions.conf and this could be helpful if you find that nodes, repeaters, or nets you listen to have a lot of volume variation between different users.

Below is an AllScan ANR200 built with a Kenwood SP-70 communications speaker, with a Symetrix 528E Voice Processor in the Insert I/O loop and 421m AGC Leveler connected to the Line Out. The 528E is used for mic audio dynamics processing and powering a Rode NT3 Condenser Mic w/Inrad DMS-1 PTT Mic Base. The 421m processes the node output audio ensuring smooth even levels from AllStar, bringing up overly quiet stations and reducing the levels on overly loud stations. Most AllStar users have good audio levels in which case the 421m makes no difference but it is helpful for those occasional users who are too quiet or too loud. The 421m does add some quiet white noise to the audio output which is not an issue in radio / repeater nodes that already do bandpass filtering, or in radio-less nodes can be removed with a ~3KHz low-pass filter or with a speaker or mixer that has built-in filters. Between the features of the UCI120 and what can be done in Asterisk and ASL however there is really no need for external processors, with possible exception of more advanced mic processing tailored to your specific voice and mic(s).


Parts List and Component Options

The main components I recommend are as follows, with purchase links and approximate prices:

Total: $60

The above items are available from many sources and can be purchased from the links above or from any other reputable source.

The PAM8302A modules are an Adafruit design and have been copied by many other sellers but unfortunately most of the copies do not work well and have significant distortion on the audio. Therefore only the module from Adafruit or from a reputable US seller with excellent reviews should be used.

I would recommend the Adafruit MAX9814 module also but have had no issues with MAX9814 modules from other sellers. This module is available on ebay from Chinese sellers for as little as 99¢ shipped, vs. $7.95 from Adafruit, which is quite a price difference.

Dell Wyse 3040 MiniPCs have been used in 100's of AllStar nodes and work great due to their wide availability, low cost, simple set up and reliable operation. Many have built-in WiFi cards and dual antennas, though personally I prefer wired Ethernet whenever possible for maximum performance and less potential RFI. Many 3040's run on 5V 3A, but more recent "12V" versions will run on 5-16V. Even a used 3-5+ year old 3040 should run very well for many years. The design is well thought-out with excellent thermal management and no fan to pull dust inside. If getting one that's more than a few years old the small backup battery should be checked and replaced if below 3V. CR2032 batteries are available with solder tabs for as little as $1 ea. The case pops open with no tools needed and you can then also confirm if it has built-in WiFi. Many 3040's have the internal WiFi card and antennas even though many ebay sellers don't mention it.

If you would rather not deal with used/low-spec MiniPCs, I highly recommend Beelink T5 MiniPCs which are much more powerful than 3040's but are only $89 brand new on amazon or even less on aliexpress.

USB Radio Interface

A number of URIs are available that use high-quality C-Media USB Audio I/O Controller ICs. CM108 USB Sound "fobs" are less than $5 but require some modifications and fine soldering. Fobs can be noisier in high-RFI environments, which is generally not an issue with a radio-less node, but could be an issue if you happen to also be transmitting 1.5KW on HF, or just a few Watts on VHF/UHF within ~5-10' of the node.

Various URI's are available but are a bit more expensive, at which point it might make more sense to get a UCI120, which due to their high-level of integration provide many more features. If you did want to go with a URI that is inexpensive but a big step up from a CM108 fob, AllScan URI100-PCB's are a great option. These are only $29 and provide large through-hole solder pads for all I/Os which makes it very easy to connect everything.

CM108 USB interfaces work well but require some modifications, including soldering onto a ~0.01" (0.25mm) wide IC pin. If you have a microscope and experience with soldering surface-mount parts this is easy to do but otherwise could be challenging.

Total: $7

The CM108 fobs' stereo line out audio is excellent (Hi-Fi/CD quality) but the (unmodified) mic input has significant digital noise in the intended use with an electret mic. Removing bias resistor R6 solves that issue and the audio input then sounds great with over 60dB SNR. In about 10 minutes I can remove R6, solder on wires for COS (Mic PTT) and the audio, 5VDC and Ground lines.

The CM1xx-series ~45dB mixer gain range supports the mic input and audio output very well with no trim pots or resistors needed. ASL sets these gain settings in the IC based on the rxmixerset, txmixaset and txmixbset config settings. This provides a wide adjustment range while retaining the full dynamic range of the 16-bit converters. I have the txmixbset gain set at the default (500) in the simpleusb_tune settings. Set rxboost=0 and rxmixerset to around 50 (see simpleusb.conf settings below).

There is a similar fob made by Syba that uses a CM119A IC. These go for $10, which is still very cheap. The Syba fob has a small plastic case and a metal housing on the USB connector which is nice and is a good alternative but may not have any significant advantage over a CM108AH fob. Only C-Media or Syba fobs should be used. Other fobs are not as well made or encapsulate the IC in a resin material preventing access to the pins.

See the CM108 Sound Fob Wiring section below for further details.

To simplify wiring and improve performance an AllScan UCI100-PCB can be used which with shipping are only $35. These also provide comprehensive status LEDs showing PTT, COS, ADC Clip and USB host status.

Audio interfaces should have lower noise if inside a grounded metal enclosure with external wiring kept as short as possible. RFI is much less likely to be an issue with a radio-less node, but as this will likely be used in ham shacks that have various radios in use, ideally the same RFI precautions should be taken as for a node with radios. See my other How-To Guides for details.

Additional Required Components

You may already have a microphone around the shack with an 8-pin round plug wired for Kenwood or Alinco radios, which should work fine with this node, and you probably already have an external 3 - 8 Ω speaker with 1/8" (3.5mm) plug. This design uses 5V USB power from the MiniPC, which may not be enough voltage for some mics that are designed for 8V, though most such mics I have tested work fine on 5V. The Alinco EMS-57 is a good mic that is designed for 5V and has a built-in DTMF keypad and encoder. Some other mics with keypads don't actually have a DTMF encoder and instead send serial data out expecting a radio to then generate the DTMF tones. Be sure to carefully review the schematic and pinout of any mic before using with a UCI.

A variety of other mics and mic jacks can also be used. Icom HM-154T DTMF mics sound good but have an RJ45 connector and require 8V for the DTMF encoder. If a mic does not work on 5V a small DC-DC converter such as a B6287 module can be added to supply 8V or any other needed voltage. I have built nodes with Icom mic wiring instead of Kenwood/Alinco, using a B6287 step-up converter module to provide 8VDC, and they work perfectly. Battery powered mics would also be a good option such as a Rode NT3 with an Inrad DMS-1 desk mic stand.

AllScan is an authorized Alinco reseller and I have EMS-57's in stock for immediate shipment. The genuine EMS-57 sound literally 10 times better than the $20 counterfeit EMS-57s available on amazon/ebay/etc. The genuine Alinco has a much fuller sound, better presence, much lower handling noise, and a longer more pliable coiled cord. Good mics are a great long-term investment and everyone on AllStar will greatly appreciate the difference in audio quality.

Kenwood MC-60A, MC-80 and MC-85 desk mics are great options that sound better than pretty much all hand mics, work fine on 5V (no batteries needed), have built-in preamps, and have similar output audio levels as an EMS-57. Many Icom desk mics can also work great but require an adapter to go to a Kenwood/Alinco mic pinout. The Icom SM-10, SM-30 and SM-50 are all great sounding mics. An MFJ-1263 Mic/Radio Switch Box is a great way to connect multiple brands of mics to various radios or UCIs.

Any 3 - 8 Ω speaker should be fine but for good audio quality I would recommend a small mobile speaker from Icom, Kenwood or Yaesu such as an SP-35 or MLS-100 which are around $30. Almost every speaker I've tried that costs under $20 has sounded terrible, whereas old Heathkit, Motorola, Kenwood and many other vintage speakers often sound excellent and can be easily found for ~$25 - $50.

A small PAM8302A amp module has plenty of volume for most environments, but for louder environments eg. driving on the highway with the windows open you may need something a bit louder. The PAM8302A module will output 2.5W @ 4Ω and 1.5W @ 8Ω or there are many other small audio amp modules available with power ratings into the 50+Watt range but you would then need to power the amp module from a separate power supply, as URIs or miniPC USB ports will only be able to supply about 5V 1-2A.

Another option would be to integrate a small FM radio transmitter module into the node which would allow any FM stereo receiver, boombox, or car stereo to be used as the speaker. This would make the node even more portable because a separate speaker would not be needed. Many stereos also have an 1/8" Aux input that could be easily used, which would provide even better quality than a wireless FM stereo link. To support that just add an 1/8" TRS Line Out jack to the node in addition to the speaker jack output. The Line Out jack Tip and Ring terminals should connect directly to the Tx Audio lines on the URI.

Some basic wiring (such as 24 ga. Hookup wire) is then needed to connect all the above together.

The above can be purchased directly from numerous sources or I can provide any of the above parts in a Kit. If you just need a few things it may be more cost-effective to get them directly from Amazon/Ebay/Mouser/DigiKey/etc., but if you need a number of the above items it may be more cost-effective to go with a kit. Amazon and ebay have pretty much everything you need at good prices and traditional electronics suppliers like Mouser and DigiKey are really only needed for more specialized components or where quality is important, for example I get filter capacitors and semiconductors from Mouser or similar US distributors to be sure I'm getting genuine high-quality parts meeting all stated specs. Pricing is usually lower when buying in larger quantities, thus I buy most parts in Qtys of 10 or more and can pass on the savings.

Optional Components

To add the Mic Gain Control (MGC) options you'll need an additional 2,200μF capacitor, 300Ω resistor (or as low as 150Ω is fine and will give a larger attenuation range), and the following:

Total: $5

Enclosure Options

Die-cast or extruded aluminum enclosures are essentially indestructible and have a nice "industrial" look. ABS, polycarbonate, or other plastic enclosures are also very durable, cost less and are a little easier to cut and drill. RFI can be more likely to occur with non-metallic enclosures but that's less likely to be an issue with radio-less nodes. Steel can work also but is harder to cut and drill.

Hammond 1593WTBU translucent blue enclosures are a great size (4.1" x 4.3" x 1.4") that's just slightly wider than Dell 3040s, and make it easy to see the status LEDs without needing to mount LEDs on the exterior. Clear visibility of the PC and radio interface is important. Sometimes things happen on AllStar such as disconnects or timeouts and the status LEDs make it easier to see what's going on. Or the Hammond 1593BBTBU (3.75" x 3" x 1.2") can be used for a smaller form factor similar to RPi's. The smaller version is slightly more difficult to assemble however due to the limited internal space, with little extra room for other options such as a Mic Gain Control switch and knob.

Integrating the node components into an existing speaker enclosure is a great option. There are 100's of speakers available on ebay from vintage 1950's Heathkit or Motorola mobile speakers to many classic Kenwood, Icom, Ten-Tec, Hallicrafters, Drake, etc. models from the past 70 years. Pairing a high-quality speaker such as a Kenwood SP-70 or SP-120 with a classic desk mic such as an MC-60A, MC-80 or MC-85 can result in a node that looks great and sounds amazing.


For this build I added a bi-color status LED, mic jack, volume control, and A/B switch supporting the original functionality of an external input from any rig. This also has mic gain controls and a preamp/AGC bypass switch on the back to allow the node to be used with an external dynamics processor.

For portable applications a USB power pack can be used (eg. link). Dell Wyse 3040 and many MiniPCs can be powered from a USB power source (in the case of a 3040 with a USB to 4.0x1.7mm power adapter cable). Demo Video

Setup Steps

Dell Wyse 3040 MiniPC

Installing ASL3 on a Dell 3040, other Mini PC, or Laptop/Netbook is not hard if you're experienced in building/maintaining PCs. The 3040's have a UEFI-only BIOS that needs a boot file in a specific place. Making a UEFI USB drive is simple: Download the amd64 ISO from debian.org/CD/netinst/, then format the USB drive as FAT32 and unzip the ISO into the root folder (7-Zip is a good program for unzipping ISOs). Do not try to make the USB drive "legacy bootable".

There have been rare cases reported where people were not able to properly copy ISO files to a USB drive but were finally able to get it working using "Rufus", a free program that can create UEFI USBs. It's probably not going to do anything that 7-Zip wouldn't but maybe it has fewer options and thus is more resistant to user error.

To initially set up a 3040 requires a USB keyboard and a monitor/TV with a DisplayPort cable. Plug in the keyboard and DisplayPort cable, and plug in the Debian 12 USB drive. Power up the 3040 and when you see the Dell logo hit F2 to enter BIOS setup. Some 3040's may have a BIOS password which defaults to "Fireport". This can be cleared in the Security section or if some other password was set can be cleared with a button on the PCB. Recommended BIOS settings:

System Configuration
→ UEFI Network Stack: Disabled
→ Integrated NIC: Enabled (NOT w/PXE)
→ USB Configuration: Enable all checkboxes
Secure Boot: Disabled
Power Management
→ AC Recovery: Last Power State
→ USB Wake Support: Disabled
→ Wake on LAN: Disabled
POST Behavior
→ Keyboard Errors: Disabled
→ Fastboot: Thorough
Virtualization Support: Disabled

Nothing should need to be changed on the boot order page or any other pages. Once you have confirmed the BIOS settings, save and exit, and then when you see the Dell logo hit F12 for the boot menu, then select the USB drive. The Debian installer menu will then appear.

The Debian net install image is intended to boot on a removable device and install Debian on an internal storage device (or on a separate removable USB drive / SD Card). This differs from the RPi "appliance" image which goes on an SD Card, into the RPi, and the install is done. The Debian install takes about 20 minutes to complete. The default options should be fine but if there is anything you are not sure about, do a web search from another computer and try to clarify any questions you have.

The ASL2 image did not have the boot file where 3040's need it to be (/boot/efi/...), requiring an extra step to copy the boot file, but fortunately the Debian 12 installer provides this option.

I recommend the "high-contrast", "advanced" install option as it seems to better explain each step and not skip any potentially important details.

Installing on other Thin Client models or on a Netbook or Laptop should be even easier. (Note however that Chromebooks should be avoided, as ChromeOS is a closed and encumbered platform.)

A Desktop Environment such as MATE is a nice addition if you have a monitor, TV, or remote desktop app. This will greatly simplify wifi and wired network management but does require a 16GB 3040 version to fit everything.

Beelink T5 or GMKtek NucBox5 MiniPCs

Installing Debian on a Beelink T5, GMKtek NucBox, or other similar recent Mini PC model is simple. First, make a UEFI USB drive by downloading the amd64 ISO from debian.org/CD/netinst/, then format the USB drive as FAT32 and unzip the ISO into the root folder (7-Zip is a good program for unzipping ISOs). Do not try to make the USB drive "legacy bootable".

Plug in a USB keyboard and a monitor/TV with HDMI cable into the MiniPC. Many Mini PCs include Windows 11. If you want to keep Windows you will want to let it boot and update itself (which can take over an hour) and then use the Windows Disk Management tool to shrink the C drive by 50%, ie. for a Mini PC with 128GB eMMC/SSD, shrink it by 65,535KB, thereby leaving 64GB of unallocated space, or for a mini PC with 64GB eMMC shrink the C drive by 32,767KB. When setting up Win11 I recommend during the setup specifying that the PC will be used for "work". There is no need to create a Microsoft account. In reality it is unlikely you'd ever have any need for Windows on a node MiniPC, and with the 1+ hours of time it takes a new Win 11 install to update itself, keeping Windows is probably not worth the time and hassle.

I recommend disabling all unnecessary options in the MiniPC BIOS, including Secure Boot, TPM module, Wake on LAN, Virtualization, Network/PXE boot, and legacy device support. Then power off the MiniPC, plug in the Debian 12 USB drive, press the power button and you will see the Debian installer menu. The Debian install takes about 10 minutes to complete. The default options should be fine but if there is anything you are not sure about do a web search from another computer to clarify any questions. I recommend the "high-contrast", "advanced" install option.

ASL Configuration

ASL3 was released in July 2024 and is a major release that brings Debian and Asterisk up to the latest versions and makes other significant improvements. Asl-menu can be used to make some of the initial node configuration settings but the .conf files still need to be manually reviewed and edited as described below.

Tests I ran on a 3040 doing a full-duplex parrot test showed that the simpleusb driver and usbradio driver in various modes use only about 10% total CPU, thus there should be plenty of headroom on the 3040 or similar mini PCs.

My testing of the usbradio driver in carrierfrom=usbinvert mode (using the iaxRpt PC app recording directly (software loopback) into Audacity) showed that usbradio bandpasses and limits the outgoing IAX audio, which results in a significant reduction in overall dynamic range and loudness. Thus I recommend the simpleusb driver as this transmits the mic audio over IAX exactly as it came in from the ADC. Usbradio's limiting and bandpass filtering could be useful if they were more flexible but there seems to be no option for makeup gain thus all audio is limited to ~-10dBFS.

rpt.conf Recommended Settings

rxchannel = SimpleUSB/[node#] ; Comment out all other rxchannel lines*
duplex = 3         ; Full-duplex, do not repeat Rx audio to Tx audio
hangtime = 100
althangtime = 200
;linkunkeyct = ct8 ; Comment out to prevent courtesy tones when connected
holdofftelem = 1
telemdefault = 0   ; Prevent "node X connected to node Y" messages
parrotmode = 1     ; 1 = Parrot On Command
; Uncomment following lines:
921 = cop,21       ; Enable Parrot Mode
922 = cop,22       ; Disable Parrot Mode

NOTE: The ASL3 asl-menu utility has an issue where it does not provide a clear option for setting duplex to 3. Be sure to manually edit rpt.conf, find all lines that start with "duplex=" and make sure they set duplex=3.

*In ASL3 there may be 2 rxchannel lines, one with dahdi/pseudo and the 2nd with SimpleUSB/[node#]. Those lines should not need to be manually edited. The ASL Menu Utility (run "sudo asl-menu" on the command line) should be used for initial node setup to set your node#, node password, IAX port number, AMI password, and channel driver (SimpleUSB).

simpleusb.conf Recommended Settings

rxboost = 0
carrierfrom = usbinvert
ctcssfrom = no
deemphasis = no
plfilter = no           ; 'no' for increased bass / 'yes' to reduce low frequency noise
txmixa = voice
txmixb = no
duplex = 1              ; ASL2/HV only, not needed in ASL3
clipledgpio = 1         ; Supports ADC Clip LED
legacyaudioscaling = no

Updating ASL

Be sure to review the ASL3 Manual and follow the recommended steps to periodically update Debian and ASL. After setting up any node I recommend checking the system logfile (in Debian 12 use "sudo journalctl", otherwise use "sudo tail -n 500 /var/log/syslog") periodically to make sure there are no error messages shown during system boot and normal operation. If you see an error (for which a web search of the message does not reveal a simple fix) check the ASL Forum to see if it has been reported, and if not I suggest making a new post.

Backups

When I build nodes I use Clonezilla to restore an image with the latest ASL, AllScan and various other utilities already set up. I then update everything and make a backup copy of the node before shipping. For instructions on how to backup and restore a node using Clonezilla see this post.

Wiring and Assembly

The MiniPC provides 5V on the USB ports, with the URI then providing 5V to the mic and audio modules. The node can also be powered from 12VDC instead of an AC adapter by using a 12V 3040 version or an LM2596 module or similar DC-DC converter which are widely available for < $2 ea. Dell Wyse 3040's are often available on ebay without AC adapters at a significant discount, thus a 12V powered node can be even more cost-effective.

To enlarge any image in this document, Right-Click → Open Image in New Tab

CM108 Fob Wiring

Using a ~$5 CM108 Sound Fob will result in a major cost savings vs. relatively expensive radio interface modules, and is easy to do if you have experience working with surface-mount electronics. Modification instructions:

  1. Remove resistor R6
  2. At the top middle there are 3 light brown capacitors in a row. Connect the 5VDC wire to the left side of the bottom capacitor (just above the "C10" text)
  3. Attach a 28 or 30 gauge wire to Pin 48 on the CM108 IC (COS)
  4. (optional) Attach a 300Ω resistor and LED to Pin 13 on the CM108 IC (PTT). Cover the resistor to LED connection in heat shrink tubing. Then connect the LED cathode to the Mic Jack Sleeve pad
  5. Connect wires for the Mic (Rx Audio) line, Spkr (Tx Audio) line, and Grounds

Wires can be soldered directly to the contacts on the tops of the 3.5mm jacks. An advantage of this approach is that the 3.5mm jacks remain fully intact and usable, which can be useful for test/debug purposes. The Tx Audio line can be taken from the 3.5mm jack Tip (Left channel - txmixa) or Ring (Right channel - txmixb). Be sure to set the txmixa and txmixb settings in simpleusb.conf accordingly.

Closeups showing wired CM108 fob ready for assembly into an ANR100



URI & Mic Wiring

The below diagram shows the lines that need to be connected to the 8-pin mic connector, followed by the connection locations on the URI and other components. 5 wires need to be connected: Mic, Mic Gnd, PTT, 5VDC, and Gnd. The Mic and Mic Ground lines should be run as a twisted pair to the MAX9814 module which has a ferrite bead between Gnd and Mic Gnd for improved RFI rejection. A ~1nF bypass cap should be placed across the mic input pads on the MAX9814 module.

Front View of Mic Jack (Kenwood/Alinco)

Wiring - Modified CM1xx Sound Fob

Line Out Jack Tip ------ Volume Control Potentiometer (Tx Audio)
Line Out Jack Sleeve --- Volume Control Potentiometer Ground
Mic In Jack Ring ------- MAX9814 Out (Rx Audio)
Min In Jack Sleeve ----- Mic Jack Pin 8 (Ground)
CM108 Pin 48 (COS) ----- Mic Jack Pin 2 (PTT)
CM108 Pin 13 (PTT) ----- PTT LED (optional)

MAX9814 Mic Preamp & AGC Wiring

The MAX9814 module first needs to have the electret mic element removed, which can be done by holding a soldering iron on both pins then pull it out or let it drop out. (Desoldering braid can be used to remove remaining solder.) Then remove the small bias resistor next to the Mic+ pad, connect 2 short wires for 5V and Ground, and connect the AR input to Ground. If you'll only be using mics such as a genuine Alinco EMS-57, Kenwood MC-60A, 80 or 85, or a mic that has an output level adjustment control, no mic gain adjustment controls should be needed and the MAX9814 Gain input should be connected to 5V.

To accommodate a wider gain range and support dynamic mics that do not have a built-in preamp, a 5KΩ potentiometer can be added before the MAX9814 module, and a SPDT (On/Off/On) switch can be added to allow the +10 and +20 dB MAX9814 gain options to be easily enabled. If you may at some point use a microphone other than the Alinco EMS-57, or if you have a loud voice or like to talk very close to the mic, this potentiometer will allow the gain to be reduced. The CM108 has additional gain available with the rxmixerset parameter but it does not have much room to reduce gain since the MAX9814 already provides 40dB of preamp + AGC gain, and in the case of low output dynamic mics these require additional gain in the 9814 preamp section to ensure proper AGC input levels.

To reduce low-frequency (LF) noise a 0.1μF film capacitor should be added between the mic jack and MAX9814 input. This forms an RC high-pass filter with the 5.6KΩ resistor (or 5KΩ MGC potentiometer + 470Ω resistor if adding the Mic Gain Controls), with -3dB frequency of around 300Hz (1/2𝜋RC) with a slope of 6db/octave. That's not a steep filter slope but will make it less likely that various LF noise such as wind noise or thumps will result in excessive limiting or clipping. If you have good mic technique and do not use the node in noisy environments this RC filter may not be needed, but it's easy to add and will ensure smoother AGC performance. The simpleusb driver has a plfilter setting that does a 24db/octave low-cut below 250Hz, which will prevent LF content going out to other nodes and thereby provide a frequency response consistent with radio-based nodes, but because simpleusb's filtering happens after the ADC, excessive LF from the mic can result in degraded dynamics and gain pumping effects if not filtered prior to the MAX9814. Ideally an 18 or 24 dB/octave low-cut filter would be added prior to the MAX9814 in which case the filtering in simpleusb would not be needed, but such a filter would require a significant number of additional components ie. an Op-Amp IC and about a dozen resistors and capacitors (for a schematic or an assembled PCB contact me for details).

The simpleusb driver by default does not filter out low frequencies thus plfilter should be set to yes in simpleusb.conf. Or the usbradio driver can do similar filtering with the rxhpf setting in usbradio.conf, with selectable 250 or 300 Hz -3dB point.

An issue with any audio test that relies on voice is that there is a lot of variation depending on how loud you talk, mic distance, response of the mic itself and the voice characteristics of different people. I prefer to talk at least a few inches from the mic and at an angle to minimize plosives, and with that an rxgain setting of 75 usually works well for me. But there could easily be ±6-10 dB of difference in voice energy content vs. frequency, overall volume and mic technique for different people, which could result in overly "hot" audio for some people.

The MAX9814's AGC function (which with relatively short attack and release times acts as a compressor/limiter) brings up the average levels and provides nice even levels, limiting loud peaks while boosting quieter parts. This can result in average RMS levels being higher than other nodes, which can be helpful so long as the audio is not overcompressed or clipped. Many AllStar nodes have quiet audio, probably often because of the use of HTs with low mic gain, and many are too loud. Audio should utilize the full dynamic range of the ADC, have a slight amount of compression to ensure good intelligibility in low dynamic range (high background noise) contexts, and limiting to prevent ADC clipping.

Assembly Steps

I recommend first carefully drilling the appropriate sized holes in the enclosure for the jacks and controls. This template is what I use but be sure to double-check all measurements. I then recommend pre-wiring each module as described in the above sections, at which point the modules then connect together quickly and easily.

Connect the CM108 module to the volume potentiometer, mic jack pins 2, 5 & 8, and the filter cap

Be careful when soldering to the mic and speaker jacks – too much heat can melt the plastic and damage the jacks. I recommend putting a plug in each jack when soldering to help keep the jack contacts stable and better dissipate heat, and not holding the soldering iron on the jack terminals for any more than ~half a second.

Connect the MAX9814 and PAM8302A modules

Connect the speaker jack to the audio amp module

The wiring is now complete. Now plug in a speaker and mic, and plug the USB cable into a 3040, RPi or other computer running ASL.

If using the smaller Hammond 1593BBTBU enclosure the assembly steps are the same but things will be more tightly packed:

Pre-wired modules prior to final assembly:


If adding the optional Mic Gain Controls and for a more detailed overview of the recommended assembly steps see the demo video & slideshow below.

Demo Video and Slideshow of All Build Steps with Mic Gain Control Options


Additional Notes

No PTT line is needed since there's no radio, but an LED can be connected to the URI PTT line to show when it's outputting audio, which is useful for seeing when the node is keyed up, ie. during hang time with no audio or if you had the volume turned down or had several nodes/radios nearby and wanted to be able to see which one audio was coming from. The mic's PTT line connects to pin 48 on the CM1xx IC (COS). PTT on most mics is active-low thus no extra resistors or transistors are needed.

Speaker-mics can be supported with this design. These almost all have an electret mic element requiring a few Volts on the mic audio line, which can be provided with a 2.2KΩ resistor connected between audio line on the mic jack, to a 10uF filter cap to Ground and an additional ~1KΩ resistor going to the VBIAS pin on the CM1xx. In this case the type of jacks used by the speaker-mic/headset should be used (K1 3.5mm & 2.5mm jacks are recommended).

It does not appear that any speaker-mics are available that have a DTMF keypad, and because DTMF control is a useful feature ideally a DTMF mic and separate speaker can be used. DTMF control is not always needed and does have some limitations however. Apps such as AllScan and Supermon are much easier to use than memorizing various DTMF command codes and node numbers, and they allow you to disconnect from a node without keying it up. For example if you are connected to a repeater/hub node and then want to disconnect, with DTMF you have to key up the mic in order to send the disconnect command, which results in keying up the repeater/hub and all users of that system hearing the button clicks and kerchunk. This can be disruptive to other users and should be avoided if at all possible. DTMF can be very useful for other purposes however, for example if you take the node on a trip and connect to a network that you don't have control over and need to determine the node's IP address, or need to turn wifi on or off. Nodes I build support these functions with DTMF commands *690–*693, and can easily support any other OS or hardware functions.

A small speaker could optionally be built into the node enclosure but it's probably simpler to have a 3.5mm TS jack for an external speaker, and optionally an additional 3.5mm TRS jack for headphones or a line out connection.

The CM108B datasheet indicates it will only put out 442mVrms into 32Ω which is only 6mW of power, which is enough for some headphones but not for a speaker. Thus an audio amp module is needed, along with a 1KΩ audio-taper volume control potentiometer. A PAM8302A amplifier module will output 2.5W which is plenty for typical use around the QTH. I initially tried an LM386 module which sounded good however it had some occasional quiet clicking noises even when the volume control was all the way down and even with an added bypass capacitor. I then switched to a PAM8302A module and the noise went away. The PAM8302A does have some very quiet background white noise but it's only audible when the node is not keyed and if your ear is right next to the speaker. TDA2822M audio amp modules have also worked very well and may provide slightly better sound quality and less potential for RFI than Class D (digital PWM) amplifiers. I also tried an LM4871 module but it had the same clicking noise issue as the LM386. And I have used HJX8002 Audio Amp Modules but then found they sometimes also have a clicking noise issue when used with a 3040 with WiFi.

Node Management

Installing AllMon and then AllScan is highly recommended. AllScan provides a Favorites Dashboard with integrated ASL Stats scanning. This makes it easy to add favorite nodes and see their Tx & Rx activity and Connected Link Count stats in real-time (typically 1-minute resolution). These apps can be used in any web browser.

AllScan Favorites Management & Dashboard Web App

Wi-Fi Support, Portability

Wired-internet is more reliable and easier to set up but for a portable node wireless connectivity is essential. USB WiFi adapters are inexpensive and fairly easy to set up if you have basic familiarity with Linux.

Many 3040's come with an internal WiFi card and antennas that work well. Otherwise a cheap USB WiFi adapter should work for short-range communication but I would recommend a reputable brand that's known to work well on Debian Linux and that has a proper antenna. With WiFi frequencies starting at 2.4GHz, a 1/4λ vertical antenna should be 3cm in length or for some gain you'd want 1/2λ or 5/8λ ie. 6-7cm antenna length. Any adapter that's smaller than that is probably not going to have good performance. The TP-Link "Archer T2U Plus AC600" look good and are < $20. I would suggest testing a few different models and seeing how their signal strength, jitter, packet loss, etc. are at different distances from your WiFi router.

AllStar and other VOIP / communication applications require low-latency, reliable IP connectivity, and extra care is required to ensure any WiFi devices and networks used are properly set up. If you ever experience audio issues, dropouts, jitter, etc., it is much more likely to be an issue with your network configuration than with ASL or the node itself.

If you use WiFi on a node you should have basic familiarity with Linux and configuring the various settings. Eventually some setting or driver may need to be updated or debugged. Like anything with computers this is not hard to do, just do a web search for what you want or what issue you're seeing and dozens of web pages with plenty of answers will usually come up.

Wi-Fi Setup for nodes with no Desktop GUI (Command-line Only)

This Article has detailed instructions on how to set up WiFi on Debian. This process does require knowing the node's IP address (which can usually be found on your router management page) and initially connecting to the node through ethernet with an SSH app. This may not be easy to do on networks that you do not manage but there are ways to make that easier, for example you can set up a command in ASL to say the node's IP address in response to a DTMF command. On all nodes I ship I have DTMF commands *690 and *691 set up to say the node's LAN and WAN IP addresses. See the AllScan FaceBook Group for details on how to set up these commands, plus many other tips and updates.

Before configuring WiFi as described in the above article you may need to run the following steps: "sudo su", "apt install wireless-tools net-tools wpasupplicant", then run "iwconfig" and confirm a wireless interface is listed. On a Dell 3040 with internal WiFi module this shows a wireless interface named "mlan0". You may then need to run "ifconfig mlan0 up" to start the interface. "iw mlan0 scan" should then list the available networks, or run "iw mlan0 scan | grep SSID" to see just the names.

After first setting up WiFi on a 3040 I was seeing a lot of jitter and audio dropouts but after disconnecting the ethernet cable, restarting my WiFi router and restarting the node, everything worked perfectly.

Another way to set up WiFi on Debian is with iwd, which may be slightly simpler vs. the article above. See this Article for details.

Wi-Fi Setup for nodes with a Desktop GUI

To simplify WiFi network management a Desktop Environment (DE) can be set up on the node such as KDE or MATE along with a small LCD monitor and USB keyboard/trackpad – or use an inexpensive Netbook or small Laptop instead of a MiniPC. Connecting is then as simple as clicking on the network icon and selecting the WiFi network. The DE should then be configured for auto-login so that WiFi will auto-connect after bootup without needing to turn on a monitor and manually log in with a keyboard. The KDE desktop is recommended for newer MiniPCs with ≥4GB RAM and >16GB eMMC.

Some DE's are able to automatically enable/disable WiFi based on ethernet connected status, but it seems MATE does not have that option. This Post shows how to set up a Network Manager script that automatically turns Wifi off or on when ethernet is or is not available, which should help ensure WiFi is not left on when not needed.

If you often travel and connect to various WiFi networks, using a small laptop or netbook for the node computer rather than a 3040 can make things much easier to manage. These are available for around the same price as 3040's which is a quite a deal considering they include an LCD, keyboard, trackpad and battery. I have used a small Asus netbook that came with Linux Mint preinstalled (was only $50 on ebay) and it works perfectly. This makes for an innovative node product that in addition to being an AllStar node works as a regular laptop and runs 1,000's of free programs available on Linux. Small laptops are slightly more expensive but still < $100, and have a nicer keyboard, more I/Os, and better performance.

For my ANR100-LT nodes I use Dell E7440 laptops, which are easy to find for < $100, with 256GB SSD, charger and Win 10 Pro. They are nice compact laptops with backlit keyboard, full HD LCD, and decent battery life. I shrink the C drive by 65,535 MB and install Debian 12 on the blank partition which then sets it up to dual-boot either OS with Debian and ASL3 as the default. ANR100-LT Demo Video

Full-Duplex Communication Benefits

All AllScan nodes and products support full-duplex communication, which provides powerful advantages over half-duplex nodes. This requires setting the "duplex" parameter to 3 in rpt.conf and to 1 in simpleusb.conf/usbradio.conf. If you do not do this you will not hear Rx audio when keyed up and will be much more likely to experience doubling and other issues.

In The Beginning...

In the beginning...there was CW. Most HF/CW/All-mode transceivers support full or semi break-in keying, meaning that the receiver is on between symbols/letters/words sent. Thus if someone is transmitting on a decent radio and making a reasonable attempt to monitor the frequency between characters or words, anyone can easily break in. Thus CW supports interactive, fluid conversation, and allows others to join a QSO or reply to a CQ at any time. CW can be considered semi-duplex because each dit and dash is only a couple 100mS and good radios can switch between Tx and Rx very quickly. Thus the receiver is never off for a significant time and it's easy to hear responses and other activity on the frequency.

And then there was AM, and soon after SSB which is much more energy-efficient and more widely used. Because SSB has no carrier there is no energy transmitted (or very little) during quiet parts ie. between words or during pauses. Experienced hams take advantage of this by briefly unkeying here and there, during pauses or maybe every other sentence, for enhanced awareness of the channel. This is a subtle technique that many aren't aware of. Some operators will just key up and talk for minutes straight, whereas more experienced OMs tend to keep things shorter and more interactive – just like in-person conversations. When you talk to someone in person you don't just talk for 3+ minutes straight at a time without ever pausing to allow someone to comment, acknowledge, reply, etc. And there's usually no good reason to do this on the ham bands, with some exceptions such as on nets. Thus while SSB is not generally full-duplex, experienced hams use it in an interactive way where they pay attention to what's happening on the frequency (as well as plus or minus a few KHz where there might be QRM or QRN that needs to be worked around), and as a result QSOs tend to be more dynamic and interesting.

And Then There Was FM

Next there was FM. FM sounds better than AM because of its better noise resistance, but it is less energy efficient than SSB due to having a constant power regardless of modulation level. And unlike SSB where you can unkey briefly with no audible effect, if you unkey on FM it results in squelch drops for listeners (unless their radio has unusually good squelch or they have tone squelch properly set up), thus there is a slight disincentive on FM to pay attention to the channel while you're transmitting.

Due to the FM capture effect, multiple people can't transmit at the same time or the signals interfere destructively or one covers up the other. With SSB that's not an issue and multiple signals combine linearly. One might be louder than the other or you might not be able to follow what either is saying very well but at least you'll be able to tell that there are 2 people talking, vs. FM doubling which can sound like a train wreck. Thus when FM first started being used on repeaters 60+ years ago it sounded great but also had some limitations that earlier modes did not.

As a side note, repeaters don't need to only use FM (or PSK digital equivalents). They could also support SSB without a huge amount of effort. Squelch would be a little more complicated because you don't have a constant carrier to reference, but DSP, signal analysis, noise reduction and AGC techniques have come a long way since the days of the first FM repeaters. It would not be hard to set up a repeater with separate FM and SSB inputs and repeat the audio on separate FM and SSB outputs. This would for the first time (that I know of) enable the advantages of SSB to be achieved on a repeater, namely SSB's inherent resistance to destructive interference and thus the ability to support multiple signals on a single frequency, and SSB's greater power efficiency that would reduce battery use for portable users or give more range with the same average power.

Before the Above There Was The Telephone

Originally repeaters and radios only supported half-duplex (from the user perspective). If you receive at the same time you're transmitting, from a repeater that has only one FM receiver, you're generally just going to hear yourself, or maybe a bunch of noise if someone doubles with you. Technically a repeater is full-duplex because it can transmit at the same time it's receiving, but that doesn't do you a lot of good (beyond the basic advantages that repeaters provide) if no more than 1 repeater user can transmit at the same time. Prior to ASL, only rarely did repeaters actually support true multi-user full-duplex communications. This is in contrast to phones which are multi-user full-duplex and always have been, which is much more natural and intuitive. Even the very oldest telephones from the 1800's were full-duplex. Apparently Thomas Edison and whoever else contributed to the early development of telephones figured out that it would be easier to just let people talk whenever they want with no limitations on how many people can talk at a time. This is easier to do on a pair of wires than over RF, but can be easily done on RF by using multiple bands/frequencies.

Multi-User Full-Duplex Repeaters

Most repeaters have only one FM receiver, which due to the FM capture effect can only properly receive one signal at a time, thus there was really no such thing as a repeater where any number of people could talk at any time while also hearing everyone else. To support that without ASL currently requires a repeater to have multiple receivers. Such systems do exist and work well for trivia nets or other scenarios with quick-witted hams jumping in with quick comments. San Diego's W6ZN repeater does this and there are numerous interlinked repeater systems with multiple inputs such as the SoCal DARN or PAPA systems where you can listen to one repeater on one mountain and transmit into a linked repeater on another mountain. ASL now makes it much easier for repeaters to support true multi-user full-duplex, as connected (radio-based) user nodes in fact extend the repeater with additional receivers and user-specific link monitoring transmitters (ie. that do not repeat local Rx audio).

And Then There Was The Internet

The Internet is essentially an extension of public telephone systems that had existed for a century before, with the major difference being packet-switching vs. circuit-switching. They both work for getting audio from one place to another regardless of if it's half-duplex or multi-user full-duplex. The internet does this in a general way with no limitations on the application layer which is a big improvement over the closed and proprietary phone system networks that have now become mostly obsolete.

And Finally There Was Asterisk and Then AllStarLink

Because ASL is based on Asterisk – a phone system, it supports full-duplex perfectly and makes it very simple. Even repeaters that have only one RF input, that would not ordinarily support multi-user full-duplex, if ASL-linked now support this capability by default for all AllStar users. I have tested this on many repeaters and it works just like a full-duplex phone call on a speakerphone. You talk just like you would on a simplex node but if someone else keys up you hear them and if someone doubles you hear it right away. Because you always hear the remote system, and if someone starts to double or there's echoes, timeouts, interference, etc. you can simply unkey until the repeater (or node / hub / bridge / etc.) is clear. This is a powerful feature that greatly improves the interactivity, efficiency and flexibility of amateur radio repeater communications. And it's an essential feature in emergency comms scenarios.

For those who have not used a full-duplex radio or node, or who do not intuitively understand how much of a difference it makes, a simple analogy is to consider what it would be like if the phone system was only half-duplex. Imagine that when calling a friend, relative, or business if only one person could talk at a time, no one could speak until the other person or people on the call unkeyed, and if when you then did key up to speak you couldn't be sure someone else hadn't keyed up at the same time. This would result in awkward and inefficient conversation because it would no longer be like real in-person communication. In contrast, full-duplex enables natural, smooth, effortless communication just like when you're standing right next to someone.

True Multi-User Full-Duplex

Although most people may not know it (even repeater owners), ASL-linked repeaters by default do support true Multi-User Full-Duplex. This is a subtle detail that can be hard to fully appreciate until you've tried it yourself. The repeater itself on analog will not support more than one analog RF input at a time if the repeater has only one RF receiver, but generally will support any number of simultaneous ASL full-duplex users and at least one analog RF input. There are a small number of improperly set up repeaters that don't support multi-user full-duplex but I only know of a few.

By default when a repeater links to ASL it will be with a node whose audio output gets mixed with the RF receiver audio input(s). Some repeaters may prioritize one over the other and only allow one audio channel at a time, or ASL may be linked through some intermediary interface, but even then multiple connected AllStar users can still be full-duplex and talk and hear each other fine, as that's a core feature of Asterisk's architecture. Audio streams from each connected node are always routed to all other connected nodes, no different than a VOIP conference call.

Some repeater system admins may opt to give RF Rx audio priority over AllStar Rx audio but there is no advantage to this and it only causes issues. For example if an RF user and an AllStar user key up at the same time the RF users on the repeater will hear only the RF user while AllStar users hear only the AllStar user, thus resulting in 2 separate conversations, which makes for quite a dysfunctional system. Such a phenomenon could be called "halfing" rather than "doubling", as it results in the communications topology being split into separate halves while both users are keyed up. Fortunately only a small number of repeaters seem to have this issue. If you should encounter such a system I suggest letting the admins know there is a better approach, ie. combine (mix) the Rx audio inputs rather than prioritize one over another.

Amateur vs. Professional

Go on any repeater net that has more than a half dozen or so users and you'll frequently hear doubles, quick-keying, and other issues, which can waste minutes of everyone's time, result in inefficient communication, and could even be described as "amateurish". Full-duplex solves these issues and gives you full situational awareness. This goes back to the definitions of "amateur" vs. "professional". Amateur just means it's not for-profit – not that we can't communicate well. Full-duplex enables communicating as if you were standing right next to everyone in the QSO, and AllStar makes this so easy to do that there's no reason not to.

FAQs

Q: I like the idea of Full-Duplex but I have to wonder wouldn't I get a lot of feedback? When I use Full Duplex on satellites I need earbuds.

A: The great thing about Full-duplex on AllStar (with duplex=3 in rpt.conf, not 2 or 4 which is a repeater), is that it does NOT repeat your Tx audio into the Rx audio that goes back to you. Thus it's no different than talking on a speakerphone – you hear the other people on the call but it doesn't feed back your own audio. Because of this, Full-Duplex is actually much easier to use on AllStar than it is on satellites or non-ASL-linked repeaters.

Node Notes / Instructions

I provide the following notes with nodes I build and have included them here as they are useful notes regarding the general operation of any AllStar node.

  1. When you first plug in the node and connect an ethernet cable, it should be assigned a DHCP address by your router. If you look on the router's web admin page it should show a list of connected devices and the IP Address assigned to the node. You should then 'reserve' that address for the node there so the IP Address does not change later. The *690 DTMF command can also be used to have the node say its LAN IP address, or *691 for the WAN address.
  2. You'll also need to then forward port 4569 UDP&TCP in the router to the node. If this is not done you may get jittery audio or dropouts. (This assumes you do not already have another node on port 4569. Otherwise subsequent port#s should be used ie. 4570, 71...)
  3. If you will want to use AllMon/Supermon/AllScan from external networks you'll also need to forward port 80 TCP in the router to the node, or for portable nodes use a Dynamic DNS service.
  4. To access the node by SSH enter the node's IP Address in your SSH client, username=______ and password=______. This password should be changed. To do this, log into the node by SSH and type "passwd" and you will be prompted for a new password. Make sure not to lose that as there is no easy way to recover or reset it.
  5. AllScan and AllMon are installed and have the same login: username=______ password=______, and can be accessed by entering the node's IP or DDNS Address in your browser. To update the AllScan password go to the Users page link. To update an AllMon3 password see this link. To update an AllMon2 password see this link. To update a Supermon password see this link.
  6. If the Dell 3040 has not been connected to power for awhile sometimes the power button has to be held in for 5-10 seconds and it may take a minute to then start up. Usually though a single click is all that's needed to turn it on or off.
  7. AllStar nodes can take several minutes after first being turned on to register with the ASL Network and for connections to remote nodes to then be accepted.
  8. RX and TX level adjustments can be made in the asl radio tune settings, by logging in by SSH and running "sudo /usr/sbin/simpleusb-tune-menu" if using simpleusb driver or "sudo /usr/sbin/radio-tune-menu" if using usbradio driver, then follow the prompts to adjust the level settings.
  9. You can check your audio using Parrot mode: Enter DTMF command *921 to enable, *922 to disable. (Be sure you're not connected to any other nodes when doing any testing.) N2DYI's Parrot Test Node 55553 can also be used. When setting levels keep in mind that it's better to be a little on the low side than to have too much gain and possible clipping and distortion.
  10. The audio levels on the node have been adjusted to good general levels, however your voice and various mic(s) you use may be louder or quieter than average and you may need to adjust the Rx gain (volume level from the mic going out to other nodes) accordingly. You can also adjust the Tx gain (max volume from the speaker) to your personal preference.
  11. For nodes with wifi, it is generally recommended to use wired ethernet when available for best performance. In this case the wifi module should be turned off with the SSH command "ifconfig mlan0 down" or DTMF command *692, and can later be turned back on with the command "ifconfig mlan0 up" or DTMF command *693. The wifi will default to on when the node is next powered on or rebooted, unless this is changed in the networking settings.
  12. If you have questions on the node or settings be sure to review this guide, which is frequently updated.

Troubleshooting

If there is any noise on the node's transmit or receive audio, try adding a small ferrite clip-on filter on various audio and power wires. And to prevent possible ground loops, keep all wiring as short as possible and always run power and audio wires/cables in straight lines and next to each other rather than spread apart or in any kind of shape resembling a loop. Also be sure to use only a star-ground configuration such that there is no more than one ground path between any 2 node components.

If you get distorted audio or stuttering/dropouts, make sure all your port settings match on the ASL site for both the server and the node, and that those match the port settings in iax.conf (bindport), rpt.conf ([node#] = radio@ip:port), in the node's firewall (iptables) configuration, and in the router/cable modem. This is 6 different places the port has to be set. If it's your first node then you probably have the default of 4569 and didn't need to change anything, but if it's not your first node then a different port number is required (eg. 4570, 4571, ...), and all 6 of those places need to have the same setting. The node can still appear to be working fine if those settings don't match but the audio will be more likely to have stuttering/dropouts.

Conclusion

My goal has been to build high-quality full-duplex radio-less and radio-based nodes as cost-effectively as possible that are self-contained, portable and compact. I also build and sell fully assembled, configured and tested nodes and USB interface modules. For more info see the Products page.

Contact

For questions, feedback or other inquiries email david at allscan.info.

−−··· ···−−

GitHub | Facebook Group | YouTube | AllStarLink.org | ASL Forum | LinkedIn | eHam.net