css body, p, .post-body { font-family: 'Google Sans Text', sans-serif !important; } /* Apply Google Sans to Post Titles and Headings */ h1, h2, h3, h4, h5, h6, .post-title, .post h2 { font-family: 'Google Sans', sans-serif; font-weight: 500; }
Showing posts with label How to..... Show all posts
Showing posts with label How to..... Show all posts

Wednesday, July 15, 2026

How to automatically Connect and Disconnect an AllStar3 Node to another AllStar Node


Here is a short and easy method on how to connect and disconnect an AllstarLink 3 (ASL 3) node on a schedule.  You need to leverage the ASL3 asterisk CLI tool (asterisk -rx) inside two basic bash scripts. Then, you map those scripts to system execution times using Linux's built-in crontab utility.  

Note:  I know there are more than one way to effect these connections but here I concentrate on the newcomer to Linux and ASL3.

You will create two lightweight bash scripts that sends a command to your local Asterisk instance telling it to connect or disconnect to your target node at specific times.  To instruct  Linux to run the scripts automatically at specific times we will be using the cron tasks scheduler utility.

Let's get started.

Prerequisites: Finding Your Node Numbers

Before starting, write down your two node numbers. You will need them in the steps below:

  1. Your Local Node Number: The number assigned to your physical AllStarLink 3 hotspot or server.

  2. The Target Node Number: The number of the remote node, reflector, or hub you want to connect to.


Step 1: Open Your Node Terminal

  1. Open your terminal program (like PuTTY on Windows, or Terminal on a Mac).

  2. Log into your AllStarLink 3 node using your username and password.

  3. You should see a command prompt waiting for your input (usually ending with a $ sign).


Step 2: Create the Morning Connection Script

We will use a basic text editor inside Linux called nano to create the morning connection command.

  1. Type the following command to create a new file named connect.sh and press Enter:

    bash

    sudo nano connect.sh

  2. A blank screen will open. Copy the text below, but replace <YOUR_NODE> and <TARGET_NODE> with your actual node numbers. Do not include the < > brackets.

    bash

    #!/bin/bash
    /usr/sbin/asterisk -rx "rpt fun <YOUR_NODE> *3<TARGET_NODE>"

    Example of what it should look like if your node is 1234 and the target is 5678: /usr/sbin/asterisk -rx "rpt fun 1234 *35678"

  3. Save and Close the file:

    • Press Ctrl + O on your keyboard (this means "Write Out" / Save).

    • Press Enter to confirm the file name.

    • Press Ctrl + X to exit the text editor and return to the main screen.

  4. Give Permission to Run: Linux blocks files from running automatically until you give them permission. Type this command and press Enter:

    bash

    sudo chmod +x connect.sh


Step 3: Create the Evening Disconnection Script

Now, we will do the exact same thing to create the command that disconnects your node.

  1. Type the following command to create a new file named disconnect.sh and press Enter:

    bash

    sudo nano disconnect.sh

  2. Copy and paste the text below, making the exact same node number replacements as before:

    bash

    #!/bin/bash
    /usr/sbin/asterisk -rx "rpt fun <YOUR_NODE> *1<TARGET_NODE>"

    (Note: The *3 changed to *1, which tells AllStarLink to disconnect instead of connect).

  3. Save and Close the file:

    • Press Ctrl + O

    • Press Enter

    • Press Ctrl + X

  4. Give Permission to Run: Type this command and press Enter:

    bash

    chmod +x disconnect.sh


Step 4: Find Your Secret "Home Path"

Linux needs to know the exact folder path where your scripts live so it can find them later.

  1. Type this command and press Enter:

    bash

    pwd

  2. It will print out a path on your screen. It will look something like /home/admin or /root.

  3. Write this down exactly as it appears. We will use this in the final step.


Step 5: Schedule the Automation (04:00 to 20:00)

We will now use the Linux calendar tool called crontab to schedule your scripts at 04h00 and 20h00.

  1. Type this command to open the scheduler and press Enter:

    bash

    crontab -e

    (If Linux asks you to choose an editor, press 1 and hit Enter to choose nano).

  2. Use the arrow keys on your keyboard to scroll all the way down to the very bottom of the file.

  3. Paste the following two lines at the bottom. Replace /home/yourusername with the exact path you wrote down in Step 4:

    text

    0 4 * * * /home/yourusername/connect.sh >/dev/null 2>&1
    0 20 * * * /home/yourusername/disconnect.sh >/dev/null 2>&1

    • How it works: The 0 4 means Minute 0 of Hour 4 (04h00). The 0 20 means Minute 0 of Hour 20 (20h00 in 24-hour military time).

  4. Save and Close the file:

    • Press Ctrl + O

    • Press Enter

    • Press Ctrl + X

The terminal will say  crontab: installing new crontab

Your node will now automatically connect every morning at 04h00 and cleanly disconnect every evening at 20h00! 

Inside crontab -e , you can also use three-letter text abbreviations instead of numbers for the days of the week if it is easier to remember (e.g., SUN, MON, TUE, WED, THU, FRI, SAT).

For example, a weekend-only entry can look like this:  0 4 * * SAT,SUN

Lets add a bit of "meat" to the above method of connecting and disconnecting an ASL3 Node to another AllStar Node.

An automated system to connect and disconnect specific nodes at different times and days

This step-by-step guide will walk you through setting up an automated system to connect and disconnect specific nodes at different times and days using cron and Bash scripts.

Overview of How It Works

Instead of creating separate files for every single node, we use one connection script and one disconnection script.

We pass the specific node ID (like 49355 or 647030) as an "argument" from the scheduler (cron). The script reads that number, plugs it into your connection command, and executes it.

[cron scheduler] ──(sends node ID)──> [connect.sh] ──> Executed for that node only

Step 1: Create the Automation Scripts

We will place these scripts in a folder called scripts inside your user's home directory.

1. Create the Directory

Open your terminal and run:

Bash

mkdir -p ~/scripts

2. Create the Connection Script

Create and open a new file called connect.sh:

Bash

nano ~/scripts/connect.sh

Paste the following code inside it:

Bash

#!/bin/bash

# 1. Check if the user (or cron) forgot to provide a node number
if [ -z "$1" ]; then
    echo "ERROR: No node specified. Usage: $0 <node_id>"
    exit 1
fi

# 2. Assign the argument to a readable variable
NODE_ID=$1

echo "=========================================="
echo "STARTING CONNECTION: Node $NODE_ID"
echo "Timestamp: $(date)"
echo "=========================================="

# 3. YOUR CONNECTION COMMAND GOES HERE
# Replace the line below with your actual command. 
# Use $NODE_ID wherever the node number needs to go.
echo "Connecting to node $NODE_ID now..."

# Example placeholder (Uncomment and modify if using something like OpenVPN):
# openvpn --config "/home/$USER/vpn/${NODE_ID}.ovpn"

3. Create the Disconnection Script

Create and open a new file called disconnect.sh:

Bash

nano ~/scripts/disconnect.sh

Paste the following code inside it:

Bash

#!/bin/bash

# 1. Check if the user (or cron) forgot to provide a node number
if [ -z "$1" ]; then
    echo "ERROR: No node specified. Usage: $0 <node_id>"
    exit 1
fi

# 2. Assign the argument to a readable variable
NODE_ID=$1

echo "=========================================="
echo "STOPPING CONNECTION: Node $NODE_ID"
echo "Timestamp: $(date)"
echo "=========================================="

# 3. YOUR DISCONNECT COMMAND GOES HERE
# Replace the line below with your actual command.
echo "Disconnecting node $NODE_ID now..."

# Example placeholder:
# killall openvpn

4. Make the Scripts Executable

Linux security requires you to explicitly grant permission for scripts to run. Execute this command in your terminal:

Bash

chmod +x ~/scripts/connect.sh ~/scripts/disconnect.sh

Step 2: Test Your Scripts Manually

Before letting the automation take over, test that the scripts successfully receive your node variables. Run these commands in your terminal:

Bash

~/scripts/connect.sh 49355
~/scripts/disconnect.sh 49355

You should see an output in your terminal confirming it attempted to connect to node 49355.

Step 3: Configure the cron Schedule

cron is the built-in Linux background service that runs tasks at specified times.

1. Open the Cron Editor

Run the following command to edit your personal schedule:

Bash

crontab -e

If it asks you to choose an editor, press 1 for nano (the easiest one).

2. Add Your Node Schedules

Scroll to the very bottom of the file and paste the following lines exactly as shown.

Important: We use ~/scripts/... to point to your home directory, and save logs to your home folder (~/cron_node_...log) to prevent any permission issues.

Code snippet

# ===================================================================
# NODE 49355 SCHEDULE (Fridays)
# ===================================================================
# Connect at 5:00 AM on Friday (Day 5)
0 5 * * 5 /bin/bash /home/USER/scripts/connect.sh 49355 >> /home/USER/cron_49355.log 2>&1

# Disconnect at 8:00 PM (20:00) on Friday (Day 5)
0 20 * * 5 /bin/bash /home/USER/scripts/disconnect.sh 49355 >> /home/USER/cron_49355.log 2>&1


# ===================================================================
# NODE 647030 SCHEDULE (Saturdays)
# ===================================================================
# Connect at 6:00 AM on Saturday (Day 6)
0 6 * * 6 /bin/bash /home/USER/scripts/connect.sh 647030 >> /home/USER/cron_647030.log 2>&1

# Disconnect at 7:00 PM (19:00) on Saturday (Day 6)
0 19 * * 6 /bin/bash /home/USER/scripts/disconnect.sh 647030 >> /home/USER/cron_647030.log 2>&1

3. Critical Adjustment: Fix the Username Path

cron requires absolute system paths to be completely reliable.

  1. In the text you just pasted, look for /home/USER/.

  2. Replace USER with your actual Linux account username. (If your username is johndoe, the path becomes /home/johndoe/scripts/...).

4. Save and Exit

  • If using Nano: Press Ctrl + O then Enter to save.

  • Press Ctrl + X to exit back to the normal terminal.

You should see a message saying: crontab: installing new crontab.

Step 4: Troubleshooting & Monitoring Logs

Because cron tasks run invisibly in the background, the entries above are designed to output everything they do into dedicated text files so you can check on them.

To see if your scripts are running smoothly or to view errors, read your log files using the cat command:

Bash

cat ~/cron_49355.log
cat ~/cron_647030.log

If you ever want to add a third or fourth node in the future, you do not need to modify your scripts at all. Simply open crontab -e again and add two new lines with the new node number and your preferred times.

Comment:  Zayn ZR3VO from Orania is currently using this automated connect and disconnect method and he indicated that it is working well.

Images:  (Click on images for larger view.) 

 

Friday, July 10, 2026

The decline in Amateur Radio during winter is neutralized by creating activity!!


Who said there is a decline in Amateur Radio during the winter months?  I said so.  Look HERE.

My OM had a saying that if a door is closed into your face, you must always find another door to open and continue with what you are doing and enjoying.  This means do not give up and you will be able to continue also in amateur radio.  So true and this saying I have been following throughout the years.  It allowed me to bounce back in life sometimes even with better results than before.

Well amateur radio activity is up here in the Mossel Bay area as well as parts of South Africa.   Let's look at some of the activity by means of illustrated images:  


Image above:  Connected nodes to the ZS1I HUB in Mossel Bay  (Click on image for larger view.)

Image Above:  Bubble Chart of stations connected to the HUB yesterday afternoon.  (Click on image for larger view.

1.  ZS1I HUB Network Activity:  I will let the images speak for themself.  The HUB is alive and active on a daily basis with stations frequently heard also via all the cross-links and connected nodes and repeaters.  A few overseas stations were also heard on the ZS1I HUB Network.  I do not take any credit for this as the network consists of many participating entities.  Great to hear all the activity taking place.

 Image: Some "useless" information? (Click on image for larger view.)

Image:  Winter playing a role in the decline? (Click on image for larger view.)

2.  ZS1I  Amateur Radio Projects / Activities Blog:  This blog is was created in April 2026 and is already being visited by many viewers on a daily basis.  Hopefully the blog is not only my place were I keep some back-up information but also a medium where young and old can learn something.  I am not a person chasing records or wanting any attention in amateur radio.  I am to old for that nonsense.  The Blog for me is like a amateur radio "diary".  Many article might also be bored and not of interest to others.  None the less thank you to all the visitors for visiting the ZS1I Blog.   I hope to keep up rolling articles out that might be of interest to the general amateur radio community. 


Image:  Brandmeister Hoseline  (Click in image for larger view.) 

3.  DMR Activity still on the increase World Wide!  - Need I say anything about the increase in the use of DMR World Wide and in South Africa?   This is great news for amateur radio operators and the future of digital radio modes.  With the cross-linking of analogue systems to digital systems nobody is left out in the cold even if you only have a analogue HT radio.  At times the ZS1I HUB Network is linked to various DMR Talk Groups which resulted in an increase in activity.  The audio is good and the linked systems work great.  Yesterday operators were heard from Germany, Australia, UK, USA, Japan on Hoseline which was cross linked to the ZS1I DMR Bridge and DMR Repeater in Mossel Bay.  And no it was all country talk groups and not the World Wide Talk Group (91).  Great conversations and activity on DMR.  I do have a few ideas and changes that I would like to make to even better the current cross linked system.   Stay tuned!!

 
 
Image: 40 m WSPR Map South Africa (Click in image for larger view.) 

Image:  Stations that spotted the ZS1I 40m WSPR Beacon recently,  thanks to all.  (Click on image for larger view.)

4.  40m WSPR Activity:  WSPR is a great amateur radio propagation tool.  I am amazed on how propagation changes on the 40m band from time to time.  At one stage only a few stations received the 40m ZS1I WSPR Beacon.  Then all of a sudden there was a increase in spotted stations.  I must admit that I have lots to learn about WSPR.  Sure this will come with time.  In the mean time many thanks to all who regularly spot the Mossel Bay WSPR Beacon.  More interesting developments to come relating to WSPR Beacons in the future. 

5.  ZA-Net Network Activity:  For the past few days I have connected the HUB to the ZA-Net Network up in Gauteng.  At times there were activity even from abroad.  The audio quality was good and the network is working great.  Herewith more information about the network:

ZA-Net Network Web-Site:  Click HERE

Wednesday, July 1, 2026

What is happening to Amateur Radio in South Africa and will ET be able to phone home ?


Image:  ET phones home correctly by using good operating procedures  (Click on image for larger view.) 

The title question can be interpreted in two ways.  No need for me to explain.  I am sure that there are many South African Radio Amateurs that love the hobby and some started in the hobby while they were still kids.  On occasion I called the hobby an obsession which is a bit over the top.  But that is how I feel about the best and most versatile hobby in the World.   

However  ......  there are a few things that needs to be rectified or looked at, that is not in line with the Amateur Radio Code of Conduct or that transgress the Radio Act and or Radio Regulations.  I on many occasions have said that I am not a "policeman" and has no authority to take any action to rectify any transgressions.  I can however voice my dissatisfaction about a few transgressions as the amateur radio hobby is / should be a self regulating hobby without the need for the authorities to intervene.  

The incidents / transgressions that I am going to mention here is really damaging the image of the hobby and I am sure that this is not what we want to observe and hear about amateur radio.  Be as it may I need to get the following off my chest:

  • Blatant transgression of call signs on the air  -  Have you heard the following:  "1I good afternoon."  1I is not a call sign.  The correct use of the call sign must be "ZS1I good afternoon".  The abbreviation of a call sign is a transgression of the radio regulations.
  • Another transgression is when an operator calls in as "Tobie from Put-Sonder-Water, good afternoon".  Where is the call sign and who is Tobie ..... a pirate?  Even if you know the voice and the person why does he not provide his call sign when he break into / join a conversation.  At least everybody on the air will from the on-set know who Tobie is!
  • The following example in my opinion is rude and I will not even try to join the conversation.  The following happens on many bands.  Right off the bat is HF.  Two friends are chatting and a third and fourth wants to join but the two operators leave no gap for anybody to join.  They just carry on talking.  Yes I know about conditions etc. but this also happens on the VHF / UHF bands and repeaters.  This is not in line with the Amateur Radio Code of Conduct.
  • Since when is a cellphone call more important than an amateur radio conversation.  Have your heard the following:   "Just stand by I have a phone call."  Half an hour later the receiver of the phone call returns and expect to chat further.   This happens many times.  Switch you phone off or do not join a conversation if you expect a call on the cellphone.  Why can you not later return the cellphone call after you ended the QSO?  I have been left in the cold on many occasions and do not "come back" when the "offender" returns.  In my opinion this is out-rite rude conduct.
  • "Kerchunking ..... Kerchunking!!   Need I say anything more about kerchunking a repeater?  What is so difficult to say "ZS1I testing / monitoring the 145.775 Mhz repeater"?   On several occasions I have heard somebody responding to a Kerchunker,  friendly reminding him to provide a call sign but not providing his own call sign on the air.
  • Amateur Radio has a few musicians on the air as well.  They love to play courtesy, sirens and other tones on the air.  Sir / Madam your tones are a nuisance and serve no purpose at all.  You can still use your DTMF tones by setting it up not to be heard on-air via a node etc.  Nowadays there is no need to hear any tones on the air.  There are other ways to do it correctly.
  • CB slang and jargon!!  I also started off in CB many years ago when CB radio just started to become popular.  Please refrain from using CB slang or jargon in Amateur Radio.   I hear many operators in amateur radio talking the talk of CB.  If you want to use slang or jargon use your CB radio for that purpose.
  • Another irritating practice is when a station is talking or busy to hand over to another station and someone makes a comment over a person or in between rounds without providing his call-sign.   Why can this person not wait until it is his / her time (over) to speak.  This practice in my eyes is causing deliberate interference on the air.  Is this a practice that was used by rogue CB operators?  

I have only mentioned a few irritating transgressions which also contravene the Amateur Radio Code of Conduct.  I am sure that you can think and add more ugly "habits" that is not mentioned in this article.

Ask any older radio amateur that has been a radio amateur for many years and he or she will be able to confirm that this is not the way to operate an amateur radio station.  Yes, some of the older operators are also at fault and I do not point finger to any generation in this regard.

If the above transgressions / ugly trends continues it will damage the image of amateur radio and also chase many away from this wonderful hobby which we cannot afford under any circumstances.  

The South African Radio League Web Site provides value information on Ethics and Operating Procedure for the Radio-Amateur made available by the IARU,  Click  HERE to view.

Good operating procedures should and must always be our first priority in amateur radio otherwise ET will not be able to phone home!  👌😢 

 

Thursday, June 25, 2026

Another way to use Digital Radio Modes if you do not have an RF Radio = VoxDMR (Part 3)


What is VoxDMR?   The short explanation is that it is a free app for Android, Windows and Linux that will allow you to get on DMR without a radio.

The longer explanation is:

VoxDMR is a free, hotspot-less Digital Mobile Radio (DMR) software client that allows licensed amateur radio operators to connect directly to DMR networks without a physical transceiver or hardware hotspot. Developed by J. Calado, the application runs on Android, Windows, and Linux platforms, transmitting digital voice directly over the internet. 

Core Mechanics & Features
VoxDMR works similarly to older software clients like DroidStar but offers a refreshed user interface and modern protocol features. 
  • Protocol Integration: It utilizes the Rewind protocol to establish direct communication links with master servers.
  • Network Support: Licensed hams can communicate across multiple major networks including BrandMeister, TGIF, DMR+, and FreeSTAR.
  • Audio Encoding: Uses software-based AMBE+2 vocoder technology to compress, process, and clean real-time digital voice audio.
  • Hardware Compatibility: It supports dedicated Android network radios (such as the Inrico S200 and T320) by mapping physical Push-To-Talk (PTT) side buttons. 

Step-by-Step Configuration Strategy
To activate and use VoxDMR, operators must possess a valid amateur radio license, an active DMR ID, and network access passwords. 
1. Software Installation
  • Android: Download the app via the Google Play Store or obtain the official APK release from the VoxDMR GitHub Repository.
  • Windows: Install using the standard installer package from the Official VoxDMR Webpage or execute the command winget install jcalado.VoxDMR in the Windows Terminal.
  • Linux: Deploy the native Linux package provided on the official software main page. 
2. Vocoder Setup
Upon the first launch on your device, download and initialize the digital vocoder file inside the application menu to activate audio processing. 
3. Server Registration 
  • Open the connections profile menu by tapping the three-line configuration menu icon. 
  • Create a new connection profile and populate the mandatory identity fields:
    • Call Sign (e.g., ZS1I)
    • Radio ID / DMR ID
    • Hotspot / Security Password (configured beforehand in your Self-Care dashboard on BrandMeister or TGIF). 
  • Select your exact target server location (e.g., BrandMeister UK, TGIF United States) from the dropdown menu and hit save. 
4. Initiating Contact
Tap the profile to connect. A green visual indicator confirms a successful connection. Once connected, input your desired Talk Group (TG) number or select a group from your favorites list to start monitoring or transmitting audio.
 
Web-site - VoxDMR = Click HERE 
Setup guide available HERE 
Here you will find everything you need to successfully install VoxDMR and also use the application.  No need for me to explain how to install and operate the software.

Images:  Click on the images for larger view. 














ZS1I 40m WSPR Beacon is reeling in stations never spotted before in the Southern Cape

The ZS1I 40m WSPR Beacon is alive with stations never spotted before in the Southern Cape at the QTH of ZS1I.  This is great news and I wond...