Build a MMDVM P25 Reflector

Submitted by mike on Sat, 01/26/2019 - 11:00

This is a high-level guide to building your own MMDVM P25 Reflector. It is based on Pi-Star for the Hotspot/MMDVM platform, Ubuntu 18.04, and the P25 Client software from G4KLX at

If you're not comfortable with compiling source code, setting file permissions, or modifying firewalls/port-forwarding - Google for these things! There is plenty of help available for your specific software and hardware... 

Terminal commands are in Italics, and must be run one line at a time...

Ok - Let's build!


With the method of your choice, download and extract the client software to its default path (P25Clients-master) in /Downloads, and from there. Open a terminal window and make sure you have what you need.

cd /P25Clients-master/P25Reflector
ls -la

Confirm that you have source files, and they're in the right place: there should be a “P25Reflector.cpp” in this folder.

Copy the ini file to its new home:

sudo cp P25Reflector.ini /etc

Tweak the .ini file - Change “Daemon=1” to “Daemon=0”

sudo nano /etc/P25Reflector.ini

Save and Exit the editor.

Compile (Make sure you’re in ~/Downloads/P25Clients-master/P25Reflector)


Move the compile executable file and script to their new location: 

sudo cp p25Reflector /usr/local/bin/

sudo cp /usr/local/bin/

sudo chmod +x /usr/local/bin/

Test it!

cd /usr/local/bin
./ start /etc/P25Reflector.ini &

On first run, you should see something like this (ignore the error)

P25R Start

Leave this terminal window open for now...


You'll need the IP address or FQDN that Hotspots will use to access your reflector. Ensure ports are open/forwarded as required! (RaspberryPi users: by default there is no firewall enabled; move along...)

SSH into your Pi-Star via the method of your choosing, and set the filesystem to read/write:


Get permissions to modify files:

sudo su

Add your reflector to the P25Hosts file

sudo nano /root/P25Hosts.txt

Enter your information in the format: {TG#}tab{ReflectorIP}tab(41000) - there are also  instructions shown in the file.

Save and Exit.

Force Pi-star to re-load the P25Host file:

sudo pistar-update

When the update completes, exit the pi-star SSH session, and pull up the Dashboard. You should see the TG and IP domain in the "P25 Startup Host" on the Pi-Star configuration screen. You can set this as your startup now or not... 


You’re ready for the final step… Grab a radio. Make sure you’ve got the frequency, NAC and talkgroup programmed correctly, and transmit.

In the P25Reflector terminal window that you left open earlier, you should see messages indicating that pi-star has connected on the first TX, and subsequent transmissions will show  start and end – indicating that the reflector is working! Check things like your firewall and IP addresses in the mmdvm host file for correctness if “No repeater connected” messages continue instead.

Assuming all is well, you can now share your reflector information with others to create a linked P25 talkgroup using MMDVM hotspots or repeaters.... 



Good luck and 73!