Building a Custom Pi Zero with MMDVM and Additional Software

Building a Custom Pi Zero with MMDVM and Additional Software

Introduction

My passion for amateur radio has driven me to set up several Raspberry Pi devices for digital modes over the years. My Raspberry Pi 3 and Raspberry Pi Zero W have been running Pi-Star with an STM32 MMDVM hat flawlessly. The Pi 3 serves as my home setup for DMR on Brandmeister and YSF testing with my own YSF Reflector, while the Pi Zero W is my trusty companion for mobile use in my camper van.

For my HF activities, I rely on a Linux-based laptop running Flrig, Fldigi, FT8, JS8, and other digital mode software. Even during SOTA activations, my laptop is always with me. Recently, I came across the DigiPi image—a Raspberry Pi Zero 2 W image supporting digital modes, AX.25, APRS, and more, all accessible via a web browser. After diving into the videos and seeing its potential, I decided to become a Patreon supporter to grab the image and try it out.

Experimenting with DigiPi

I flashed the DigiPi image onto an SD card and booted up my Raspberry Pi Zero W. The setup was straightforward, and I was able to connect my Yaesu FTM-200 via a DigiRig to send and receive APRS packets. I also tested APRS Chat and Winlink, tweaking the TXDELAY=200 setting in the Direwolf config file to get everything working smoothly.

While I appreciated the convenience and simplicity of DigiPi, I wasn’t fully satisfied with the interface and the configuration process. This got me thinking—why not build my own custom Pi Zero setup with MMDVM and additional software, instead of trying to adapt Pi-Star? I wanted something more flexible and personal, so I could add just the features I need without worrying about Pi-Star updates overwriting my work. This sparked the start of my new project.

Building a Custom Pi Zero Setup

For this project, I’m using a Raspberry Pi Zero 2 W, which is a significant upgrade from the original Zero W. It features a 1 GHz quad-core Cortex-A53 Broadcom BCM2710A1 processor, similar to the Raspberry Pi 3 but in a much smaller form factor. It includes 512MB LPDDR2 RAM, integrated Wi-Fi 4 (802.11b/g/n) and Bluetooth 4.2, while maintaining the compact design ideal for portable applications.

To create a personal, versatile setup, I ordered a Raspberry Pi Zero 2 W. I installed Debian 11 from the Raspberry Pi website, performed system updates, and installed essential tools such as vim, htop, git, build-essential, cmake, and tmux. The goal is to replicate the functionality of Pi-Star with some added features from the DigiPi image while keeping the setup flexible and tailored to my specific needs.

Configuring the STM32 MMDVM Hat

The first task was getting the STM32 MMDVM hat working with the Pi. I pulled the software from the following GitHub repository:

https://github.com/g4klx/MMDVMHost.git

After compiling and installing MMDVMHost to /usr/local/bin/MMDVMHost, I had to configure it. The default configuration file is located at /etc/MMDVM.ini. I grabbed the sample config from GitHub and started MMDVMHost. However, the hat wasn’t initially recognized, so I checked /dev/tty* and found /dev/ttyS0. I updated the config like so:

[Modem]
Protocol=uart
UARTPort=/dev/ttyS0
UARTSpeed=115200

Setting Up Brandmeister DMR

For DMR, I added the following settings to the configuration file:

[DMR]
Enable=1

[DMR Network]
Enable=1
Debug=1
Address=Brandmeister Server
Password=YourPassword

nce I restarted MMDVMHost, the Pi connected to Brandmeister and I could make DMR calls.

Setting Up YSF

Next, I configured YSF by enabling the relevant settings:

[System Fusion]
Enable=1

[Network]
Enable=1
Debug=1
GatewayAddress=ysf.df8vx.de
GatewayPort=42003

Restarting MMDVMHost successfully connected it to both my YSF Reflector and Brandmeister. When transmitting via DMR, packets were sent to Brandmeister, while Yaesu transmissions routed through my reflector.

Integrating digital Features

To enhance the functionality of my custom Pi Zero setup, I plan to incorporate some of the software and features found in the DigiPi image, such as AX.25, APRS, and Winlink. These tools will complement my existing setup and offer additional capabilities for digital mode operations.

Additionally, I aim to develop a custom web interface to manage all services efficiently, similar to the one provided by DigiPi. The goal is to have an intuitive and powerful setup that brings the full Pi-Star-like functionality with even more flexibility and features.

Next Steps

So far, I have successfully set up the STM32 MMDVM hat on a Raspberry Pi Zero 2 W, allowing it to function on both DMR and YSF. My next goal is to test automatic mode switching based on received signals. Once that is achieved, I will proceed with installing and configuring additional digital mode software such as APRS, Winlink, and AX.25. I also plan to refine the web interface for a streamlined user experience.

This project is just beginning, and I’m excited to see how much functionality I can pack into this compact setup. Stay tuned for updates!