Last week I decided to purchase a little board called an MMDVM_HS_HAT_DUPLEX. What I purchased is a cheaper clone, but it should work about the same as it uses the same firmware. Essentially it is a tiny low-powered repeater on a single circuit board. It is designed to be a personal duplex hotspot.
The board has an STM32 microcontroller and two ADF7021 radio microchips. The board should produce about 10mW of RF power output. The board has a number of LED’s to indicate various things such as, power, carrier operated squelch (COS), Push-To-Talk (PTT), and an LED for each digital mode the board is capable of such as DSTAR, DMR, YSF, P25, and NXDN.
The board is a hat so it sits directly on top of the Raspberry Pi and uses the Pi’s GPIO pins to communicate with the Pi-Star Software.
Fully assembled, this is what the Pi looks like with the MMDVM Duplex Hot Spot board attached.
The other piece of this project that I decided to add, was a screen. It has not arrived yet. This will solve the problem of not knowing the IP address of the Pi to connect to the dashboard. I did some reading and the MMDVM Duplex Board is capable of working with a small OLED display OR a Nextion touch screen. I opted for the touch screen which will give me more options for controlling the device. On most of the forums and Facebook groups for DSTAR hotspots, other hams seem to recommend the 3.5″ display most often. I opted for a slightly smaller 3.2″ display, specifically the NX4024K032_011R.
It’s slightly cheaper than the 3.5″ screen and slightly smaller. This is an enhanced version with more flash memory and more RAM than the basic models.
This display is a Human Machine Interface that is programmed using a piece of software called Nextion Editor. It’s a What You See Is What You Get (WYSIWYG) editor. The coding to make the screen work seems pretty simple, however I have not looked at the code in the Pi-Star software that actually sends the information to the screen.
Here I found a guide on using the Nextion Editor software, which I’m sure will be useful for creating my own display interface. Here is another guide on creating a screen layout/interface that is specific to the MMDVM and ham radio. The interface is designed, saved to an HMI file, and then compiled into a TFT file, which is then uploaded to the screen. You can upload the TFT file via a USB to TTL serial adapter or by using a microSD card with the TFT file on it, inserted into the microSD card slot on the Nextion Display.
You may also find *.TFT files that other amateur radio operators (hams) have made available on a few different MMDVM Hotspot groups. These files (as long as they’re made for the exact screen you’re using) can be downloaded to your computer and uploaded to your screen. If you can get the *.HMI file which is typically available with the *.TFT files, you can edit the HMI file in Nextion Editor to suit your needs and then upload it to your screen. Here is an example interface from the second guide that another ham has created.
Next week I’ll set up the MMDVM to work with the Raspberry Pi and update the MMDVM’s firmware.
First of all, for this project you MUST be a licensed Amateur Radio Operator. In the USA, that means passing a licensing exam and being assigned a callsign from the Federal Communications Commission (FCC). For licensing information check out the American Radio Relay League.
After you receive your confirmation email, go to this page to learn how to assign terminal ID’s to your callsign (STEP 1 only). Terminal ID’s are just what they sound like, it’s an identifier for your individual station. If you’re just using one radio, you can typically set a terminal ID of a single space, however we’re setting up a repeater, so you would need the space terminal ID and whatever module you’re using B for 70CM or C for 2M frequencies.
After you’ve registered for DSTAR you need to get a CCS7 ID for DMR.
Get a ccs7 id number for DMR / DSTAR
Head over to this site and fill out the form selecting the option for a private callsign and NOT a repeater. I’m going to be setting up a private repeater for experimentation so it won’t be running 24/7.
Once your request is processed, you’ll receive an email containing your CCS7 ID number. Put that in a safe place.
Setup and Configure wifi
In order to configure this, because I had no way of getting the IP address from a headless Raspberry Pi, I connected a crossover cat5e cable between the Pi and a PC so I could connect into it and make adjustments.
That said, I want to first explain how I setup the enterprise WiFi for the Pi to work on Pitt’s wireless network.
Press CTRL+o and press enter, then press CTRL+x to exit the nano editor.
Then go to the Configuration page of your Pi, then to the Expert tab, then click “WiFi” in the “Full Edit” line of editors.
You should see a list of networks (probably just one) after a header of sorts
Make sure the country code following “country=” matches your country code. In the USA it’s “country=US” without quotes.
For the enterprise wifi you need to make a new network in this config file. For WIRELESS-PITTNET at the University of Pittsburgh at Bradford, I used the following settings. In this editor I set up the following network:
Go back to your SSH access page in your browser and do the follow steps.
Enter the following substituting YOUR_PASSWORD with your university email password leave the single quotes around your password. and press enter.
Next copy the resulting random letters and numbers into the WiFi editor in the other tab after the colon where it says “password=hash:”
Now go back to your SSH editor and clear your history by typing:
Press “Apply Changes” at the bottom of the page beneath the wifi editor.
If you followed these steps correctly your pi should connect to WIRELESS-PITTNET.
In your browser go the main page of your Pi-Star dashboard at:
You should see the following page:
Start by selecting MMDVMHost and Duplex (repeaters) or Simplex (personal hotspots), then click apply changes.
After the services are restarted, you should see the following page:
I started the configuration process without the actual interface board, keep that in mind. I did not activate any services yet, however I set the hostname, the node callsign, the RX/TX Frequencies, the GPS coordinates, the town (in the format of “city”, “grid locator”, the country, the URL (this can be either a manual URL of the dashboard for the repeater or automatic and will default the QRZ page for the node callsign), the node type (public – anyone can use it / private – only the node callsign can use it), the time zone, and the dashboard language_country code.
You can also setup the firewall if you wish. Private makes it only work within your local network, public will make it work from outside your network provided the correct ports are forwarded on the router.
I left Auto AP on because if the Pi doesn’t/can’t make a network connection, it will create a wifi hotspot of it’s own so you can connect to it and configure the network settings.
I left UPNP turned off. If your router also has UPNP, you can turn this feature on and Pi-Star will configure your router’s firewall to open the necessary ports.
I found a neat little circuit board on eBay that works with MMDVMHost software and is a mini personal repeater on a single board. I thought this would be a great way to demonstrate a repeater without having to bring in multiple radios, a power supply, the computer, etc. So I’m going to use the MMDVM_HS_Dual_Hat. The board on eBay is a cheaper Chinese “clone” of the original board which is pictured below.
This week, I began the installation and configuration of the Pi-Star software on a Raspberry Pi 3B. In this post I will walk you through step by step, how to image the microSD card. I will also discuss setting up a home WiFi Network. In the next post, I’ll talk about configuring the basics of PiStar including enterprise WiFi networks and hashing the WiFi passwords.
The first step is to download the Pi-Star software using the link in the list of parts. At the time of this writing, the version for the Raspberry Pi is “Pi-Star_RPi_V3.4.16_10-Aug-2018.zip”
Download the wpa_supplicant.conf file. If it opens as a web page, simply copy the contents of the file and paste it into Notepad or Text Edit and save as “wpa_supplicant.conf” without quotes.
In the file, replace the capitalized “SSID” with your network name.
Next in the file, replace the capitalized “PSK” with your network password.
Save the file making sure that the filename is wpa_supplicant.conf.
Imaging the microSD Card
First, we’ll download an SD card imaging tool. For general imaging uses, I like to use a software called Etcher, which is available for Mac, Windows, and Linux. If you need to backup an SD Card, I use a tool for Mac called Apple Pi Baker. You can also use this tool to image SD Cards and it allows you to backup/restore an SD card to/frome a compressed file (.zip, .gzip, .7zip, etc). For Windows there is a program called Win32DiskImager which will allow you to backup or image an SD card in the uncompressed “.img” format. In this tutorial, I’ll use Apple Pi Baker on a MacOS PC.
I’m not going to cover backing up the SD card in this tutorial, but if you have anything on your card that you want to save, be sure you have backed it up first as the following steps will ERASE everything on the card.
First insert the microSD card into the SD card adapter and insert the adapter into your computer. Be sure the switch (if any) on the adapter is in the up position to allow the computer to write to the card.
Next, go to the folder you downloaded Pi-Star into and double click the .zip file to extract its contents. It will be a folder that is extracted.
Double click the folder to enter it and make sure there is a file around 2.5-3gb in size named with a “.img” extension.
Next open Apple Pi Baker and enter your administrator password if prompted. The admin password is required to allow the app to write directly to the SD card device.
Next you should see a screen that looks like this:
Select your SD card in the box under Pi-Crust. Mine isn’t shown in the photo above because it wasn’t inserted when I opened Pi Baker. Just click the green refresh button to the top right of the white box and it should show up.
Be 100% sure you’ve selected the correct SD Card/drive in the Pi-Crust Section. If you have other SD cards or flash drives inserted they may show up as well. SELECT THE CORRECT DRIVE. ALL DATA ON THE SELECTED DRIVE WILL BE ERASED.
Under Pi-Ingredients, click the 3 dots button and find the Pi-Star .img file we found in step five.
Uncheck the “Auto eject after successful restore” checkbox.
Next after you are certain you have everything set correctly and have selected the correct SD card, you’ll click “Restore Backup” in the Pi-Ingredients Section.
You should see a screen like this:
Wait until you get the notification that the process is complete and then you can close Pi-Baker.
Setting Up HOME WiFi
Open Finder or My Computer (This PC) and locate the wpa_supplicant.conf file you edited previously.
Copy the file by right clicking the file and left clicking copy.
Navigate to the SD card which should be labeled “Boot”.
Paste the copied wpa_supplicant.conf file by right clicking in the space free of any files and click paste or just press CTRL+V (Windows) or CMD+V (macOS) to paste the file.
Close Finder or Windows Explorer.
Eject or Safely Remove the SD card. On macOS, drag the SD card to the trash bin or click the eject button next to it in Finder. On Windows, in My Computer or This PC, right click the SD card and click “eject.”
Insert the MicroSD card into the Raspberry Pi and plug in the power cord.
The LED on the Pi should light up red, with a flashing green LED next to it.
Wait a few minutes as the Pi will load the WiFi configuration and reboot.
From your PC, connected to the same WiFi network you setup the Pi on, open your web browser and go to one of the following sites:
Last week, I decided to use a software I’ve worked with in the past, called Pi-Star to setup a digital multimode amateur radio repeater. This week I did a bit more research on DSTAR and found some diagrams to hopefully explain things a little better. If you aren’t familiar with what a ham radio repeater does, there is a diagram below.
Basically a repeater listens on one frequency and simultaneously retransmits what it “hears” on another frequency. Typically a repeater is at an elevated location (i.e. a mountain top, tall building, etc), running a high performance antenna system and higher power output.
How does a digital repeater work? It works in much the same way as a regular repeater, however with DSTAR, there is often an internet link via a computer added to the repeater as shown below.
The diagram above is of one digital mode called DSTAR, but most digital modes work similarly in respect to the hardware required. In a DSTAR repeater there is a radio connected to an interface board which is then connected to a computer (usually either a PC or a Raspberry Pi). The computer makes and manages the connections through the internet to other repeaters or reflectors (conference servers). The computer makes these connections based on commands sent over the radio, sent through a remote control application, or sent through a web interface. An example of the Pi-Star web interface for the KC3ESS DSTAR repeater that I help manage is included below.
The dashboard lists the timestamp of the transmission, the target (where the transmission is intended to go), the RPT 1, and RPT 2 callsigns.
The target of a transmission tells the computer what to do, so CQCQCQ means that the transmission is intended for everyone to hear, REF030CL tells the computer to link to reflector 30C, and _______U, tells the computer to unlink from the current connection.
The RPT 1 callsign is the callsign of the repeater/hotspot/reflector that the transmission is being received by and forwarded to the internet from. In this photo the RPT 1 callsign, KC3ESS_B means that the transmission is going through the KC3ESS repeater and the B means a frequency in the UHF 70 centimeter band (420Mhz to 450Mhz). The callsign may also be REF063C which means the transmission is being received over the internet from reflector 63C.
The RPT 2 callsign is the destination callsign. In the photo above we have, KC3ESS_G, which means the destination of the transmission is the internet gateway on the KC3ESS repeater. Essentially that tells the computer connected to the KC3ESS repeater to send the transmission over the internet. If this were set to KC3ESS_B, the transmission would never leave the local KC3ESS repeater.
The target or URCALL field, RPT1 field, & RPT2 field all work together to route the DSTAR transmission to the appropriate location within the DSTAR network.
This week I continued my research on digital repeaters and software. I’ve decided to use a Raspberry Pi with the Pi-Star image, which contains software used to setup, configure, and maintain a digital repeater. It’s the most complete package I’ve seen and is widely recommended by other hams running digital repeaters. I have worked with this particular software package before so I have some understanding of how it works and how to use it. It basically contains many pieces of software which work together to manage and control a digital repeater. It can also be used to control digital multimode hotspots (duplex or simplex hotspots).
Pi-Star contains the popular digital radio software created by Jonathan Naylor, G4KLX: ircDDBGateway, DSTARRepeater, DMRGateway, and MMDVMHost. It also contains a complete dashboard and can support a wide variety of hardware. MMDVM stands for Multi Mode Digital Voice Modem.
The Raspberry Pi is a great piece of hardware for projects like this due to its cost, reliability, availability, and small size. I will be using the one I have already, a Pi 3B.
This week I have gathered some of my personal knowledge on digital repeaters in order to create a project proposal for a digital multimode amateur radio repeater.
I have been involved in amateur or ham radio for about nine years now. In the most recent 4 or 5 years, I’ve been working on DSTAR repeaters and now it’s time to branch out to DMR repeaters as well. Amateur radio is a two way radio service that allows other amateur radio operators to communicate with one another using various modes including: Morse Code, voice, text messaging, email, images, television (SSTV), and other digital modes like DSTAR, DMR, Yaesu System Fusion, P25, etc.
I also created this website and got SSL installed on the server. I put together a portfolio of some of the websites I have built in the past and will work on a Gantt Chart and resume next week.
For my capstone I’d like to build a multimode digital repeater that will operate with at least two modes, probably DSTAR and DMR. I’m much less familiar with DMR, than I am with DSTAR.
For my capstone project, I want to build a digital multimode amateur radio repeater.
Amateur Radio is a two way radio service which in the United States is licensed by the Federal Communications Commission (FCC). It allows amateur radio operators the ability to talk to one another around the world using radio and to experiment with/design radio(s) and radio antennas. Amateur radio is often called “ham” radio. Ham radio is also used during natural disasters/emergencies to communicate when all other means of communication have failed.
I earned my Extra Class license about nine years ago. The Extra Class license is the highest license class that one can earn. While I’m not very active on the air talking to people, I enjoy the electronics and technology side of ham radio. More recently I have been working with digital repeaters, mainly Digital Smart Technology Amateur Radio (DSTAR) repeaters and occasionally Digital Mobile Radio (DMR) repeaters.
For my capstone I want to setup a multimode digital repeater that will switch between DSTAR and DMR depending on the signal it receives. This will be accomplished through the use of readily available software running on a Raspberry Pi that will be interfaced with a radio operating in the 70cm band.
The project will include a Nextion display to display information about the repeater and who is currently talking & allow one to control the repeater via touchscreen. I will design a screen layout for the Nextion display using Nextion Editor.
I will also add or enable a few extra features such as remote control through the ircDDBRemote app for DSTAR, remote SSH access, automatic linking based on a schedule, and possibly a few more as time permits.
I would like to learn how to design or modify and print a 3D printed case for my project too. 3D printing is something I have very limited experience with and would like to learn more about.