Another new radio!

Many years ago when I lived in France I had a Flex-3000 transceiver, one of the first fully SDR transceivers on the market. It was paired with a proprietary Windows XP application called PowerSDR (now Opensource and called Thetis) and connected via a firewire connection.

17 years later I am once again venturing into the world of SDR transceivers in the form of a Hermes Lite 2. (HL2)

The HL2 hardware is available via the Makerfabs website in kit form. I ordered the HL2 motherboard, the N2ADR Filter Board to ensure a clean signal from the transceiver and the enclosure. Total cost for all the parts and shipping was £288.00 including all taxes.

The kit took about 10 or so days to arrive and was very easy to put together making sure to fit the PA transistor heat sink the right way round so that it doesn’t short out the main board. (There are many videos about this on YouTube)

Once the hardware was put together I needed to install some software to control/drive the HL2. Being a heavy weight Linux user my software choice had to come from the Opensource world.

M0AWS Hermes Lite 2 SDR Trasnceiver and Xiegu XPA125B Amplifier
M0AWS Hermes Lite 2 SDR Trasnceiver and Xiegu XPA125B Amplifier

After much research and chatting with other HAMs on the Matrix who have the HL2 I found that most people use the closed source SDR Console software to control the transceiver. Since this software is for Windows it’s not something I can use as I don’t have any Windows PCs, they’re all Linux only.

To this end I started researching Linux SDR software for the HL2 and decided that PiHPSDR was the one I was going to try first.

PiHPSDR was originally written for the RaspberryPi 3/4/5 single board computers (SBCs) but, I wanted to have a go at compiling it on my Kubunu Linux desktop PC. I found it straight forward to follow the instructions in the pihpsdr-install.pdf file and in no time at all I had the software compiled and running.

PiHPSDT running on Kubuntu Linux 22.04LTS
PiHPSDR running on Kubuntu Linux 22.04LTS

PiHPSDR is infinitely configurable and thus it feels like it has an infinite number of menus and options. Since the HL2 has two separate receivers, it’s possible to listen to two bands at the same time. This is the one feature I really missed more than anything with my FTDX10 so, I’m glad to have dual receive capability back once more!

Going through all the settings I realised that the A and B VFOs have individual settings. Initially I setup the software using just VFO A but, when I switched over to VFO B none of my settings were there. I then had the realisation that the settings apply only to the active VFO. I quickly went through all the settings again for VFO B and all was well.

In no time at all I was on the air with just 5w as my Xiegu amp hadn’t arrived. Not being perturbed I tuned up on the 15m band and started searching for stations. Interestingly it was CQWW SSB weekend and the band was full of contest stations. Working my way along the spectrum I found I was able to work quite a few stations with ease using my vertical and inverted-L antennas.

Contacts of note were VE3KG at 3406 Miles, VE3JM at 3382 Miles, RW9DX at 2380 Miles, KC1XX at 3331 Miles and N1DE at 3600 Miles. I also worked a bunch of European stations and had a great time giving away points with my little QRP rig.

Contests are a good time to try out new radios as all the big stations with good ears are on the bands and make the effort to get us QRP guys in their logs.

I have been extremely impressed with the receivers in the HL2 radio. It handles both strong and weak stations exceptionally well. PiHPSDR really does have brick-wall filtering and I was able to work the weaker stations right next to large contest stations with ease. At no time did the front-end of the receiver get overloaded.

Below is a short video clip of a conversation on the 80m band. The band was quite noisy however, with a reduction of the AGC gain and the 2700Hz filter it’s possible to remove almost all the noise.

Hermes Lite 2 SSB reception on the 80m Band

On CW the radio is a real delight. With the filtering and AGC gain control I am able to use extremely narrow receive filters without any ringing whatsoever. I would say that on CW the HL2 is as good as my FTDX10 when it comes to receiving even the weakest of stations.

I’m sure on paper the FTDX10 receiver has better numbers however, to the ear there really is no discernible difference.

Below is a short video clip of D4DX on CW on the 80m band. The band was noisy but, with the 100Hz filter enabled and clever use of the AGC Gain I was able to remove almost all the noise completely, reducing fatigue on the ears and making reception very easy even though there was some fairly deep QSB at times.

Receiving D4DX on CW on the 80m band using 100Hz filter and reduced AGC gain

A few days later my Xiegu XPA125B amplifier arrived. Unfortunately the amp didn’t come with the normal PTT lead that comes from the factory and is detailed in the user manual. For some bizarre reason this is a chargeable option when you buy the amp from Martin Lynch and Sons even though it is included from the factory.

This meant I had to make a lead which was a problem as I didn’t have one of the mini DIN plugs required for the connection to the amplifier. Jumping onto Amazon I ordered a packet of two and sat back and waited for their arrival.

A couple of days later the DIN plugs arrived and I quickly made up the necessary phono/RCA to mini DIN lead and got the amp operational.

The Xiegu XPA125B isn’t cheap but, it’s a really nice bit of kit. The neat little LCD display keeps you informed of power O/P, I/P and O/P SWR, voltage, current draw, temperature and band selected.

With just 0.7w of input from the HL2 I’m able to get a full 100w O/P from the amp. On the lower bands I have to reduce the O/P from the Hermes Lite 2 even further so that I don’t over drive the amp.

Being an avid Short Wave Listener (SWL) I wanted to see how the HL2 performed when listening to the big AM broadcast stations. To my surprise it makes an excellent SWL receiver with better AM demodulation than many of the more expensive radios. Having the option to select receive filters up to 16Khz wide I found I was able to get the best audio possible from many of the broadcast stations including Radio Caroline on 648Khz. It’s quite an improvement over the 12Khz maximum on the FTDX10.

Listening to AM Broadcast stations

What makes this project even more exciting is that both the hardware and software are from the OpenHardware/OpenSource world. The complete circuit diagram, PCB layout and information is available for all to download, something you don’t often see these days!

PiHPSDR is one of the nicest SDR applications I’ve seen in the Linux world and even comes with a 200 page downloadable user manual. Something you don’t see in many Opensource projects. The source code for the application is downloadable and you are able to make your own changes to it without restriction.

Overall I am really pleased with the Hermes Lite 2 SDR transceiver.
It has two excellent receivers, is infinitely configurable via the PiHPSDR software and performs extremely well under all conditions. Since getting the radio I haven’t even switched on the FTDX10.

More soon …

AllStarLink Control Dashboard v2.0

I recently updated my Node-RED AllStarLink Control Dashboard to v1.2 to squash a few bugs with the help of Steve, M0XVT who did a lot of testing for me. This spurred me on to get v2.0 completed, tested and released into the wild.

M0AWS AllStarLink Control Dashboard Menu View
M0AWS AllStarLink Control Dashboard v2.0

v2.0 comes with a bunch of new functionality that I think many will find useful. I’ve added a Manual Node Connect section that provides the functionality to enter a node number and connect to it, something I wanted to have from the outset but, saved for the second release.

M0AWS AllStarLink Control Dashboard Manual Node Connect View
M0AWS AllStarLink Control Dashboard v2.0 Manual Node Connect View

I’ve also updated the the Hubs/Repeaters section so that it provides better global coverage of the AllStarLink network with new nodes in Australia, South Africa and the USA added to the default set.

M0AWS AllStarLink Control Dashboard Hubs/Repeaters View
M0AWS AllStarLink Control Dashboard v2.0 Hubs/Repeaters View

In the Personal Nodes section of the app I’ve added my own node so, if you do download the app and use it, please connect to my node and say hello! I’d love to hear from people that are using the app and get your feedback.

M0AWS AllStarLink Control Dashboard Personal Nodes View
M0AWS AllStarLink Control Dashboard v2.0 Personal Nodes View

In the Test Nodes section there are now two parrot nodes for audio testing. iParrott is still my favourite however, I’ve also added the HubNet parrot as a second option.

M0AWS AllStarLink Control Dashboard Test Nodes View
M0AWS AllStarLink Control Dashboard v2.0 Test Nodes View

There’s now a new ASL Information section that provides direct access to the network bubble map for your node, a keyed nodes list (Useful for finding nodes that are being used right now), an Active Nodes List and the Full Nodes List for the ASL network. Having access to this information means there really is no need to access Allmon/Supermon to find this information as it’s all available via the app.

M0AWS AllStarLink Control Dashboard ASL Information View
M0AWS AllStarLink Control Dashboard v2.0 Information View

Finally, the Manage Node section of the app also gets an update with the addition of a Disconnect All Nodes button. This comes in handy when you’re connected to a bunch of nodes and need to clear down quickly.

M0AWS AllStarLink Control Dashboard Manage Node View
M0AWS AllStarLink Control Dashboard v2.0 Manage Node View

As you can see there’s been quite a few changes to the app providing some new functionality whilst updating the previous version to make it even more useful. You can download the AllStarLink Control Dashboard v2.0 flow below.

To import the flow, open the Node-RED flow editor and import the flow from the burger menu. Once imported, double click the Get ASL Node Number node at the top of the flow, delete the credentials and then create new credentials for connecting to your RaspberryPi/SHARI AllStarLink node. Then go to each blue BigSSH Node in the flow and select your new credentials entry in the drop down list. Once this is done deploy the flow and you’re ready to go.

Note: If you have a v1.x version of the app already running you will need to either delete the flow or disable it by disabling all the trigger (inject) nodes and deploying so that the old and new apps aren’t trying to control the ASL node at the same time.

For more detailed information on how to deploy the app (v1.x/v2.0) from scratch please see my original article for the v1.0 deployment as it covers everything you will need to know.

Thanks to Steve, M0XVT for his help testing v2.0 of the AllStarLink Control Dashboard and getting it out into the wild so quickly.

More soon …

AllStarLink Control Dashboard v1.2 update

I’ve been working on squashing some bugs in my Node-RED AllStarLink Control Dashboard with the help of Steve, M0XVT which has resulted in a new version of the flow now being available for download below.

If you’re reading this and aren’t too sure what it is all about then, have a look at my original article detailing the Node-RED AllStarLink Control Dashboard that I developed and wrote about back in September 2024 and hopefully it’ll all make sense.

This new version of the flow resolves an issue whereby the dashboard used an incorrect node number for the node it connects to resulting in it not working unless a piece of code was changed. The update was a simple change to add a couple of nodes that connect to the RaspberryPi and read the Asterisk/AllStarLink node number from the asterisk configuration files at startup.

Node-RED AllStarLink Control Dashboard v1.2 additional sub flow
Node-RED AllStarLink Control Dashboard v1.2 additional sub flow

I also fixed another bug whereby the buttons could show a false connect on a button when the user connects to another node via AllMon2/Supermon instead.

This flow no longer has the blue spare button as it now connects to a node in Melbourne Australia.

Node-RED AllStarLink Control Dashboard v1.2
Node-RED AllStarLink Control Dashboard v1.2

You can download the new, v1.2 updated flow below and import it to your Node-RED flow editor using the standard import tool from the burger menu in the flow editor.


Huge thank you to Steve, M0XVT for his patience and testing skills during the debugging and testing of the fixes to the flow.

More soon …

AllStarLink Control Dashboard

Ever since I built my RaspberryPi/SHARI AllStarLink node I’ve had to manage connecting/disconnecting to/from other nodes using the Allmon2 or Supermon web admin interfaces. These work fairly well albeit, a bit clunky and buggy. It’s impossible to use from a mobile device though and so I have to get my Macbook out each time I want to connect/disconnect nodes.

Being a Node-RED fanatic I decided that I should put something together that was more portable, mobile friendly and much easier to use. A simple user interface is all that is required and can be achieved very easily using the standard Node-RED dashboard nodes.

Initially I started investigating the Linux command-line interface for Asterisk, the VOIP system that underpins AllStarLink (ASL). I very quickly discovered that the ASL node can be very easily controlled directly from the command-line and that this would be an ideal interface to use to enable node management via a Node-RED dashboard.

In very little time at all I had an experimental control dashboard working with the ASL node and was able to connect/disconnect to/from a single node. All that was required now was to extend this so that I could connect to a number of nodes with nothing more than a push of a button.

AllStarLink Control Dashboard - Node-RED Flow
Completed v1.0 AllStarLink Control Dashboard – Node-RED Flow

The resultant flow consists of 3 sections, Connect/Disconnect Main Flow, Manage Node Subflow and /var/log/asterisk/connectlog Subflow.

The Connect/Disconnect Main Flow handles all the input from the buttons on the dashboard and the communication to the underlying Asterisk VOIP system.

The button status is denoted by 3 colours, green (Ready to connect), orange (Transitioning to/from connect) and red (Connected). Each button is updated automatically by the button refresh function that is triggered every 2 seconds.

The Manage Node Subflow provides a simple interface to restart the Asterisk VOIP system, reboot the RaspberryPi and shutdown the RaspberryPi. The node status is automatically updated every 45 seconds and will show when the Asterisk subsystem is being restarted or the node is being rebooted or shutdown.

Finally the var/log/asterisk/connectlog Subflow monitors the Asterisk connectlog looking for connect/disconnect messages so that it can signal to update each button status.

Node-RED AllStarLink Dashboard
Node-RED AllStarLink Dashboard

Each section of the dashboard can be collapsed/opened by touching/clicking the little blue arrows on the right of the dashboard. The dashboard works fine on Android, iOS, Windows, MacOS and Linux.

If you’re not familiar with Node-RED and haven’t yet installed it to your PC, take a look at the Node-RED Getting Started Page. The information takes you through installing Node-RED onto a multitude of devices including PC and RaspberryPi devices.

Once you have Node-RED installed all you need to do is download the AllStarLink Control Dashboard Flow and import it to your Node-RED flow editor.

Note: The link above is now for v1.2 of the flow which includes some critical bug fixes. You can read about the bug fixes in the v1.2 release article.

Once downloaded, select Import from the burger menu icon on the right-hand side of the flow editor as shown below and import the flow file.

Node-RED Flow Editor import Menu Item
Node-RED Flow Editor import Menu Item

Once imported you will find that some of the nodes in the flow are not available. This is because you need to add them to the flow editor palette before being able to deploy the flow.

Drop down the same menu as shown above but, this time select Manage Palette. This will open another window where you will need to select the Install tab as shown below.

Node-RED Flow Editor Palette Install Tab
Node-RED Flow Editor Palette Install Tab

You need to install two node sets to complete the flow, node-red-contrib-bigssh and node-red-dashboard. Type in the name of each package one at a time in the search bar and then click the Install button.
Once the two packages are installed you then need to configure the credentials for logging into your RaspberryPi. This is simply done by double clicking the blue Send Command to ASL node at the top of the main flow and then clicking the Pencil button at the end of the Credentials field. This will open another window where you will need to type in the IP Address of your ASL RaspberryPi into the Host field, then enter 22 into the port field, add repeater into the Username field (repeater is the default username, if you have changed this then you will need to add the new username name in instead) and then the password associated with the repeater login into the Password field. (Normally allstarlink)

Once this is done, do the same on the other blue nodes, namely “Get Node Uptime“, “Command =>> RaspberryPi” and “Tail ConnectLog”.

The final thing to setup is the dashboard size. Click on the downward pointing triangle at the top right of the menu bar (under the burger menu) and select dashboard. Check that the sizes are set the same as in the image below. For some reason, these settings aren’t always imported (Possible bug?) so, if your dashboard layout isn’t like shown above it will be because these settings failed to import.

ASL Dashboard Settings
ASL Dashboard Settings

You are now ready to deploy your AllStarLink Control Dashboard!
Press the red Deploy button at the top of the flow editor window.

To access the dashboard from any device, open your favourite web browser and enter the following URL: http://IP-Address-of-Node-RED-Computer:1880/ui

Finally, if you want to change the nodes that each button connects/disconnects you will need to edit the set flow var’s function at the top of the main flow. All you will need to do is replace the existing node numbers taking care not to alter the rest of the code in any way otherwise, it could stop the flow from working.

Once you’ve edited the node numbers, double click on the associated button node and change its Label to show the new node name.

Once your changes are complete, Deploy the flow again and your changes will be live.

This is version 1 of the ASL Dashboard, I already have ideas for version 2 that will also have the ability to enter a node number into a field and connect to it without the need to program it into a button.

More soon …

Testing the Node-RED AllStarLink Dashboard

Coding of version 1 of the AllStarLink Dashboard is now complete and in the final testing phase. Below is a short video clip showing some of the functionality.

The Node-RED flow for the web app is pretty compact and easy to alter should I add more functionality in the future.

M0AWS Node-RED flow for the AllStarLink Node Dashboard
M0AWS Node-RED flow for the AllStarLink Node Dashboard

The dashboard is designed such that it’ll display nicely on mobile phones, tablets and desktop computers so, I can easily control my AllStarLink SHARI node from any of my devices around the house.

I’ll put together a more detailed article on the web app once testing is complete and it’s ready to be released into the wild.

More soon …

Add Node Names to SHARI AllstarLink Announcements

This is more of an aide memoire for myself more than anything but, may be useful to anyone who is using a SHARI powered AllStarLink node.

Out the box the SHARI build as documented here and here uses node numbers in announcements when connecting/disconnecting. The information in this article will change this so that the announcements use the node callsigns instead of node numbers.

As user repeater, login to the RaspberryPi that the SHARI is connected too via SSH and make the following changes:

1: Using your favourite command line text editor, edit /usr/sbin/write-node-callsigns and change SRCDIR to point to /var/www/html/allmon2

# 28/08/24 - M0AWS - Changed path to point to allmon2
##SRCDIR=/var/www/html/allmon
SRCDIR=/var/www/html/allmon2

2: Copy the astb.txt file into the necessary directory:

sudo cp /var/hdd.log/asterisk/astdb.txt /var/www/html/allmon2

3: Run the programme to create the sound files. (This will run for some time on a RaspberryPi 3b)

sudo /usr/sbin/write-node-callsigns

4: Once all the sounds files have been created, connect to another node and you should now get node name announcements instead of node numbers ….

More soon …

Automated RaspberryPi/SHARI Node Build

NOTE: The info in this article is out of date and does not work with the latest version of AllStarLink. The Debian O/S it is based on is no longer in support.

After writing my article on how to build an AllStarLink node using a RaspberryPi 3b and SHARI radio device I was asked by a few people if I could possibly automate the process to make it easier for those who aren’t Linux command line junkies like me.

Over the last couple of days in-between doing other things I’ve been writing and testing a BASH shell script that will completely configure a fully working AllStarLink node.

M0AWS - Coding the BASH script for the automated AllStarLink installation
M0AWS – Coding the BASH script for the automated AllStarLink installation

To use the script you must already have your RaspberryPi (preferably a Pi 3b) connected to your LAN with full internet access using the Raspbian based version of the AllStarLink software downloadable from here.

The specific version I use is:

asl-2.0.0-beta.6-kc1kcc-20210324-rpi-armhf

I have tested the BASH script using this specific version of O/S only.

Once your RaspberryPi 3b is up and running, has full internet access and is accessible on your local LAN, using SSH login in as the user ‘repeater‘ using the password ‘allstarlink‘.

It’s important you only use this login to configure the node as this is the user the script is expecting to be run by. You must login via SSH as the SHARI device needs to be connected to the RaspberryPi 3b and you won’t be able to connect a keyboard and mouse at the same time. (If you are using two USB cables for the SHARI device then you can use a keyboard and mouse along with a monitor attached to your RaspberryPi instead of using SSH).

Once logged in as user repeater run the following wget command to download the zipped install script:

wget https://m0aws.co.uk/AllStarLink/AllStarLinkBuild.zip

Once downloaded you need to unzip the program from the zip file and make it executable using the following commands:

unzip ./AllStarLinkBuild.zip
chmod 755 ./install.sh

You are now ready to build your AllStarLink node. Before you run the script make sure you have your node number and node secret to hand. These are obtained from the AllStarLink portal.

Once you’ve got all your node information you can run the script using the following command:

./install.sh

The script will now take you through the full process of updating the operating system as necessary, installing all the required packages and software. It will then reboot the RaspberryPi and you will need to login and run the script a second time using the command above.

On the second run the script will install some python specific software, ask you to enter your callsign, node number and node secret and will then configure your node. The last thing it does is configure the Allmon2 and Supermon Web Admin websites. During this process it will ask you to enter a password twice for the Admin user for the two websites, make sure you make a note of this password as you will need it to login and control your node.

Once the node is configured it will be rebooted and you will then be able to connect to your node using your favourite web browser and the user admin and the password you set above.

To access the Allmon2 web-admin system use the following URL:

http://your-RaspberryPi-IP-Address/allmon2
M0AWS - Allmon2 WebAdmin interface
M0AWS – Allmon2 WebAdmin interface

For those of you who prefer Supermon you an use the following URL:

http://your-RaspberryPi-IP-Address/supermon
M0AWS - Supermon Web Admin view
M0AWS – Supermon Web Admin view

I have also pre-populated the Favorites button with a list of nodes that I use often. You can easily change these entries by editing the favorites.ini file in the /var/www/html/supermon directory as user root.

M0AWS - Supermon pre-populated Favourites drop down list
M0AWS – Supermon pre-populated Favourites drop down list

When you first login to your node via your web browser you’ll notice that it says your node isn’t in the database. You can update the database by using the following URL in your web browser:

http://your-RaspberryPi-IP-Address/allmon2/astdb.php

This will force an update of the database and your node information should now be displayed correctly.

Hopefully this will make it much easier for the non Linux people to build an AllStarLink node using a RaspberryPi 3b and a SHARI radio device.

More soon …

Venturing into the world of AllStarLink

Please note: This build is now deprecated and will no longer work. Please use the new AllStarLink 3 build process as documented on the AllStarLink website.

We’ve recently added a new room to the Matrix HAM Radio Space for Digital Voice modes as this was an area of interest that didn’t really fit into any of the other rooms.

The new Digital Voice room has attracted a lot of attention from members, with a lot of the focus being on the AllStarLink system. Michael, DK1MI built an AllStarLink node in the cloud for us all to use for Matrix Nets and so I decided I had to get in on the fun.

The Jumbospot SHARI SA818 Amateur Radio AllStarLink Radio Interface was originally designed by N8AR and implements a RaspberryPi 2/3/4 hosted AllStarLink node using a NiceRF SA818 embedded VHF/UHF radio module and sound card.

The two USB connectors on the SHARI device are position such that they plug into two of the available 4 USB ports on the RaspberryPi without the need for cables. This keeps the whole solution together in one neat package.

Before you start you will need to obtain a node number and secret (password) from the AllStarLink Portal. To get this you will need to provide proof to the AllStarLink administrators that you are a licensed Amateur Radio (HAM) operator. This is done by uploading a copy of the first page of your HAM licence to the website for the admin team to check. This can take 24hrs to be completed so make sure you get this all done before trying to build your node. You cannot build a node successfully without a node number and secret.

Of course you will also need a transceiver that can operate on the 438.800Mhz frequency or other frequency of your choice on the 2m or 70cm HAM band.

You will also need to open port 4569 on your internet router and setup port forwarding to the IP Address that you will be using on your RaspberryPi node. It’s important to use a static IP Address on your RaspberryPi.

There are quite a few different Linux based operating system (O/S) images that are available for the RaspberryPi devices that have been specifically tailored for the AllStarLink node and include all the necessary software and library packages out the box.

I decided to use the Raspbian GNU/Linux 10 (buster) based distribution as it is based on the very stable and reliable Debian Linux distro. You can download the exact version I am using from the Raspbian link above or directly from my website here.

Once downloaded you need to burn the ISO image onto a suitable SD card for your RaspberryPi. I use BalenaEtcher as it’s extremely quick and reliable at burning ISO images to SD cards.

Of course if you are a hardline Linux command line junkie you can always use dd to create the SD card.

Once you’ve got your O/S onto your SD card, slot it into your RaspberryPi making sure your SHARI device is connected to the two USB ports and then power it up. Make sure you have a good PSU for the RaspberryPi as the two devices together draw around 3A of current during the transmit cycle. (I use a 3.6A PSU from Amazon).

The default login for the Raspbian O/S is shown below. Login via SSH and configure your RaspberryPi for your local network. It’s important to use a static IP Address configured either directly on the RaspberryPi or via DHCP in your router.

Login: repeater
Passsword: allstarlink
SSH port: 22

Once you have your RaspberryPi connected to your LAN you are ready to start configuring it for AllStarLink.

The first thing you need to do is login to the raspi via SSH and then become root user using sudo as shown below:

sudo su -

Once you are root user, you need to add the AllStarLink repo to the sources file and update the operating system using the following command:

curl -s http://apt.allstarlink.org/repos/repo_signing.key | apt-key add
apt update --allow-releaseinfo-change
apt dist-upgrade

Copy and paste each line one at a time into your terminal. Once the last command finishes, the system is up to date and can be rebooted as follows:

reboot

Once the raspi has rebooted, login again via SSH as user repeater and then become root user again.

You now need to install a couple of Python components that are required by the system to function. Use the commands below as user root:

apt-get install python3-dev python3-pip
pip3 install pyserial

Next you need to change directory into the asterisk config file directory using the command shown below:

cd /etc/asterisk

In this directory you will find all the default config files that come as part of the distro. For this build we’re not going to use them and so we need to move them out of the way ready for a set of config files that have already been configured correctly.

Using the following commands create a new directory, move into that new directory and then move all the unwanted configuration files into it:

mkdir ORIGINAL-CONF-FILES
cd ./ORIGINAL-CONF-FILES
mv ../*.conf ./
ls -la
cd ../

You should now be back in the /etc/asterisk directory which will now be empty apart from the custom directory which we left in place.

You now need to copy the correctly configured configuration files into the /etc/asterisk directory. Start by downloading the zip file containing the new configuration files

Download removed as deprecated.

Once downloaded, copy the .zip file into the repeater users home directory (/home/repeater) using either scp on the Linux command line or if using Windows you can use the FileZilla Client in SFTP mode using the login details above.

Once you have the .zip file in the repeater user’s home directory you need to copy the file into the /etc/asterisk directory as user root:

cp /home/repeater/AllStarLink-Config-v3.zip /etc/asterisk/

Next as user root, change directory into the /etc/asterisk directory and unzip the .zip file:

cd /etc/asterisk
unzip ./AllStarLink-Config-v3.zip

Once the file is unzipped you will have a directory called AllStarLink-Config in the /etc/asterisk directory. You now need to cd into the directory, copy all the files out of it into the /etc/asterisk directory leaving a copy in the AllStarLink-Config directory for future reference:

cd /etc/asterisk/AllStarLink-Config
cp ./* /etc/asterisk
cd /etc/asterisk

You now need to move a couple of files into the repeater users home directory using the following commands:

mv ./SA818-running.py /home/repeater
mv ./gpio /home/repeater

Once the files have been moved you need to set the correct ownership and privileges on the files using the following commands:

chown -R root:root /etc/asterisk/*.conf
chown repeater:repeater /home/repeater/gpio
chown repeater:repeater /home/repeater/SA818-running.py
chmod 755 /home/repeater/gpio
chmod 755 /home/repeater/SA818-running.py

The gpio BASH script and configuration details were supplied by Mark, G1INU in the Digital Voice room on the Matrix. It adds the COS light functionality to the setup. The COS light will now light every time the SA818 hears RF on the input.

The next thing you need to do is configure the SA818 radio device in the SHARI. The script I used was originally from https://wiki.fm-funknetz.de/doku.php?id=fm-funknetz:technik:shari-sa818 all I’ve done is change the entries to switch off CTCSS and change the frequency to 438.800Mhz. Configuring the SA818 is done by running the SA818-running.py Python programme that you moved into the repeater user home directory. Making sure you are still user root, run the following commands:

cd /home/repeater
./SA818-running.py

At this point your SHARI SA818 device will be configured to operate on 438.800Mhz and CTCSS will be disabled.

If you want to change the frequency or enable and set a CTCSS tone to access the node you will need to edit the Python programme using your favourite text editor and change the entries accordingly. Once changed rerun the program as shown above and your SHARI will be reconfigured to your new settings.

Next you need to move the allmon.ini.php file into the correct directory so that it enables access to the Allstar Monitor web page on the device so that you can manage connecting/disconnecting nodes. Use the following commands as user root to achieve this:

cd /etc/asterisk
mv ./allmon.ini.php /var/www/html/allmon2/
chown root:root /var/www/html/allmon2/allmon.ini.php
chmod 644 /var/www/html/allmon2/allmon.ini.php

The allmon.ini.php file needs to have your node name entered into it to work correctly. As user root, change directory and edit the file using your favourite editor.

cd /var/www/html/allmon2

Using your text editor, search for the line starting [XXXXX] and change the XXXXX to your node number. Save the change and exit the file.

At this point you are almost complete, all that is left to do is add your node number and node secret into the appropriate configuration files in the /etc/asterisk directory.

Since I am a Linux command line junkie I use vi to edit all the configuration files on the command line as user root, but you can use any editor of your choice.

cd /etc/asterisk

Start with the extensions.conf file. Search for the line starting with NODE = and delete the XXXXX entry and insert your node number. Save the file and exit it.

Next you need to edit the iax.conf file. This time search for the line starting with
register= and change the XXXXX for your node number and the YYYYYYYYYYYY for your node secret. Be careful not to accidentally delete any other characters in the lines otherwise it will corrupt the configuration file.

In the same file search for the two lines that start with secret = and change the YYYYYYYYYYYY for your node secret. Once you have changed both of the secret entries, save and exit the file.

The final file to edit is the rpt.conf file. Once again open the file using your favourite editor and search for the line starting with XXXXX = radio@127.0.0.1:4569/XXXXX, change the XXXXX entries for your node number making sure not to delete any other characters next to the XXXXX entries.

Further down in the same file there is a line that starts with [XXXXX], once again change the XXXXX for your node number making sure to keep the square brackets at each end of the node number as you edit it.

Finally move down to the very bottom of the file and find the two lines that start with /home/repeater/gpio, once again change the XXXXX entries for your node number.

The final thing to change in the rpt.conf file is to replace my callsign with your own callsign so that the node identifies itself correctly. Scroll through the file until you find the two lines shown below, delete M0AWS and add your own callsign instead making sure you keep all the spaces between words as shown below.

idrecording = |i DE M0AWS
idtalkover = |i DE M0AWS

Once this is done, save and exit the file. At this point your node should be fully configured and will only require a reboot to get it working.

As user root, reboot your raspi using the reboot command.

reboot

Once your raspi comes back online, login using SSH as user repeater and then become root user using the sudo command detailed above.

You now need to create the admin user password for the Allstar Monitor web page on the device. This is done using the following commands as user root:

cd /var/www/html/allmon2
htpasswd -c .htpasswd admin

You will be asked to enter a password twice for the admin user. Make sure you make a note of this user/password as you will need it to login to the web page.

Finally check that the controlpanel.ini.php file is in the /var/www/html/allmon2 directory:

ls -la /var/www/html/allmon2/controlpanel.ini.php

If the file isn’t shown in the directory, enter the following commands to create the file in the correct place as user root and then exit the SSH session:

cd /var/www/html/allmon2
cp ./controlpanel.ini.txt ./controlpanel.ini.php
cd
exit

Once this is done your configuration is complete, logout from the terminal session by entering exit once more and your SSH session will terminate.

Using your favourite web browser enter the IP Address of your raspi into the URL bar as shown below:

http://<Your-Raspi-IP>/allmon2

Note: remove the <> from the URL once you have entered the required information.

Once this is done you should be presented with your node control panel as shown below.

First visit to the AllStar Monitor Web Page
First visit to the AllStar Monitor Web Page

Login using Admin and the password you set above and you are now ready to start using your node.

It’s a good idea to connect to node 55553 which is a parrot test node to check your audio levels. You can do this by entering the node into the field at the top left and pressing the connect button.

M0AWS AllStarLink Node 61928 connected to 55553 Parrot
M0AWS AllStarLink Node 61928 connected to 55553 Parrot

Once connected, tune your radio to 438.800Mhz FM and transmit a test message using your callsign and test123, or something similar. The parrot will then play your recording back to you so that you can hear how you sound. It will also comment on your audio level as to whether it is OK or not.

You are now connected to AllStarLink network and have the world at your finger tips. Below is a small list of nodes in the UK, Australia and America to get you started chatting with other HAMs via your node.

57881	Matrix HAM Radio Space AllStarLink Node (Hosted by Dk1MI)
55553	ASL Parrot for testing
41522	M0HOY HUBNet Manchester, UK
60349	VK6CIA 439.275 Perth, Western Australia
51077	VK6SEG South West Hub B Albany WA
2167	M0JKT FreeSTAR UK HUB 2 freestar.network
53573	NWAG NW AllStar Group Lancashire, UK
27339	East Coast Hub Wilmington NC USA
M0AWS AllStarLink Node 61928 sitting on the equipment rack
M0AWS AllStarLink Node 61928 sitting on the equipment rack

Thanks to Michael, DK1MI for building and hosting the Matrix HAM Radio Space AllStarLink Node (57881) and getting us all started in the world of AllStarLink!

We hope to be having regular Matrix Net’s on the node soon for all Matrix members and visitors. We’ll organise days/times via the Digital Voice room.

More soon …

Building HAM Clock on an old RaspberryPi

I’ve got a couple of old RaspberryPi computers on the shelf in the shack and so decided it was time for me to put one of them to good use. The first model on the shelf is the oldest and is one of the very first RaspberryPi 1 computers that was released. (It’s the one with the yellow analog video signal output on the board!). This particular model is extremely slow but, I hang onto it just as a reminder of the first SBC in the line.

The second one is a RaspberryPi 2, a quad core machine that is only slightly faster than the first model but, it’s powerful enough to run HAM Clock.

It didn’t take long to install a vanilla Raspbian Desktop O/S and get it configured on the local LAN. I installed a few packages that I like to have available on all my Linux machines and then started on the HAM Clock install.

The first thing I needed to do was install the X11 development library that is required to compile the HAM Clock binary. To do this, open a terminal and enter the command below to install the package.

sudo apt install libx11-dev

You will need to type in your password to obtain root privileges to complete the installation process and then wait for the package to be installed.

The HAM Clock source code is available from the HAM Clock Website under the Download tab in .zip format. Once downloaded unzip the file and change directory into the ESPHamClock folder ready to compile the code.

cd ~/Downloads/ESPHamClock

Once in the ESPHamClock directory you can run a command to get details on how to compile the source code.

make help

This will check your system to see what screen resolutions are available and then list out the options available to you for compiling the code as shown below.

The following targets are available (as appropriate for your system)

    hamclock-800x480          X11 GUI desktop version, AKA hamclock
    hamclock-1600x960         X11 GUI desktop version, larger, AKA hamclock-big
    hamclock-2400x1440        X11 GUI desktop version, larger yet
    hamclock-3200x1920        X11 GUI desktop version, huge

    hamclock-web-800x480      web server only (no display)
    hamclock-web-1600x960     web server only (no display), larger
    hamclock-web-2400x1440    web server only (no display), larger yet
    hamclock-web-3200x1920    web server only (no display), huge

    hamclock-fb0-800x480      RPi stand-alone /dev/fb0, AKA hamclock-fb0-small
    hamclock-fb0-1600x960     RPi stand-alone /dev/fb0, larger, AKA hamclock-fb0
    hamclock-fb0-2400x1440    RPi stand-alone /dev/fb0, larger yet
    hamclock-fb0-3200x1920    RPi stand-alone /dev/fb0, huge

For my system 1600×960 was the best option and so I compiled the code using the command as follows.

make hamclock-1600x960

It’s no surprise that it takes a while to compile the code on such a low powered device. I can’t tell you how long exactly as I went and made a brew and did a few other things whilst it was running but, it took a while!

Once the compilation was complete you then need to install the application to your desktop environment and move the binary to the correct directory.

make install

Once the install is complete there should be an icon on the GUI desktop to start the app. If like mine it didn’t create the icon then you can start the HAM Clock by using the following command in the terminal.

/usr/local/bin/hamclock &

The first time you start the app you’ll need to enter your station information, callsign, location etc and then select the settings you want to use. There are 4 pages of options for configuring the app all of which are described in the user documentation.

M0AWS - HAM Clock running on RaspberryPi Computer
M0AWS – HAM Clock running on RaspberryPi Computer

Once the configuration is complete the map will populate with the default panels and data. I tailored my panels to show the items of interest to me namely, POTA, SOTA, International Beacon Project and the ISS space station track. I was hoping to be able to display more than one satellite at a time on the map however, the interface only allows for one bird to be tracked at a time.

You can access the HAM Clock from another computer using a web browser pointed at your RaspberryPi on your local LAN using either the IP address or the hostname of the device.

http://<hostname>:8081/live.html

or

http://<ip-address>:8081/live.html

You can also control the HAM Clock remotely via web browser using a set of web commands that are detailed on port 8080 of the device.

http://<hostname or ip-address>:8080/

M0AWS - HAM Clock remote command set
M0AWS – HAM Clock remote command set

This is a great addition to any HAM shack especially if, like me you have an old HDTV on the wall of the shack that is crying out to display something useful.

More soon …

Loading Meshtastic Firmware onto Heltec ESP32 v3 Devices

The loading of the Meshtastic firmware on the Heltec ESP32 v3 devices is really simple if done via a Linux PC/RaspberryPi. There are of course other ways to load the firmware using a web browser that supports USB/Serial devices and this method is preferred by many however, being a Linux command line junkie I far prefer the simplicity of using the Linux command line to do the job.

So, how much experience with the Linux command line do you need?

In all honesty none at all. If you know how to use copy and paste then all you have to do is follow the simple steps I’ve detailed below. In reality it will only take a few minutes to do so, don’t be put off by the long article, I’ve just tried to cover everything and provide screen shots along the way.

To get started fire up your Linux PC/RaspberryPi and get yourself to the desktop. Next you will need to open a Linux command line terminal. This is often just called “Terminal” on most Linux desktop installations.

The first thing you need to do is check to see if you have python3 installed. This is done using the following command:

python3 --version

Running the above command you should see a result something like what is shown below.

Python3 command showing installed version
Python3 command showing installed version

Next we need to check if pip3 is installed using the following command:

pip3 --version

If pip3 is installed then you should get a result similar to that shown below.

Pip3 command showing installed version
Pip3 command showing installed version

If your computer doesn’t have Python3 or Pip3 installed they can be easily installed from the command line. To install Python3 enter the following command into your terminal:

sudo apt install python3

You will be asked to enter your login password and then the installation will begin. You should see output in your terminal similar to that shown below.

Installing python3
Installing python3

To install Pip3 enter the following command into your terminal:

sudo apt-get install python3-pip

This will detail a long list of packages that will be installed on your computer, Enter Y to answer Yes and let the packages install.

M0AWS - Installing Pip3
M0AWS – Installing Pip3

You will see many messages scroll up the terminal screen such as getting, selecting, preparing, unpacking and setting up, this is all normal.

Once Pip3 is installed you should be dropped back at the command line with a terminal screen that looks something like the one below.

M0AWS - Pip3 install complete
M0AWS – Pip3 install complete

At this point you will now have Python3 and Pip3 available on your computer.

You are now ready to install the tool we are going to use to check your Meshtastic device is connected to your PC and install the firmware to it. (Do not connect your Meshtastic device to your PC just yet!)

Run the following command in your terminal to install the ESP Tool:

pip3 install --upgrade esptool

You will see an output from the installation process similar to that shown below.

M0AWS - Installing the ESP Tool
M0AWS – Installing the ESP Tool

Now that we have the ESP tool installed plug your Meshtastic device into your USB port on your computer and then run the following command to interrogate the device to find out what kind of device it is.

esptool chip_id

You should see the information about your device that looks similar to that shown below. This information should confirm the device type (ESP32) and which USB port it is connected on (/dev/tty/USB0).

M0AWS - Expected output from the ESPTool command showing device information
M0AWS – Expected output from the ESPTool command showing device information

Once you have this information you will need to download the firmware for your device from Github using the following URL:

https://github.com/meshtastic/firmware/releases

At the time of writing this I downloaded and used the v2.2.22.404d firmware which I have found to be extremely reliable.

In your terminal you now need to change directory (cd) into the Downloads directory where your downloaded firmware should be. (If you downloaded your firmware into another directory then you will need to cd into that directory). Use the following command to change directory into the Downloads directory.

cd ~/Downloads

Now we need to find the filename of the firmware we have just downloaded, we can use the list directory contents command to find the file using the simple command below.

ls -la firm*.zip
M0AWS - List firmware file name from the Linux command line
M0AWS – List firmware file name from the Linux command line

In the screenshot above we can see that the filename is called
firmware-2.2.22.404d0dd.zip.
We now need to unzip the file using the unzip command.

unzip firmware-2.2.22.404d0dd.zip

You’ll see lots of output from the unzip command about inflating files etc, this is normal.

Once the file has been unzipped you are ready to load the firmware onto your Heltec device. First you need to find the .bin file for your Heltec device. Use the following ls command to list the files available.

ls -la firmware-heltec*

This will list out all the firmware file options for the Heltec device as shown below.

M0AWS - List of Heltec firmware files
M0AWS – List of Heltec firmware files

The file you need to use for a new firmware installation on a Heltec v3 device is
firmware-heltec-v3-2.2.22.404d0dd.bin. (If you downloaded a different version then the version number in the file will be different).

Using the filename you found above enter the following command into your terminal.

./device-install.sh -f firmware-heltec-v3-2.2.22.404d0dd.bin

This will now clear down your Heltec device and will load the Meshtastic firmware. This will take a little time especially on slower computers like the RaspberryPi so, just let it run until it finishes. Do not interrupt the process whilst it is running.

Installing the Meshtastic firmware onto my Heltec ESP32 v3 using the Python command line tool
Installing the Meshtastic firmware onto my Heltec ESP32 v3 using the Python command line tool

Once the firmware is loaded the Heltec device will reboot and you will see the Meshtastic banner on the OLED screen. Your device is now ready for configuration.

Now that you have Python3 and Pip3 installed you can load the firmware onto other devices just by downloading the firmware and then running the device-install.sh script file, you won’t need to install Python3 or Pip3 again.

If you want to update your device in the future to a newer version of the firmware then just use the update script and update binary file as shown below.

./device-update.sh -f firmware-heltec-v3-2.2.22.404d0dd-update.bin

That’s it, you are now a Linux Command line junkie!

More soon …