This guide will help you set up a P25 to DMR bridge using readily available software and tools. Follow the steps below, and use the code snippets provided to ease the process.
Visit the official Raspberry Pi website and download the latest version of Raspberry Pi OS.
Use a tool like Balena Etcher to flash the Raspberry Pi OS image to your MicroSD card.
Insert the MicroSD card into the Raspberry Pi, connect it to a monitor, and power it on. Complete the on-screen setup process, which includes connecting to WiFi and updating the software.
Q: How do I connect to WiFi?
A: During the setup process, you'll be prompted to select your WiFi network and enter the password.
Q: What if I encounter a problem?
A: You can find troubleshooting tips and solutions on the Raspberry Pi forums.
Download the appropriate Debian image for your Raspberry Pi from the official Debian website.
Once you've downloaded the Debian image, write it to a MicroSD card using Balena Etcher.
Insert the MicroSD card into the Raspberry Pi, connect it to a monitor and peripherals, and power it on. Complete the setup process on-screen.
sudo apt update && sudo apt upgrade -y
sudo apt install vim git curl
sudo systemctl enable ssh
and sudo systemctl start ssh
Q: How do I install additional software?
A: Use the Debian package manager with sudo apt-get install [package_name]
to install new software.
Q: Can I use a desktop environment?
A: Yes, you can install a desktop environment using sudo apt-get install [desktop_environment]
, such as XFCE or GNOME.
In this tutorial we are using Debian 11, running on a Raspberry Pi4.
# Default login for Debian images
login: root
password: <none>
# Activate WiFi
nano /etc/network/interfaces.d/wlan0
# Reboot the System
reboot -h now
# Update and Upgrade the System
apt update && apt upgrade -y
# Add a User
adduser <username>
# Change the Password
passwd
# Switch to Root
su - root
# Install Sudo and Other Tools
apt install sudo
sudo usermod -aG sudo <username>
# Update Again
sudo apt update && sudo apt upgrade -y
# Install Networking Tools
sudo apt-get install build-essential git net-tools wget -y
# Add p25reflector User
sudo adduser p25reflector
# Grant the New User Sudo Privileges
sudo usermod -aG sudo p25reflector
# Switch to the New p25reflector User
su - p25reflector
# Create Downloads Directory
mkdir Downloads
# Change to Downloads Directory.
cd Downloads
# Clone P25Clients
sudo git clone https://github.com/g4klx/P25Clients.git
# Change Into P25Clients.
cd P25Clients
# Clone DVReflectors while in P25Clients
sudo git clone https://github.com/g4klx/P25Clients.git
# Change into DVReflectors
cd DVReflectors
# Copy the P25Reflector.ini File from /opt to /etc
sudo cp P25Reflector.ini /etc
# Change into the /etc Directory
cd /etc
# Edit the P25Reflector.ini File with Nano
sudo nano P25Reflector.ini
# Change Daemon=1 to Daemon=0 in the P25Reflector.ini File
# Save and Close by Pressing CTRL + O then CTRL + X
# Switch to the p25reflector User
su - p25reflector
# Change into the P25Gateway Directory
cd Downloads/P25Clients/P25Gateway
# Copy P25Hosts.txt to /etc
sudo cp P25Hosts.txt /etc
# Copy P25Gateway.ini to /etc
sudo cp P25Gateway.ini /etc
# Compile Files
sudo make
# Copy P25Gateway to /opt
sudo cp P25Gateway /opt/P25Gateway
# Change to /tmp Directory
cd /tmp
# Download DVSwitch
sudo wget http://dvswitch.org/buster
# Make the file executable
sudo chmod +x buster
# Execute the script
sudo ./buster
# Update your system
sudo apt-get update
# Install the DVSwitch Server
sudo apt-get install dvswitch-server -y
# Edit P25Gateway.ini
sudo nano /etc/P25Gateway.ini
This is what your P25Gateway.ini file will look like:
[General]
Callsign=YOURCALLSIGN
RptAddress=127.0.0.1
RptPort=32010
LocalPort=42020
Debug=0
Daemon=0
[Id Lookup]
Name=DMRIds.dat
Time=24
[Voice]
Enabled=1
Language=en_US
Directory=./Audio
[Log]
DisplayLevel=1
FileLevel=1
FilePath=/var/log/P25Gateway/
FileRoot=P25Gateway
FileRotate=1
[Network]
Port=42010
HostsFile1=/etc/P25Hosts.txt
ReloadTime=60
ParrotAddress=127.0.0.1
ParrotPort=42011
P252DMRAddress=127.0.0.1
P252DMRPort=42012
Static=YOUR_P25_TG
RFHangTime=120
NetHangTime=60
Debug=0
[Remote Commands]
Enable=0
Port=6074
# Edit Analog_Bridge_P25.ini
sudo nano /etc/Analog_Bridge_P25.ini
This is what your Analog_Bridge_P25.ini and Analog_Bridge_DMR.ini files will look like:
[AMBE_AUDIO]
address=127.0.0.1
txPort=34103
rxPort=34100
ambeMode=P25
gatewayDmrId=YOUR_DMR_ID
repeaterID=YOUR_DMR_ID + 2 Digits
txTg=YOUR_P25_TG
txTs=2
colorCode=1
[USRP]
address=127.0.0.1
txPort=34001
rxPort=32001
[AMBE_AUDIO]
address=127.0.0.1
txPort=31103
rxPort=31100
ambeMode=DMR
gatewayDmrId=YOUR_DMR_ID
repeaterID=YOUR_DMR_ID + 2 Digits
txTg=YOUR_DMR_TG
txTs=2
colorCode=1
[USRP]
address=127.0.0.1
txPort=32001
rxPort=34001
# Edit MMDVM_Bridge.ini
sudo nano /etc/MMDVM_Bridge.ini
This is what your MMDVM_Bridge.ini will look like:
[General]
Callsign=YOURCALLSIGN
Id=YOUR_DMR_ID + 2 Digits
Timeout=180
Duplex=0
[DMR]
Enable=0 #Change to 1
ColorCode=1
EmbeddedLCOnly=1
DumpTAData=0
[P25]
Enable=0 #Change to 1
NAC=293
[DMR Network]
Enable=0 #Change to 1
Address=BRANDMEISTER_SERVER
Port=62031
Password=YOUR_PASSWORD
[P25 Network]
Enable=0 #Change to 1
GatewayAddress=127.0.0.1
GatewayPort=42020
LocalPort=32010
# Start the Components, run each command in a new window for testing
cd /usr/local/bin/ && ./P25Reflector.sh start /etc/P25Gateway.ini
cd /opt/P25Gateway && ./P25Gateway /etc/P25Gateway.ini
cd /opt/Analog_Bridge && ./Analog_Bridge_DMR /etc/Analog_Bridge_DMR.ini
cd /opt/Analog_Bridge && ./Analog_Bridge_P25 /etc/Analog_Bridge_P25.ini
sudo systemctl stop mmdvm_bridge.service && cd /opt/MMDVM_Bridge && ./MMDVM_Bridge /etc/MMDVM_Bridge.ini