Please note that all of the Pi Star and MMDVM posts prior to this post are now about 4 years old and may not apply or work for Pi-Star anymore. The general idea is still good, but things have been updated in Pi Star and may not work the same way anymore.
If you follow these directions, you do so at your own risk (physical, software, sanity).
If something fails to work the way it should, feel free to contact me and I will try to help, but I make no guarantees that I can help you. I haven’t kept up with Pi-Star much since my friend, Ted, passed away. I managed his repeater that used Pi-Star for a DSTAR link. After his passing, I setup a DSTAR hotspot, but I don’t tinker with it anymore. Ted was always the one who wanted to tinker and make it do new things.
I enabled DMR last week and spent some time configuring it. This week I had to set the DMR transmit deviation in order to get it to work.
Essentially setting the TX deviation for DMR is the same as how I set the transmit deviation for DSTAR in the beginning. I used a service monitor and checked the deviation level while the repeater was transmitting. It was lower than it should have been, so I increased the level in the expert MMDVMHost editor on the line that said DMR Level. This adjusted the deviation for just DMR, leaving the deviation alone for all other modes.
I also created a box/case for my project out of a large crayon box that I found at WalMart for about $3.
I used a template for the Pi to drill four holes in this box for some #4 screws to mount the Pi and MMDVM duplex. I also put a piece of acrylic between the Pi and this case so that it wouldn’t be pressing against the back of the Pi.
I then cut out a hole for the size of my 3.2in Nextion Display.
I also drilled holes around the display cutout to mount the display in place.
I used plastic from an old ice cream container to create a bezel to go around the display since part of the display doesn’t show anything and is instead used for the touch screen controller/wiring.
I added two external antenna connectors. I bought two male to female jack/panel mount SMA connector extensions for about $6 each and then I added some right angle SMA connectors (male to female) 5 for about $4.
For the external antennas I drilled the holes in the box as far apart as I could and installed the female jack connectors through the hole.
Then I screwed a right angle SMA connector on each jack.
Next, I used a couple right angle SMA connectors on the MMDVM hotspot/repeater board.
Finally, I installed all of the electronics.Here is the finished case.
Last week, I had three problems, two of which I couldn’t fix.
Problems & Solutions
Problem 1 was solved by recompiling the Nextion Driver and reinstalling it by hand.
Problem 2 was that the repeater wasn’t starting up as quickly as it does at home. I thought this was caused by the enterprise WiFi at my university. I’m fairly certain that was the problem. This issue seems to sort itself out, if you’re patient. I’m certain the issue is due to the time it takes the Pi to authenticate with the enterprise WiFi. I did add a button to restart the WiFi from the Nextion display. It is two simple commands.
I added a button to the display’s “System” or utilities screen and made it execute the following commands.
sudo ifdown wlan0 && sudo ifup wlan0
Basically this turns off the wlan0 interface and turns it back on.
Problem 3 was that I couldn’t always access the PiStar dashboard over the WiFi. That problem wasn’t really a problem. Again it had to do with the time the Pi takes to authenticate with the WiFi. I found that if I wait about a minute or two after the display shows the IP address, then go to the displayed IP address in a web browser, the PiStar dashboard appears as it should.
As for the issue with the self-assigned IP address over the ethernet connection, it doesn’t appear to matter. The two devices will communicate with one another given enough time.
A problem I ran into this week was that the repeater board doesn’t always initialize and connect to the software on the raspberry Pi, this is fixed by stopping and starting the mmdvmhost service, which can be done from the Nextion display.
Enable & configure dmr
The first thing I did was enable DMR and I did this from the expert settings for MMDVMHost instead of the main configuration tab. The reason for this is that when you configure from the main tab and click apply changes, you can lose settings you set in the expert MMDVMHost page.
Navigate to the expert editor for MMDVMHost.
Scroll down to DMR.
Your settings should look like this:
What do those settings mean? Enable – On (1) or Off (0) Beacon – Turn on (1) or off (0) beacon or a transmission that happens every so many minutes/hours to tell others your repeater exists. ColorCode – A number for your repeater, typically 1, but may be different. A radio set to a color code of 1 cannot talk to a station with their color code set to 2. SelfOnly – Limit DMR communication to your own callsign only (a Private hotspot) DumpTAData – (1) – Talker Alias data (person’s name/location/callsign) are dropped (0) – Talker Alias data (person’s name/location/callsign) are sent to the RF stations. This can cause issues with some radios, but I set mine to off (0). ModeHang – The number of seconds the repeater should stay listening for DMR over RF after the end of a transmission.
Next scroll down to the DMR Network section of MMDVMHost.
What do these settings mean/do? Enable – Turns on the DMR network/gateway to the internet. Address – The IP Address of the Master Server you’re using. I used Brandmeister 3108 and found its IP address on the Brandmeister website under “Masters.” I believe this is only visible after you’ve logged in with your callsign and Brandmeister password. Port – This is the port on the server you’re connecting too. Leave this as the default. Password – The password to the Master Server. The default for most Masters is “passw0rd”. That’s a zero in place of the letter “o”. Slot1 – This turns on or off slot 1. DMR transmissions are sent in one of two “Time Slots.” Repeaters can receive and carry on two completely separate conversations with one on each time slot. Slot2 – This turns on or off time slot 2. ModeHang – This is the number of seconds the repeater should remain in DMR mode after the end of a network transmission.
Click “Apply Changes”
Add Brandmeister panel
Next I added the Brandmeister control panel to the repeater’s admin dashboard. I followed these instructions.
This is what the Admin Dashboard looks like after adding the Brandmeister control panel. This screenshot was taken before I changed to the US Brandmeister 3108 Server which is why it says “BM United Kingdom” as the DMR Master.
First we’ll go turn on the DSTAR digital mode and configure it.
Start by going to your PiStar dashboard in your web browser.
After logging into your dashboard, click on the “Configure” tab.
Next we’ll turn on DSTAR in the MMDVMHost Configuration.
Notice that I also set the RF Hangtime and Net Hangtime to 5 seconds. The hangtime is the amount of time the MMDVM will stay in that mode before allowing other digital mode signals a chance to reach the repeater. RF Hangtime is the amount of time the MMDVM waits after the end of an incoming RF (Radio Frequency) signal. Net Hangtime is the amount of time the MMDVM waits after the end of an incoming network transmission from a distant station.
Click “Apply Changes.”
After the changes are applied, scroll down and you will see a new configuration box named “DSTAR Configuration.” The defaults will look like this:
Here are my settings for DSTAR and I’ll explain them after the photo.
Explanation of Settings
RPT1 Callsign – This is the callsign of the node or repeater with its module letter. B = 70CM / C = 2M
RPT2 Callsign – This is the callsign of the gateway, which in our case will be the same as the repeater, but instead of module “B” it will be “G” for “Gateway.”
Remote Password – This is the password used by the ircDDBRemote application as well as the command-line Remote Control application.
Default Reflector – This is the default reflector that the repeater will connect to. A reflector is like a group chat or conference server for many repeaters to connect to. Note that this can be set to “Startup” or “Manual.” I chose “Manual” because I do not want my repeater to automatically connect to a reflector when the repeater turns on.
APRS HOST – APRS stands for Amateur Packet Reporting System and allows data like GPS coordinates, altitude, speed, etc to be reported to other amateurs. This data can be viewed online at a few sites like https://aprs.fi the “rotate” APRS Host is a round robin server according to http://www.aprs-is.net/aprsservers.aspx
ircDDBGateway Language – Select your language and country code if applicable. I selected “english_(US).”
Time Announcements – If turned on, the hotspot/repeater will announce the time every hour.
Use DPLUS for XRF – I don’t use XRF reflectors, so I left it turned off, but this would allow you to use the DPLUS protocol to connect to XRF Reflectors.
Later this week, I’ll discuss programming your DSTAR radio as well as enabling DMR. I’ll also be adding a Nextion Display to this project and attempting to create my own Nextion Display layout in the Nextion Editor Software.
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.