What are ChiliNodz?

* ChiliNodz are an entry level frequency agile, USB Powered, 250 MilliWatt output, FM Half-Duplex mode transceivers designed with AllStar HamVoIP and Packet Radio / APRS in mind. We like to think of them as a "VolksNode"!
* A compact USB “Dongle” engineered to interface with a Raspberry Pi 3 AllStar server or a computer running the Dire Wolf Packet Softmodem program.
* Two different models allow you to choose either VHF (Designated with a Yellow Dot) or UHF (Blue Dot) band.
* An integrated 5 pole low-pass RF filter to reduce transmit harmonic output and receive interference is designed into the package.
* They come with a 50 Ohm dummy load attached to the standard SMA Female output connector allowing 50-100 foot operational range.
* Are capable of significantly longer range using standard SMA base handi-talki antennas or a coax extension and antenna.
* Are capable of wide (25 kHz) or narrow (12.5 kHz) bandwidth transceive. (Wide bandwidth is commonly used in amateur FM operations).
* Are remotely programmable across the entire Amateur Band (VHF or UHF) using readily available software. (818-prog)
* Do not require an external power supply (they are powered via the USB ports).
* Use one (non frequency agile) or two USB ports on a Raspberry Pi 3.
* May require external RF filtering if used with a power amplifier.
* Are fully compatible with the simple USB setup program supplied with HamVoIP.
* ChiliNodz come programmed to transceive on 446.0250 (UHF, Blue Dot) or 146.5500 (VHF, Yellow Dot) with a 100.0 CTCSS (PL tone) Encode and Decode.
* Can be supplied as a "NakedNodz" without the red dual-wall heat-shrink cover or as the ChiliNodz Radio only. We are also considering a kit form if demand dictates.
* Are packaged in Heavy-Duty Marine Grade Dual Wall Red Heat-Shrink, this has been found to be very durable (you can toss them into your go-box and there's no delicate hard plastic case to get broken!) and they look like red Chilli Peppers, thus the name; ChiliNodz!
* They are NOT designed to be an industrial grade radio component, so use caution when the transmit duty cycle is high. They will get hot!

ChiliNodz ChiliMini Ver. 1.3 Mounted on a RaspBerry Pi 3B+


Where to Get ChiliNodz

We have a Webstore at: ChiliNodz Webstore but will not be offering any for sale there until the beta testing is complete. Thanks for your patience.

Comments and requests can be sent to: moc.oohay|diloo2.ofni#moc.oohay|diloo2.ofni We will answer you as soon as we can. Thanks for your patience!

Setup procedures for the ChiliNodz modules are dependent upon the end users desired application. Please proceed to the appropriate section for your application.

Please note that this procedure does NOT include complete instructions for setting up your AllStar Server and Node. For information on those procedures, please refer to the AllStar and HamVoIP documentation on the web ( ). This document assumes that you have your Server and Node registration information and are somewhat familiar with the programming of an AllStar Server and Node.

Setup for AllStar/HamVoIP

Things you will Require:

  • Writing pad and pen or pencil (or a device with a notepad app).
  • Raspberry Pi 2-B3+
  • 2.5 Amp power supply for the Pi
  • SD Card with the AllStar/HamVoIP Image
  • Hardwired Internet (For initial update)
  • WiFi Internet access (SSID, Password)
  • Computer system on the same LAN as the Pi
  • ChiliNodz Module
  • Test Radio programmed to the same frequencies/tones that the ChiliNodz module is or will be.
  • Callsign, node number, 6 or 12 digit PIN/password, server password for the AllStar/HamVoIP system.
  • Optional:
  • PG01 Programming adapter for the ChiliNodz (to change frequencies/tones if desired)
  • Keyboard, mouse, monitor & cables (to setup the Pi in a Non-Headless mode)

Prior to installing the module in the Server Pi, make sure that you have all of your settings for the server setup at hand (Callsign, node number, 6 or 12 digit PIN/password, server password etc. see AllStar Link 4/2019 ).

You have two options from which to select when setting up a ChiliNodz based AllStar Node.

  • Option A - New installation for a out of the box Server and Node, or;
  • Option B - Converting an existing Server to ChiliNodz module operation.

Please continue with the appropriate Setup Option as detailed below:

Setup Option A: AllStar/HamVoIP - New installation:

Preparing the Server.

**DO NOT insert the ChiliNodz module at this time. The module will be stuck in transmit until the server is properly configured and will get hot, not to mention it will not ID.

Insert your newly programmed Micro SD card per the instructions here: (

  1. Apply power to the Pi. -Note: Internet setup is an extremely variable often complex procedure that is beyond the scope of this document. Please refer to the extensive documentation at: and search the archives at: and subscribe to the forum at: for assistance.
  2. Log in to the Pi using the default settings: username: root, and password: root
  3. Immediately perform a System Update to ensure you have all the latest files for the Pi. -Note: If the update window just goes to blue, then returns you to the main menu, you do not have any internet access: -Check that you have Internet to the Pi, plug the cable into another known good device and check it. -Check your DNS file in the Pi by doing the following: *Debated issue *: Using nano ( or your favorite text editor, check resolv.conf file by typing: nano /etc/resolv.conf </nowiki>The file is only one line, if it has you may have to change it to reflect a valid DNS server. It seems this is dependent on your ISP. You can use the one listed in your router or your favorite. -Hint: Try "ping" from the BASH command line. If you see responses from google, you have Internet connectivity. If that works, then Try "ping" , if this DOES NOT work you have a DNS issue.
  4. Once you have the Pi online, perform the System Update. This may take a few minutes but it will display its progress if the internet link is working.
  5. Do the reboot as requested.
  6. Run “First Time” startup.
  7. Enter your root password. Make it secure, but remember you will be entering it quite often as you customize your server and node so write it down!
  8. At the “Is this a private node?” selection choose the appropriate response. Usually “NO”. -Note the distinction between private and public nodes: A ''public'' node (the most common selection) shows up on the AllStarLink page ( and is available for general usage buy any other users (there are ways to restrict this). A ''private'' node does not appear in the public list and cannot generally be connected to by the AllStar public.
  9. At the Set Node Configuration query enter “YES”.
  10. Confirm the selection after the reboot by selecting “OK”.
  11. Set your Time Zone. -Hint: After you scroll down to your appropriate Time Zone, use the ''space bar'' to select it… then “OK”.
  12. Confirm your selection.
  13. Change the server name to something meaningful, perhaps something like: MY6CAL_1 -Note: Although this may be changed later, it is probably best to get this set however you want it the first time.
  14. Change the Network to DHCP and confirm your selection. -Note: You can keep the 222 SSH port or use one of your choosing, see: ( Just be sure to remember what port you choose. Again,write it down!
  15. Reboot the system as requested and you will be presented with the option to run the asterisk configuration scripts. Choose “YES”
  16. Enter your Node Number.
  17. Choose either Voice or Morse Id.
  18. If you will have only one server on the LAN behind your router use the default Binding Port. If not, see: ( and select appropriately.
  19. For the Duplex setting screen select either “0” or “1” for half-duplex operation. 0 being a basically silent node and 1 having telemetry information. (Beeps & Verbose ID etc.)
  20. For the IAXRPT Password screen you can choose “No” and configure this option later if you desire.
  21. Enable Simple USB Configuration. This is where you actually set up the interface to the USB port and the radio module. Select “YES”.
  22. Continue with “YES”
  23. Scroll down and choose the “DEFAULT” radio.
  24. Choose “NO” for EEPROM. -Note: ChiliNodz are frequency agile within their selected band and use the 818-prog program to change radio frequencies and options.
  25. Choose “NO” for the RX Boost question. -Note: This actually disables the RX Boost by ''inserting'' a 20dB pad in the radio receivers audio line.
  26. Choose “YES” for the Carrier Detection Setting.
  27. Does the Carrier Line Need to be Inverted? Answer “YES”.
  28. Do you want to use CTCSS Decoding? “Answer “NO”. -Note: This will be done by the radio, not by the server..
  29. PTT Setting is “Yes”. -Note: High level or Open (PTT “Floats” High) is transmit on the ChiliNodz Module.
  30. PL filter setting is “NO”.
  31. Pre-emphasis filter is “NO”.
  32. RX Audio Delay is “0”.
  33. Audio Level Settings; Choose “YES”.
  34. RX Mixer = “325”. (Version 1.7 This value will vary with different versions, Set it to best audio audio clarity on receive.)
  35. TX Mixer A = “775”. (Version 1.7 This value will vary with different versions, Set it to 5kHz audio peaks on transmit.)
  36. TX Mixer B = “0” -Note: The B audio port is not used by the ChiliNodz Module and can be set to any value. We recommend 0.
  37. Final Instructions: Choose “YES”.
  38. You will be returned to the Main Menu.
  39. Now you should Power down the Pi by choosing #16 on the main menu. DO NOT just unplug the Pi, All settings will be lost if you do! Using the Power Down option saves all the current settings to the SD card.
  40. Confirm shutdown.
  41. Disconnect the pi from its power source.
  42. Assuming you're going to be using WiFi Networking during operation; disconnect the Pi from the hardwired Ethernet.
  43. Plug the ChiliNodz Dongle firmly into any of the USB ports.
  44. Turn on your HT (or command radio) with it tuned to the ChiliNodz default frequency and tone. -Note:446.0250 T/R (Blue Dot) or 146.5500 T/R (Yellow Dot) w/100.0 CTCSS encode/decode are factory programmed
  45. Apply power to the Pi.
  46. You should hear about 30 seconds of dead carrier then the local IP address will be spoken. Write it down!
  47. Using Putty ( ) or your favorite SSH Terminal client, log in to your node using the recorded IP address (above) and port 222 or the port you chose earlier.
  48. You should now be displaying the Main Menu (Illustration 1) where you can experiment with your new node. Be sure to capture and record any settings you change before you change them so you can reverse the changes and get back to a working node…

Illustration 1 - Main Menu

Setup Option B: AllStar/HamVoIP - Re-Configuation

Re-configuring an existing Server

If you have an already set up AllStar server on the target Pi, you can use the following procedure to install the ChiliNodz module:

  1. Power the Server (Pi) down. -Note: There are two phases (Part 1 and Part 2) involved in configuring your ChiliNodz.
  2. First (Part 1), like any other radio or radio-less node, you must setup the USB Stanza that defines the various Input/Output lines that control Push To Talk (PTT) and Carrier operated Squelch (COS) and the audio levels along with the audio channel shaping (Pre/De emphasis). Note that for the ChiliNodz we let the radio take care of the audio shaping and set the USB Stanza software to pass the full audio channel without modification. Also, the ChiliNodz Module provides its CTCSS (Continuous Tone Coded Squelch System) status on the COS pin. It does not have a separate CTCSS status line.
  3. You are welcome to experiment with these settings. Nothing can be permanently damaged with incorrect settings. You will find that DTMF decoding is usually adversely affected if the audio settings are incorrectly configured.
  4. Second (Part 2)''', because the ChiliNodz modules offers frequency and CTCSS (PL tone) and DCS (Digital Coded Squelch) options. You can optionally program the radio to your desired channel, split and squelch options. ChiliNodz come pre-programmed but are easily changed to suit your local requirements using the optional PG01 Programming Adapter.
  5. Optionally Install the PG01 Programming interface into an available USB port and plug the 3.5mm Stereo plug into the ChiliNodz programming port (See Programming the ChiliNodz Module Radio below).

Part 1 Setting up the ChiliNodz module USB Stanza

  1. Log into your Server. (Please see the Web based HamVoIP & AllStar documentation.)
  2. You will be presented with the AllStar Server Main Menu like below (Note your servers name and local IP address in the title line):
  3. Select: Option #12, Run simpleusb-tune-menu Application from this menu.'''
  4. You will be presented with a menu in a BASH ( terminal.
  5. Using the example below, enter the values for the following:
  6. Example: enter “2” and you will be presented with “ device USB currently not active” (because the ChiliNodz Module is not plugged in).
  7. Don’t concern yourself with this at this point. Hit the “Enter” key and you will be able to enter a value, (400 in this case) then “Enter” again.
  8. The other values are entered in a similar fashion.
Initial SimpleUSB settings for ChiliMini
  • S)Active simpleusb device stanza: [usb] ----—Select active USB device stanza
  • V)View COS, CTCSS and PTT Telemetry using real-time display
  • P)Print Current Parameter Values
  • 2)Set Rx Voice Level (using display) [Recommended initial value: 400, Use 700 on early (Dual USB)Versions ]
  • 3)Set Transmit A Level [Recommended initial value: 125, Use 700 on early (Dual USB)Versions]
  • 4)Set Transmit B Level [Recommended initial value: 0]
  • B)Toggle RX Boost Mode (currently Disabled)
  • C)Toggle Echo Mode (currently Disabled)
  • D)Flash (Toggle PTT and Tone output several times)
  • E)Toggle Transmit Test Tone/Keying (currently Disabled)
  • F)Toggle PRE-emphasis Mode (currently Disabled)
  • G)Toggle DE-emphasis Mode (currently Disabled)
  • H)Toggle Plfilter Mode (currently Disabled)
  • Q)Toggle DCSfilter Mode (currently Disabled)
  • I)Toggle PTT Mode (currently active HIGH)
  • J)Change COSFROM Mode (currently “usbinvert”)
  • L)Change CTCSSFROM Mode (currently “usb”)
  • M)Change RXONDELAY value (currently “0”)
  • N)Change RXAUDIODELAY value (currently “0”)
  • W)Write (Save) Current Parameter Values
  • 0)Exit Menu
  • Note:All other settings may be left at the default.

You can then enter a p(rint) command and then compare your settings with the screen shot
shown after the p(rint) command (Note audio Levels May be different).

DON’T forget to do a “w” (rite) before you exit simpleUSB!''' Otherwise all be be forgotten upon power loss or reset!!!

  • Note:Do an “Enter” to get back to the Simple USB menu before entering the “w” command.
  • Note:If you forget to do a “w” prior to exiting simpleUSB and have NOT powered down or rebooted your server Pi, you can re-enter the simpleUSB program from the main menu and execute the “w” command to save current the settings.

After you are certain that you did the “w”, then select “0” (Zero) to return to the Main Menu.

Now you can power down the Pi.

Part 2 – Installing the ChiliNodz Module

Plug the ChiliNodz Module into the server using any free USB port.

  • Note:It doesn’t matter which USB ports you use.
  • Note: The Module and the Pi can be hot Plugged without physical damage, but the server will likely loose track of the USB port for the audio and control so it won’t function. Disconnect the power, wait a few seconds and power the server back up with the ChiliNodz module firmly installed… It will take about 1 – 2 minutes for things to get with the program.
  • NOTE: If the factory installed frequency 446.0250 (Blue Dot) or 146.0450 (Yellow Dot) and tone 100.0 are acceptable to you, you need not proceed with the radio programming segment. You may also change these settings later.

** Note:''' Using the 818-prog program with the PG01 and assuming that you have your AllStar server set up for remote Internet access, you can remotely reprogram the radio at your leisure. Think of the possibilities!

Assuming that your Pi Server is setup for a valid Node etc. Your ChiliNodz micro station is now on the air! Try a command sequence like *80 or *70 on a properly programmed transceiver and you should get a proper response.

  • Note: It can take some time, up to 30 minutes sometimes, for your new node’s status to propagate to the AllStar list and be available for connections in and out. Be patient and check your nodes status on the AllStar list ''( ).
  • Important: Remember, the ChiliNodz module is a Half duplex system. It cannot receive or accept commands over the air when it is transmitting, so be patient, wait for it to finish transmitting before giving it a new command or responding in a QSO.
  • Use the simpleUSB Echo command to listen to your audio voice quality.

Packet Radio and APRS Setup

ChiliNodz modules are designed to be used with the Dire Wolf USB Soundcard softmodem software package. Currently the interface software settings are under development using the native ChiliNodz CM108 sound chips built-in GPIO ports for PTT and COS(RSI). The Dire Wolf software package for the Raspberry Pi supports the CM108 GPIO access.
Settings and documentation are under development.

ChiliNodz Dire Wolf Install (UnTested)

Here is a link to the Dire Wolf Installation instructions for a Raspberry Pi based Sound Card installation.
This configuration has not been tested as of this edit,

Programming the ChiliNodz Module Radio

ChiliNodz ChiliMini with PG01 installed Mounted on a Raspberry Pi 3B+


(changing radio frequencies and tones)

  1. Install the PG01 Programming interface into an available USB port.
  2. Insert the 3.5mm Stereo plug into the ChiliNodz Programing port on its side. -Note: this can be done "hot" but you risk disconnecting the ChiliNodz module and having the server loose the USB assignment.
  3. Log in to your AllStar Server.
  4. From the main Menu Screen select; #9 “Start Bash shell interface”.''' (
  5. You will see a command line similar to this: [root@(your-server-name-here) asterisk]#
  6. You will then type in the “818-prog” command as shown in the screenshot below. -Note: You are executing the 818-prog program which was written by W0ANM ( ) (Unfortunately this link is now broken…) and is supplied with the AllStar Server distribution.
  7. You will see the next few lines appear as shown in the screenshot below.
  8. As you enter the required values, the screen will fill out and look like above. -Note: Channel spacing is 12.5 kHz= “0” or 25 kHz= “1”. Ham radio typically uses 25kHz “1”. Frequency entries require all 7 digits and the period i.e.: “446.0250”. -CTCSS entries also require all four digits. i.e.: “0012”.
  9. Squelch Value is nominally set to “3”, but may be set to “1” if CTCSS or DCS decoding is used or higher numbers for tight squelch in RF noisy areas.
  10. Volume level is set to “7” for normal operation. Changing this level will alter the setting for Receive Level in the simpleusb settings.
  11. Pre-emphasis “yes” is to be selected here in the radio programming rather than using the Simpleusb settings to avoid conflicts. We recommend using these radio filters only, but you are free to experiment!
  12. If High Pass “yes’ is enabled it, rolls off the radio’s audio above about 2.8 kHz. This can affect DTMF decoding from some radios, <u>''so is '''NOT''' selected: N
  13. If Low Pass is enabled, it rolls off the radio’s audio below about 300 Hz, attenuating DCS and CTCSS tones in the voice channel. This is normally done in the servers software <u>''so is left '''disabled''':“n”''
  14. After entering the desired values, you will be presented with the '''Verify:''' screen as shown near the bottom of the above illustration.
  15. If all looks good, select “y” again to program the radio and you should see the following lines near the bottom of this illustration appear, printed after your entries, as shown near the bottom of the following screenshot:
  16. And then you are returned to the BASH prompt.
  17. Type: “exit” and press “Enter” at this prompt, to be returned to the Main Menu again.

818-Prog Example


Valid CTCSS Code Table:

  • Note:Entering “0000” (four zeros) will provide Carrier Squelch operation.
CTCSS tone (Hz) Code
67.0 0001
71.9 0002
74.4 0003
77.0 0004
79.7 0005
82.5 0006
85.4 0007
88.5 0008
91.5 0009
94.8 0010
97.4 0011
100.0 0012
103.5 0013
107.2 0014
110.9 0015
114.8 0016
118.8 0017
123.0 0018
127.3 0019
131.8 0020
136.5 0021
141.3 0022
146.2 0023
151.4 0024
156.7 0025
162.2 0026
167.9 0027
173.8 0028
179.9 0029
186.2 0030
192.8 0031
203.5 0032
210.7 0033
218.1 0034
225.7 0035
233.6 0036
241.8 0037
250.3 0038

Valid Digital Code Squelch (DCS) Table:

Note: Append either an N or an I to the numeric code for Normal or Inverted i.e. “132N” or “023I” .
017 053 125 172 251 315 411 462 565 712
023 054 131 174 252 325 412 464 606 723
025 065 132 205 255 331 413 465 612 731
026 071 134 212 261 332 423 466 624 732
031 072 143 223 263 343 431 503 627 734
032 073 145 225 265 346 432 506 631 743
036 074 152 226 266 351 445 516 632 754
043 114 155 243 271 356 446 523 654
047 115 156 244 274 364 452 526 662
050 116 162 245 306 365 454 532 664
051 122 165 246 311 371 455 546 703

Congratulations! You have just changed the programming in your ChiliNodz radio!

Additional Operational Notes:

  • The red flashing action of the “Heartbeat” LED visible on the ChiliMini, is dependent upon the firmware version of the CM108 chip used on the audio sub-module. On most units it flashes rapidly when the USB service routine is alive on others it may be active when the PTT or COS/RSI line is active.

Ideas and Future Development.

  • Install two ChiliNodz in one AllStar Server one UHF and one VHF and create a cross-band repeater.
    • Add a PG01 Programming Adapter and you have a frequency agile remote base with AllStar Node flexibility.
  • Using two ChiliNodz and Dire Wolf Packet Radio Software you have a cross-band Packet Radio Digipeater with an Internet Portal.
  • Using USB extensions, install two UHF or VHF ChiliNodz on one Server. Separate the antennas by an appropriate distance vertically and have a low power in-band repeater.
  • An inexpensive but high-tech Fox for Transmitter hunts. It could even change frequencies randomly just for fun & the challenge!
  • Have several set up as Foxes and sponsor a 'Poker Run'.
  • Set up a remote Node/Server/ChiliNodz at your summer (or winter) getaway and use it to check in on the local repeater nets and monitor activity.
  • A special event simplex 'Talk-In box'
  • Using the Echo mode in simpleusb, a Simplex Repeater or Parrot.
  • Under development - a Mini- cross-band repeater based upon the core radio in the ChiliNodz that uses the Teensy, Arduino compatible MPU.

What Ideas do you have??

73 from:

Ray, KL7UT
Don, AA7AU

Veteran Designed and Veteran built in the USA

Technical Section

Technical details about the ChiliNodz

Yes, the ChiliNodz Module is based upon the SA-818 UHF/VHF modules. However we order them directly from the factory with specific quality requirements. We found, after numerous trials and square yards of breadboards, that the stock SA-818 DRA-818 modules, although a great idea and decent product, have several quirks. First thing that we noticed was that they have serious spurs and harmonics on the transmit signal. We also identified severe de-sense from signals above the Ham bands on both the UHF modules and the VHF modules. The solution was of course a Low Pass Filter in front of the T/R port. Others have done so successfully . But we wanted to have a more compact solution. So, dipping into some of our Avionics and Military experience, we designed a very compact spiral inductor system, integrated onto the PCB that implements a 5 pole Butterworth style Low-pass RF filter with a 3 dB point just above the ham bands.

See for yourself:

An un-filtered SA-818 UHF module. Note the spurs common to these synthesized radio modules. The 2rd harmonic in the 800MHz band is significant and wow! see that spike at about 1.8GHz, (4th Harmonic?).


And with our super compact filter in line. The second harmonic is knocked down better than 40 dB below the carrier (actually 64dB+) with significant suppression of the rest of the fuzz and that nasty spike at 1.8GHz is gone.

(Yes I know the Spectrum Analyzer we used is a Cable TV Analyzer and its input is 75 ohms. A 20dB 50ohm pad was placed in between the source and the input of the Analyzer so we should be comparing relative dB to relative dB between Raw and Filtered not absolute power… We are open to discussion on the subject as our access to test equipment is limited and we want to improve the product.) Also we could not figure out how to get the carrier reference zeroed at the top graticule, it insisted on about 2dB of "overshoot"…


Both these tests were at the factory programmed 446.0250 frequency.

Of course, as a bonus the de-sense response from out of band signals is also dramatically improved. The down side is that the spiral inductor is a bit more lossy than a discreet air-core inductor so instead of .5 Watts output, we see about 300 or so MW out of the filter on the UHF modules. Not too bad as most of the 25-30 Watt amp modules need to see only 100 MW to fully drive them. Also 300 MW on the included dummy load gives rock solid coverage of a 2500 sq ft home. With an elevated (20' AGL) Nagoya or Diamond Dual-band HT antenna it covers all of Salmon Idaho! Okay, so Salmon is only about 1 mile end to end…

We have not tested these modules running through an external power amp yet, but would recommend that you take precautions to ensure that your transmit signal is in compliance with good operating practice and any rules or regulations applicable to your area/country.

One other serious issue we discovered during our design and testing was that all of the SA-818/DR-818 Modules we tested have their Wide/Narrow Band command locked in the Narrow Band mode from the factory and will not actually program to wideband. This restriction is actually sorta mentioned in passing in the DRA818 programming reference sheet:

"The firmware only chooses 25KHz option fixedly. However
the frequency modulation deviation in 25KHz channel space is still very narrow
(about +/-2.5KHz) so the module works more likely at 12.5KHz channel space."

Even the above statement is incorrect as they actually choose 12.5KHz "Fixedly"…

No error is returned when programming, the module just stays in narrow-band!

So after literally months of discussion with the manufacturer, we finally were able to acquire a programmer and the appropriate firmware for the modules to make them perform as expected. All ChiliNodz Modules have proper firmware installed and have been tested before leaving the assembly bench so they work a lot better than "more likely" when you get them!

If you are having issues with a non-ChiliNodz unit using the SA-818 or DRA-818 or related modules and are experiencing audio level issues or DTMF decoding/encoding difficulties, use a service monitor to check to see if the module is actually programmed or programmable to Wideband mode. Oh, and buy a ChiliNodz!

One other issue that we encountered was in the use of the newer CM119B Sound chips. It seems they are not entirely backwards compatible with the HamVoIP software and have some issues, so to keep the peace and the price-point we have elected to use the older, reliable CM108 chip in the ChiliNodz. Maybe it's because my ears a a little older, but I can't tell the difference over the air!

For the Pythonistas (Programmers) out there, here is the Python2 code for 818-prog

818_prog Code

# This is a simple serial programmer for the 818 VHF/UHF modules.
#    by w0anm
# This code was created from examples on the web.
# $Id: 818-prog 12 2014-12-27 18:27:47Z w0anm $
import time
import serial
# configure the serial connections (the parameters differs on the device 
# you are connecting to)
ser = serial.Serial(
print '\r\n\n'
print 'Programing DRA818x and SA818x Module \r\n\n'
print 'Device name:'
print '      ' + ser.portstr       # check which port was really used
while key == 1:
    print '------------------------------------------------------'
    Spacing=raw_input('Enter Channel Spacing (0 or 1): ')
    FreqTx=raw_input('Enter Tx Frequency (xxx.xxxx): ')
    FreqRx=raw_input('Enter Rx Frequency (xxx.xxxx): ')
    tx_ctcss=raw_input('Enter Tx ctcss Code Value (xxxx): ')
    rx_ctcss=raw_input('Enter Rx ctcss Code Value (xxxx): ')
    squelch=raw_input ('Enter Squelch Value (1-9): ')
    Volume=raw_input('Enter Volume (0-8): ')
    PreEmphasis=raw_input('Enable Pre/De-Emphasis (y/[n]): ')
    if PreEmphasis == "":
    HighPass=raw_input('Enable High Pass Filter (y/[n]): ')
    if HighPass == "":
    LowPass=raw_input('Enable Low Pass Filter (y/[n]): ')
    if LowPass == "":
    print ''
    print 'Verify:'
    print '------------------------------------------------------'
    print '     Channel Spacing: ' + Spacing + ' '
    print '        Tx Frequency: ' + FreqTx + ' '
    print '        Rx Frequency: ' + FreqRx + ' '
    print '       Tx CTCSS code: ' + tx_ctcss + ' '
    print '       Rx CTCSS code: ' + rx_ctcss + ' '
    print '       Squelch Value: ' + squelch + ' '
    print '        Volume Value: ' + Volume + ' '
    print ' PreEmphasis Enabled: ' + PreEmphasis + ' '
    print '   High Pass Enabled: ' + HighPass + ' '
    print '    Low Pass Enabled: ' + LowPass + ' '
    print '------------------------------------------------------'
    Answer=raw_input(' Is this correct ([y]/n, or a to abort) ?')
    if Answer == "":
          Answer = "y"
    if Answer == "y":
    if Answer == "a":
# print 'Enter your commands below.\r\nInsert "exit" to leave the application.'
# Example of the command:
#     ser.write("AT+DMOSETGROUP=1,446.0500,446.0500,0020,4,0020\r\n")
# Set Freq/Group
print 'Sending Freq Information...'
ser.write("AT+DMOSETGROUP=" + Spacing + "," + FreqTx + "," + FreqRx + "," + tx_ctcss + "," + squelch + "," + rx_ctcss + "\r\n")
#evaluate response
raw_serial = ser.readline()
response = raw_serial[:-2]
# Bad response --> +DMOSETGROUP:1
if response == '+DMOSETGROUP:1':
    print "    Error, invalid information (" + response + "). Check input format.."
    print " Command Sent:"
    print "        AT+DMOSETGROUP=1," + FreqTx + "," + FreqRx + "," + tx_ctcss + "," + squelch + "," + rx_ctcss + "\r\n"
# Set Volume
print "Setting Volume - " + Volume + " " 
ser.write("AT+DMOSETVOLUME=" + Volume + "\r\n")
#evaluate response
raw_serial = ser.readline()
response = raw_serial[:-2]
# Bad response --> +DMOSETVOLUME:1
if response == '+DMOSETVOLUME:1':
    print "    Error, invalid information (" + response + ")..."
    print " Command Sent:"
    print "    AT+DMOSETVOLUME=" + Volume + "\r\n"
# Set Filters:
# convert filters values, 0 is enable, and 1 is disable
if PreEmphasis == "n":
if HighPass == "n":
if LowPass == "n":
print 'Setting Filters'
ser.write("AT+SETFILTER=" + PreEmpFilter + "," + HPass + "," + LPass + "\r\n")
#evaluate response
raw_serial = ser.readline()
response = raw_serial[:-2]
# Bad response --> +DMOSETFILTER:1
if response == '+DMOSETFILTER:1':
    print "    Error, invalid information (" + response + ")..."
    print " Command Sent:"
    print "    AT+SETFILTER=" + PreEmpFilter + "," + HPass + "," + LPass + "\r\n"

For those that are undaunted by Molten Metal… Here's how build your your own PG01:

Start with a common E-Bay 4 (or 6) wire USB to TTL adapter Dongle.


Trim the connectors off leaving only TXD, RXD and GND. (Note that Color Codes may vary from different sources)
Be certain to trim the +5V wire back so it will not contact any other conductors! ( We pull it out a bit from the cable, snip it close, then it sucks back into the cable, out of the way.


Attach the TXD from the USB adapter to the TIP of the 3.5mm stereo plug. (White wire here.)
Attach the RXD from the USB adapter to the RING of the 3.5mm stereo plug. (Green Wire for this USB adapter.)
Attach the GND from the USB adapter to the SHIELD of the 3.5mm stereo plug. (Black wire.)

Crimp the cable restraint and slip the cover over your work, and you have a PG01!



The NakedNodz Module is the core radio system without an attached CM108 USB Sound card. It is designed to be a Ham/Hacker/Maker friendly RF Transceiver Module that can be integrated into many unique projects. As supplied, it needs between 3.3 - 5.2 VDC at .5 amps to give you between 250 - 500mW (Depending upon frequency) out. Cut the High Power Enable trace on the board and it will supply 1 - 1.4 Watts of power to a 50 Ohm load, drawing about 750 mA.

Super easy to program because it interfaces to either a Raspberry Pi or an Arduino with no issues! It is frequency agile on either the 2 meter or 70 cm Bands (chose when ordering) and is much cleaner than the raw SA-818 or DRA-818 modules because of the specially designed 5 pole Butterworth Low Pass filter that is built into the band-specific board. It is available with or without the 3.5mm Programming port (Programming TXD and RXD lines are available on the 10 pin Header) and with or without the SMA Female RF connector for custom projects.


Installing a 2x5 (10 pin) .1" spaced header in either a right angle or straight version, provides access to all features of the SA-8182LD radio module: Power input, Ground, Audio Input, Audio Output, RSI (Received Signal Indicator, Like COS but with CTCSS or DCS decoded), PTT, Power Down (puts the module into Sleep, Low power consumption, mode), and Transmit and Receive Data lines allowing you to program the frequencies, (receive and transmit are independently programmable) the CTCSS or DCS encode and decode (also independently programmable) and several other features such as Pre/De-emphisis and High and Low pass audio filtering. With a minimum of hardware hassles you can have anything from a custom Handi-Talki to a sophisticated scanner with an auto reply Beacon for your next Arduino or Pi project!

Pin # Name Specs
1 RSI Receive Signal Indicator, Vcc = Active
2 GND Ground
3 AFOut Line Level output, 100 ohm Loaded
4 AFIn Line Input to 100 Ohm Load
5 +V 3.3 - 5.2 VDC @ 500 - 750 mA
6 TXD Transmit Data from Module
7 PD Power Down, GND to PD, Vcc to Operate (Note: Normally pulled to Vcc, Cut PD Jumper to use remotely!)
8 RXD Receive Data to Module
9 PTT Vcc Active
10 GND Ground

Basic Arduino code to program the SA8182LD radio module

Arduino Programming Code For the SA-8182LD Module

Arduino Basic Programming code

  Software serial setup for SA818 Radio Module

 The circuit: 
 * RX is digital pin D10 (connect to TX of SA818)
 * TX is digital pin D11 (connect to RX of SA818)
 * Start the Serial Monitor.
 * A =0 at the end of each line means the command is Ack'd Good.
 * The "\r\n" at the end of the println strings send a Return and Newline to the module. 

 By Ray Congdon, KL7UT 2019 2oolid Telecom
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()  
  // Open serial communications and wait for port to open:
 // while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
 // }


  // set the data rate for the SoftwareSerial port
  mySerial.println("AT+DMOCONNECT\r\n"); //Is module there?
  mySerial.println("AT+DMOSETGROUP=1,446.0250,446.0250,0012,3,0012\r\n"); //Set to Simplex 446.025 MHZ, CTCSS 100.0, Sq=3
  mySerial.println("AT+DMOSETVOLUME=8\r\n"); //Set the volume to "8"
  mySerial.println("AT+SETFILTER=0,1,1\r\n"); //Set Filters to Pre/de=ON, HiPas=Off, LoPass=Off


void loop() // run over and over
  if (mySerial.available())
  if (Serial.available())

Arduino Simple Scanner code

  Simple scanner for the SA8182LD Radio Module

 The circuit: 
 * RX is digital pin D10 (connect to TX of SA818)
 * TX is digital pin D11 (connect to RX of SA818)
 * Start the Serial Monitor.
 * A =0 at the end of each line means the command is Ack'd Good.
 * The "\r\n" at the end of the println strings send a Return and Newline to the module. 

 By Ray Congdon, KL7UT 2019 2oolid Telecom
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()  
  // Open serial communications and wait for port to open:
 // while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
 // }


  // set the data rate for the SoftwareSerial port
  mySerial.println("AT+DMOCONNECT\r\n"); //Is module there?
  mySerial.println("S+446.0000"); //Check 446.0000mHz for a carrier 
  // Module responds:S=0 or 1. 0=carrier Detected, 1=No activity


void loop() // run over and over
  if (mySerial.available())
  if (Serial.available())


  • The information contained in this website is for general information purposes only. The information is provided by 2oolid Telecom and while we endeavor to keep the information up to date and correct, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services, or related graphics contained on the website for any purpose. Any reliance you place on such information is therefore strictly at your own risk.
  • In no event will we be liable for any loss or damage including without limitation, indirect or consequential loss or damage, or any loss or damage whatsoever arising from loss of data or profits arising out of, or in connection with, the use of this website.
  • Through this website you are able to link to other websites which are not under the control of 2oolid Telecom. We have no control over the nature, content and availability of those sites. The inclusion of any links does not necessarily imply a recommendation or endorse the views expressed within them.
  • Every effort is made to keep the website up and running smoothly. However, 2oolid Telecom takes no responsibility for, and will not be liable for, the website being temporarily unavailable due to technical issues beyond our control.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License