[Android] Setting up a Ham Radio hotspot in the cloud (or Raspberry Pi) and accessing it with DVSwitch Mobile

There are times when you can’t always have your HT and/or hotspot with you but you want to stay in contact with a certain talk group or club.

For Android users, it’s pretty easy to setup a hotspot in the cloud or a Rasperry Pi at home and use DVSwitch Mobile to access any of the digital modes. Note: I only set mine up for DMR.

Update 11/6/2020:
The DVSwitch group now has a image and install instructions:
All Modes (Raspberry Pi): InstallGuide

These are the manual instructions but you must follow them to the letter or you may not get audio in one or both directions:

DMR & YSF (cloud): Install Guide

While these instruction are for a Raspberry Pi the only modification I had to make for Ubuntu was change the lines that called for .armhf to .amd64. Also, be careful with copy and pasting from the PDF sometimes it adds a space in some links and they didn’t actually work so watch the screen after you do something. Give me a shout if you need help.

IRLP.StationTracking

IRLP.StationTracking gives you ability to get email notifications about status changes of your favorite IRLP stations.
The program reads data from this site: http://status.irlp.net/index.php?PSTART=9

Contact me if you have feature request or use Git and create your enhancements and merge them back in.

I recommend using Windows Task Scheduler to kick the program off on about a 5-10 minute interval.

Once you download, edit the .config file that’s along side the executable as needed (you won’t need to copy the config on future releases unless there is a structure change).
There are comments in the file that tells you how to format the entries. Here is the example file:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
    <appSettings>
        <!--use commas with no spaces to add more-->
        <add key="Callsigns" value="KV4S"/>
        <!--"Y" or "N" values-->
        <!--If you run this as a job or don't need to see the output then make Unattended Yes-->
        <add key="Unattended" value="N"/>
        <add key="EmailError" value="Y"/>
        <add key="StatusEmails" value="Y"/>

      <!--Email Parameters - Gmail example-->
      <dd key="EmailFrom" value="example@gmail.com"/>
      <add key="SMTPHost" value="smtp.gmail.com"/>
      <add key="SMTPPort" value="587"/>
      <add key="SMTPUser" value="example@gmail.com"/>
      <add key="SMTPPassword" value="Password"/>
    </appSettings>
</configuration>

DMR.UserDB.RadioConverter

https://github.com/Russell-KV4S/DMR.UserDB.RadioConverter


DMR.UserDB.RadioConverter is an application to download the DMR User Database from RadioID.net and Convert it to a CSV file for import into a DMR Radio.

Contact me if you would like to add more and have the file specs or use Git and create your own and merge them back in.

Other than simply executing the Application you can control what CSV files are created for the type(s) of radio you have. Simple edit the .config file located with the executable and use Y/N to manipulate the application.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
  <appSettings>
    <add key="URL" value="https://www.radioid.net/static/users.json"/>
    <!--Set this to "Y" if you are scheduling this to run and don't need the console window to stay open.-->
    <add key="Unattended" value="N"/>
    <!--Y/N value only-->
    <add key="AnyTone" value="Y"/>
    <add key="TYT-UV" value="Y"/>
    <!--Manually filter your csv to just under 10k until I or someone builds something for filtering.-->
    <add key="GD-77" value="Y"/>
  </appSettings>
</configuration>

Since this is a console application you can use Windows Task Scheduler to run this in the backgroud on a schedule of your choosing.

The CSV files are writen to the same location as the executable named:

AnyTone_Users.csv
GD-77_Users.csv
TYT-UV_Users.csv

Use your radios CPS to import and write to your radio.

My 20th Amateur Radio Anniversary

January 21st 2019 marked my 20th year in Amateur Radio!

My interest in Amateur Radio started years before. I had got a police scanner for Christmas one year. Before I had a list of stuff to program i hit search just to see what i could hear. The first thing it picked up was the 145.350 KX4I repeater in Tuscaloosa, of coarse at the time i had not clue what it was. I just hear people chit chatting on there. Over the next few months i continued to listen and learned quite a bit from the hams that talked on that repeater.

I found other repeaters to listen to over time time and had a great time. I also found out I had a relative who was a Ham and I got up with him to find out more about the hobby. Leland Hartley WR4O, came to visit and he showed me his 2 meter radio. He had a custom mic on it that was a an old style Telephone handle that had a PTT on the hand grip. I was fascinated.

I still didn’t get my license right away. I don’t really remember any specific reason that made me start wanting my license after so many years of listening.

It wasn’t until I had completed a year of college. I had just finished a fall semester of 1998 and was going to have a few weeks off when I started studying for the Technician (entry level) class. At the time there were 6 license classes. A month later after talking with some other Radio operators I was ready to take the test. One Friday night the Tuscaloosa Amateur Radio club was giving a test session so I drove up to some church just before the Northport bridge on HWY 69. I got to meet some of the Hams that I heard on my scanner over the past few years. The test was easy because i was really prepared! I think I only missed one or two questions. Over the next week I checked qrz.com to see if my license had been granted. I don’t remember exactly when but it finally showed up and my callsign was KG4BQK. I ended up getting a mobile radio the Yaesu FT-2500M which I used a long time prior to my HF rig. After that I dedicated it for APRS for several year but currently not using it. I’m thinking of making it the radio for an Allstar Simplex node but I’m early in the investigation of that now. I had a lot of fun programming in the repeaters I used to listen to and getting to finally join in on what everyone was talking about. One of my favorite things to do was check into the AICN link net. At this time the AICN was a link system that covered the entire state of Alabama. The system is no longer around at least in that form.

When I graduated college in 2001 and was on a 5 month job search, I took the opportunity to upgrade. The license classes had changed so now there were only 3 licence classes. I got my General and Extra almost back to back. Studying for 5 WPM morse code was a difficult thing for me. I was very opposed to having to know such an archaic means of communication just to get a higher license class. What funny is once i got into it i really enjoyed morse code. I easily passed the code portion and the question pools weren’t that difficult either. I got a yaesu FT-100D for HF communications. At a ham fest I got a paddle and I used CW a few times on the air. I ended up applying for my current callsign KV4S because I wanted a short callsign to reflect all my hard work!

The rest is history! The next couple years I got interested in SKYWARN and now I’m active with the ALERT group in Birmingham. They assist the National Weather Service in getting storm reports from spotters in the field.

I’ve gotten into the digital modes and run personal nodes as well all of which I talk about on this site!

73,
Russell Thomas, KV4S

Hosting an AllStar Node and an AllStarDMR bridge in the cloud

Update 2/10/21:

Official group: https://dvswitch.groups.io

NOTE: Make sure to match the TX and RX frequencies in the MMDVM_Bridge.ini it needs to function as a simplex node not a repeater for this to work as of 02/10/21.

A lot has changed since my original article and there are new ways to install the tools:
Start with Debian Buster AMD64.

Make sure you install is up to date
     apt update
    apt upgrade
    if updates were installed, reboot

Add the dvswitch repository
    wget http://dvswitch.org/buster
    chmod +x buster
    ./buster

Make sure you have added the repository
    apt update
    look for “deb http://dvswitch.org/DVSwitch_Repository hamradio” in the output

Install AllStar first
     apt install allstar
    errors? stop and ask
    reboot
    AllStar working?
    asterisk -r to login to the asterisk cli to check
    use asl-menu to do basic configuration

Install DVSwitch Server
    apt install dvswitch-server
    errors? stop and ask
    logout and back in, or reboot
    run the dvs menu to configure DVSwitch Server
        When asked for the USRP port, take the default (Just hit enter)

Configure AllStar and DVSwitch Server to taste.

Take your time, read the screen. If you get a error, stop, capture the error and past into a e-mail to the email group at https://dvswitch.groups.io

Configure DVSwitch Server to taste.
This guide will help you:
https://docs.google.com/document/d/1eN50Csr29eAprBu7eKA0Bfa2XUcsXw5iktY1Ey-Qjkg

DVSwitch: https://docs.google.com/document/d/1-Ot5pGaibmEGmmFh-l8HUq2LRyZoujiJYulr-VSga9s

Original Article:

Since jumping into Digital Modes and hotspots in November of 17 and Allstar stuff in early 2018, I decided to look at setting up something for my club, ALERT, to have EchoLink and bridge it over to DMR so members and ham radio storm spotters without DMR radios could still interact with each other.

There were several considerations made as far as hosting the node and bridge. I considered using my existing raspberry pi but there were some technical challenges with the OS and how you got the bridge software to install and extract. I think it can be done but I didn’t invest further time into it when it gave me trouble. I considered formatting an old windows computer with Ubuntu but after some thought about this being for the club maybe hosting this at home was not the best idea. Even though the title says host in the cloud you can totally do this on an Ubuntu computer at your home to (and if you are ok opening some ports), I’m explaining where mine ended up in this post. So, I chose AWS (Amazon) to host them both. There are also other great host I almost went with if I had heard about them earlier in the process, Vultr and DigitalOcean. I don’t know the AWS cost yet. I do know that I have 1yr free of AWS EC2 and that based on the data stats I may be able to stay in the free tier after that depending on usage. I suspect our usage will be small except during severe weather season so, we have time to watch it. I’ll update down the road when this gets nailed down.


Update on cloud services 02/10/21: AWS is probably the most expensive, after the one year free I’m running about $9~9.50 a month. I’ve helped other guys build bridges on Vultur and they are paying about $5 a month. I’ve also had experience with Virmach and their affordable Linux will run about $12.50 a year which is the best deal however it may not have the memory and bandwidth to support large systems but is great for small but you can get higher plans I haven’t tested the others extensively.

I don’t plan to cover setting up AWS as it’s pretty straight forward after setting up an account. However, I had to do this a few times because the image I chose (trying to get 32bit) cause me more install issues with the Ham stuff. I finally, found out I needed this and 64bit was fine. Also, in later installs after this publication, I have not been able to get ASL working on Ubuntu 18.04 there were some library getting it installed, then after I resloved them ASL didn’t run. I think the ASL team will need to look into later version of debian first (just shooting in the dark). But the following works flawlessly:

chrome_2018-05-23_14-49-44

Once you get the instance running they give you all the ways to connect to it which I also don’t plan to cover since they have their own guides as part of the setup. You can use your SSH tool of preference. I use Putty and Bitvise (client is free server is not but you shouldn’t need server). For AWS you download a user key (you do not use a username password) that you need to load into your ssh client. For Putty, AWS gives you instructions on converting the key to a putty file. With Bitvise, you just import the .pem file. Once you are in with SSH you can start installing the ALS Software.

Alltar (ASL):

Update: This might be a better guide as it’s more automated than my way as it is the manual process: https://www.youtube.com/watch?v=zGqdTvyObIU The video is for a Vultr install but may apply to AWS as well if you can install via ISO.
https://github.com/AllStarLink/Asterisk/releases/tag/ASL-1.01

The AWS server user logon is Ubuntu (covered in their docs) but so I didn’t have to use sudo all the time I set this after i got in. sudo -s and that switched me to root user.

To intall ASL run this:

Note on linux commands: enter these one line at a time and hit enter. You can cut and paste if your ssh client supports it. Right mouse click in putty and bitvise.

cd /tmp 
wget http://dvswitch.org/install-allstarlink-repository
chmod +x install-allstarlink-repository
./install-allstarlink-repository

If Raspbian: apt-get install raspberrypi-kernel-headers -y
Otherwise: apt-get install linux-headers-`uname -r` -y apt-get update

apt-get install allstarlink -y

Based on the video there is a menu that I didn’t know about when I setup my node that would be easier for a first time setup:

cd /usr/local/sbin
sudo asl-menu

end update.

Follow the “Manual setup” from this guide: https://www.hamvoip.org/config-setup.pdf

Even thought this guide is for the HamVOIP image most of the manual setup things apply or maybe minor edits. I didn’t rewrite these instructions to fit an ASL install, I just “made it work”.

Turn off your AllStar Telemetry via this guide this seems to interfere with the DMR to Allstar audio: https://dvswitch.groups.io/g/allstarlink/wiki/Private-Node-Template

To enable EchoLink make sure to modify the echolink.conf accordingly then enable it in the modules.conf.

Check your Node and made sure it’s online and you can connect to it before moving to the bridge part.

If not you may need support from this group: http://lists.allstarlink.org/cgi-bin/mailman/listinfo/app_rpt-users

Once it’s online mark your kernels and headers not to update by this guide before moving on to DVSwitch: https://dvswitch.groups.io/g/allstarlink/wiki/How-To%3A-Run-apt-get-upgrade-without-upgrading-the-kernel-or-headers

DVSwitch:

This is the Bridge software. They actually support bridges to all the digital modes I believe (DMR, C4FM, P25, NXDN, ect). They use a MD380 emulator to get around the hardware requirements of most systems with dongles or boards. Sign up for their email list they will provide great support for your project if you can’t get it going yourself. https://dvswitch.groups.io/g/main

To install:

As root
cd /tmp

wget http://dvswitch.org/install-dvswitch-repo
chmod +x install-dvswitch-repo
./install-dvswitch-repo
apt-get update

apt-get install analog-bridge -y
apt-get install mmdvm-bridge -y
apt-get install md380-emu -y

These get installed to the opt folder:

BvSsh_2018-05-23_15-19-06

Edit the ini files in the Analog folder and MMDVM folder (I did not have to modify the DVSwitch.ini for this bridge). However, you need to verify what’s in DVSwitch.ini matches what you are trying to use in the Analog_bridge.ini like this:

DVSwitch.ini             |       Analog_bridge.ini
[DMR]                    |       [AMBE_AUDIO]
Address = 127.0.0.1      |       server = 127.0.0.1
TXPort = 31100           |       fromDMRPort = 31100
RXPort = 31103           |       toDMRPort = 31103

I used beyond compare to show the difference between the original ini and what i changed to make it work:

The Analog_Bridge.ini allows you to set decoding to the emulator and your DMR information that will also be updated or used from your MMDVM_Bridge.ini

Analog_Bridge

Here are some recommended audio settings in Analog_Bridge.ini:

[USRP]
aslAudio = AUDIO_USE_GAIN               ; Audio to ASL (AUDIO_UNITY, AUDIO_USE_AGC, AUDIO_USE_GAIN)
agcGain = 5.0                           ; Gain (in db) of the AGC filter
dmrAudio = AUDIO_USE_GAIN               ; Audio from ASL (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
dmrGain = 0.17

MMDVM_Bridge.ini sets up a MMDVM configuration which isn’t much different than setting up the parameters on a hotspot just without the radio. So, you will most likely need to register for the Brandmeister self care website and once setup you need to set your desired TalkGroup as static. In the config your DMR ID is the callsign DMR will see and the Repeater ID is the DMR ID + 01 (or any 2 digits) Note: DMARC is not supported unless there is a D-plus bridge to it.

MMDVM_Bridge

In the rpt.conf turn off the dahdi and enable the USRP lines.

rpt

in the modules.conf enable the usrp.

modules

You also need to turn off “Telemetry” by setting these recommended rpt.conf settings for cutting off tones and connect/disconnect messages to DMR otherwise you may get one way audio: https://dvswitch.groups.io/g/allstarlink/wiki/Private-Node-Template

If you plan on using IAX, EchoLink, and SSH you may need to open some ports to your system. I did IAX and EchoLink:

chrome_2018-05-24_14-24-46

Now you are ready to load up the bridge software with these commands:

systemctl enable md380-emu
systemctl start md380-emu

systemctl enable analog_bridge
systemctl start analog_bridge

systemctl enable mmdvm_bridge
systemctl start mmdvm_bridge

If you have issues there are logs located here to review:

BvSsh_2018-05-24_13-57-33

As long as your server/bridge/nodes are running you have a live bridge between the 2 modes. Users on either side will not have to do anything out of the ordinary. AllStar users coming over to DMR do not have DMR numbers so DMR users will see the club/personal number of the number you chose in the MMDVM config.

Hopefully, with that, your AllStar Node and DMR bridge is running!

If not, don’t stress help is an email or remote session away. It’s probably something small that’s stopping it. There are lots of ways to do this and none of it is documented that great but be persistent and ask questions it took me a good week on an off to get mine online and tons of trial and error. Maybe this guide will help you with the concepts and get you going faster than it took me.

73,
Russell, KV4S

%d bloggers like this: