Setup A MMDVM Hotspot 20161212

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Setup a MMDVMHost Raspberry Pi DVMega Hotspot

A an g e maakt :
A u t e u r:
Lab e ls:

26/11/2016 10:41
Filip Verhoeve
DMR, Dstar, Fusion, HAM, Linux

Bijg e w e rkt :

12/12/2016 22:50

1. Download Raspbian Jessie Lite https://www.raspberrypi.org/downloads/raspbian/

2. Use Win32 Disk Imager to save the Raspbian Jessie Lite on a 16 GB MicroSDHC card https://sourceforge.net/projects/win32diskimager/

3. Boot the Raspberry Pi 3 with a network connection and check the IP address in your router

4. Use Putty to make a SSH connection to your Raspberry Pi 3 http://www.putty.org/

Accept the Putty Security Alert

5. Login into your Raspberry Pi 3

login as: pi
raspberry@192.168.1.204's password:

raspberry

6. Expand your MicroSDHC filesystem to 16GB

# sudo raspi-config

and reboot

7. Update your Raspberry Pi 3 to the latest Raspbian Jessie Lite version

# sudo apt-get update && sudo apt-get upgrade

8. Setup Wireless networking


Check the available ESSID's
# sudo iwlist wlan0 scan
Edit wpa_supplicant.conf --> add your wireless network
# sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
country=BE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="Fill in your SSID"
psk="Fill in your password"
}

9. Improve color scheme / readability of the 'ls' command in Putty

# ls /home/
# dircolors --print-database > ~/.dircolors
# grep DIR .dircolors
Edit the .dircolors file
# nano .dircolors
Change DIR 01;34 # directory into DIR 01;33 # directory
# grep DIR .dircolors
# eval `dircolors ~/.dircolors`

10. Improve color scheme / readability of the command prompt


Edit the bashrc file
# nano .bashrc
Change following rows
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w
\$\[\033[00m\] '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
into these rows
if [ "$color_prompt" = yes ]; then
#
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w
\$\[\033[00m\] '
PS1='${debian_chroot:+($debian_chroot)}\! \[\033[01;32m\][\u@\h] \[\033[01;36m\]\w \$ \
[\033[00m\]'
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
Reload the bashrc file
# source ~/.bashrc

11. Install MMDVMHost


Install git software
# sudo apt-get install git screen
Download MMDVMHost & MMDVMCal
# cd /opt
# sudo git clone https://github.com/g4klx/MMDVMHost.git
# sudo git clone https://github.com/g4klx/MMDVMCal.git
Compile MMDVMHost & MMDVMCal
# cd /opt/MMDVMHost
# sudo make
# cd /opt/MMDVMCal
# sudo make
Create log directory for the MMDVMHost log files
# sudo mkdir /var/log/MMDVM

12. Configure MMDVMHost

# cd /opt/MMDVMHost
# sudo nano MMDVM.ini
[General]
Callsign=fill in your callsign
Timeout=180
Duplex=0
# ModeHang=10
# RFModeHang=10
RFModeHang=30
#(minimum 30sec required for Fusion)
NetModeHang=3
Display=Nextion #(in case Nextion display is used)
#Display=None
Daemon=0
[Info]
RXFrequency=433650000

TXFrequency=433650000
Power=1
Latitude=xx.xxxxxx
longitude=x.xxxxxx
Height=xx
Location=Describe your location
Description=Multi-Mode Repeater
URL=fill in your website (f.i. https://www.qrz.com/db/callsign)
[Log]
# Logging levels, 0=No logging
DisplayLevel=2
FileLevel=2
FilePath=/var/log/MMDVM
FileRoot=MMDVM
[CW Id]
Enable=1
Time=10
[DMR Id Lookup]
File=DMRIds.dat
Time=24
[Modem]
Port=/dev/ttyAMA0
# Port=/dev/ttyACM0
# Port=\\.\COM3
TXInvert=1
RXInvert=0
PTTInvert=0
TXDelay=100
DMRDelay=0
RXLevel=50
TXLevel=50
# CWIdTXLevel=50
# D-StarTXLevel=50
# DMRTXLevel=50
# YSFTXLevel=50
# P25TXLevel=50
OscOffset=0
RSSIMultiplier=1
RSSIOffset=10
Debug=0
[UMP]
Enable=0
# Port=\\.\COM4
Port=/dev/ttyACM1
[D-Star]
Enable=1
Module=B
SelfOnly=0
[DMR]
Enable=1
Beacons=1
Id=fill in your DMR ID XXXXXX
ColorCode=1
SelfOnly=0
# Prefixes=234,235
CallHang=3
TXHang=4
#Blacklist=
#DstIdBlackListSlot1RF=
#DstIdBlackListSlot2RF=
#DstIdWhiteListSlot1RF=
#DstIdWhiteListSlot2RF=
#DstIdBlackListSlot1NET=
#DstIdBlackListSlot2NET=
#DstIdWhiteListSlot1NET=
#DstIdWhiteListSlot2NET=
TGRewriteSlot1=0
TGRewriteSlot2=0
BMAutoRewrite=0
BMRewriteReflectorVoicePrompts=0
DirectDial=0
TargetTG=9
#RewriteMapSlot1=
#RewritemapSlot2=

[System Fusion]
Enable=1
RemoteGateway=0
[P25]
Enable=0
NAC=293
[D-Star Network]
Enable=1
GatewayAddress=127.0.0.1
GatewayPort=20010
LocalPort=20011
Debug=0
[DMR Network]
Enable=1
Address=81.95.127.156
Port=62031
Jitter=300
# Local=3350
Password=password
# Options=
RSSI=0
Slot1=0
Slot2=1
Debug=0

#(DMR Master Belgium)

[System Fusion Network]


Enable=1
LocalAddress=127.0.0.1
LocalPort=3200
GwyAddress=127.0.0.1
GwyPort=4200
Debug=0
[P25 Network]
Enable=0
GatewayAddress=127.0.0.1
GatewayPort=42020
LocalPort=32010
Debug=0
[TFT Serial]
# Port=modem
Port=/dev/ttyAMA0
Brightness=50
[HD44780]
Rows=2
Columns=16
# For basic HD44780 displays (4-bit connection)
# rs, strb, d0, d1, d2, d3
Pins=11,10,0,1,2,3
# Device address for I2C
I2CAddress=0x20
# PWM backlight
PWM=0
PWMPin=21
PWMBright=100
PWMDim=16
DisplayClock=1
UTC=0
[Nextion]
# Port=modem
# Port=/dev/ttyAMA0
Port=/dev/ttyUSB0
Brightness=50
DisplayClock=1
UTC=0
IdleBrightness=5
[OLED]
Type=3
Brightness=0
Invert=0
[LCDproc]
Address=localhost
Port=13666

#LocalPort=13667
DimOnIdle=0
DisplayClock=1
UTC=0

13. Configure serial communication with DVMega

# sudo nano /boot/cmdline.txt


Delete ttyAMA0 if present
Delete console=serial0,115200
You will get something like
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline
fsck.repair=yesrootwait
# sudo nano /boot/config.txt
Disable Bluetooth --> add at the end of the file
# Additionaloverlays and parametersare documented/boot/overlays/README
# Enableaudio (loadssnd_bcm2835)
dtparam=audio=on
# Modification Bluetooth
dtoverlay=pi3-disable-bt

14. Creating the needed services


Create service mmdvmhost.service
# sudo nano /lib/systemd/system/mmdvmhost.service
Add below in the new file
[Unit]
Description=MMDVM Host Service
After=syslog.targetnetwork.target
[Service]
User=root
WorkingDirectory=/opt/MMDVMHost
ExecStart=/usr/bin/screen -S MMDVMHost -D -m /opt/MMDVMHost/MMDVMHost /opt/MMDVMHost/MMDVM.ini
ExecStop=/usr/bin/screen -S MMDVMHost -X quit
[Install]
WantedBy=multi-user.target
CTRL+X and Y
Make your file executable
# sudo chmod 755 /lib/systemd/system/mmdvmhost.service
# sudo ln -s /lib/systemd/system/mmdvmhost.service /etc/systemd/system/mmdvmhost.service
Create a 60 sec timer mdvmhost.time
# sudo nano /lib/systemd/system/mmdvmhost.timer
Add following in the new file
[Timer]
OnStartupSec=60
[Install]
WantedBy=multi-user.target
CTRL+X and Y
Make your file executable
# sudo chmod 755 /lib/systemd/system/mmdvmhost.timer
# sudo ln -s /lib/systemd/system/mmdvmhost.timer /etc/systemd/system/mmdvmhost.timer
# sudo systemctl daemon-reload
# sudo systemctl enable mmdvmhost.timer

15. Reboot the Raspberry Pi 3 and wait 60 seconds till MMDVMHost starts

16. Install ircDDBGatewway

# sudo curl http://repo1.ham-digital.net/raspbian/opendv.list -o /etc/apt/sources.list.d/opendv.list


# cd /tmp
# wget http://repo1.ham-digital.net/debian/dl5di.pk

# sudo apt-key add dl5di.pk


# sudo apt-get update
# sudo apt-get install ircddbgateway
After the installation your /home/opendv/ircddbgateway/ircddbgateway file should like similar to below file
language=10
gatewayCallsign=fill in your callsign
latitude=xx.xxxxxx
longitude=x.xxxxxx
description1=Describe your location
url=fill in your website (f.i. http://status.ircddb.net/qam.php?call=your callsign)
hbAddress=127.0.0.1
hbPort=20010
repeaterCall1=fill in your callsign
repeaterBand1=B
repeaterType1=0
repeaterAddress1=127.0.0.1
repeaterPort1=20011
frequency1=433.650000
offset1=0.0000
rangeKms1=1
agl1=15
reflector1=DCS011 B
atStartup1=1
reconnect1=0
latitude1=xx.xxxxxx
longitude1=x.xxxxxx
ircddbEnabled=1
ircddbHostname=group1-irc.ircddb.net
ircddbUsername=fill in your callsign
ircddbPassword=
aprsEnabled=1
aprsHostname=euro.aprs2.net
aprsPort=14580
ccsEnabled=1
ccsHost=CCS711
dextraEnabled=1
dextraMaxDongles=3
dplusEnabled=1
dplusMaxDongles=3
dplusLogin=fill in your callsign
dcsEnabled=1
remoteEnabled=0
infoEnabled=1
echoEnabled=1
logEnabled=1
dratsEnabled=0
dtmfEnabled=1
Reboot the Raspberry Pi 3 and wait 60 seconds till MMDVMHost starts
17. Install YSFGateway
Download YSF Gateway
# cd /opt
# sudo git clone https://github.com/g4klx/YSFClients.git
Compile YSF Gateway
# cd /opt/YSFClients/YSFGateway
# sudo make
# sudo cp YSFGateway /usr/local/bin
Configure YSF Gateway
# sudo mkdir /etc/YSFGateway
# sudo nano /etc/YSFGateway/YSFGateway.ini
[General]
Callsign=fill in your callsign
Suffix=RPT
# Suffix=ND
RptAddress=127.0.0.1
RptPort=3200
LocalAddress=127.0.0.1
LocalPort=4200
Daemon=1
[Info]
RXFrequency=433650000
TXFrequency=433650000
Power=1
Latitude=xx.xxxxxx

Longitude=x.xxxxxx
Height=15
Name=Describe your location
Description=Multi-Mode Repeater
[Log]
# Logging levels, 0=No logging
DisplayLevel=2
FileLevel=2
FilePath=/var/log/YSFGateway
FileRoot=YSFGateway
[aprs.fi]
Enable=1
# Server=noam.aprs2.net
Server=euro.aprs2.net
Port=14580
Password=xxxx #(password can be checked with via http://apps.magicbug.co.uk/passcode/index.php)
[Network]
Enable=1
Port=42000
Hosts=/etc/YSFGateway/YSFHosts.txt
ReloadTime=60
ParrotAddress=127.0.0.1
ParrotPort=42000
# Startup=
Debug=0

Create log directory for the YSF Gateway log files


# sudo mkdir /var/log/YSFGateway
Move the Fusion Host file to the correct location
# sudo cp YSFHosts.txt /etc/YSFGateway
Download the most recent host file from the web
# sudo wget -O /etc/YSFGateway/YSFHosts.txt http://register.ysfreflector.de/export_csv.php
Define the correct file access rights
# sudo groupadd mmdvm
# sudo useradd mmdvm -g mmdvm -s /sbin/nologin
# sudo chgrp mmdvm /var/log/YSFGateway
# sudo chmod g+w /var/log/YSFGateway
Create a starting script for automatic start during boot
# sudo nano /etc/init.d/YSFGateway.sh
#!/bin/bash
### BEGIN INIT INFO
#
# Provides:
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description:

YSFGateway
$all
2 3 4 5
0 1 6
Example startscript YSFGateway

#
### END INIT INFO
## Fill in name of program here.
PROG="YSFGateway"
PROG_PATH="/usr/local/bin/"
PROG_ARGS="/etc/YSFGateway/YSFGateway.ini"
PIDFILE="/var/run/YSFGateway.pid"
USER="root"
start() {
if [ -e $PIDFILE ]; then
## Program is running, exit with error.
echo "Error! $PROG is currently running!" 1>&2
exit 1
else
## Change from /dev/null to something like /var/log/$PROG if you want to save output.
sleep 20
cd $PROG_PATH
./$PROG $PROG_ARGS
echo "$PROG started"
touch $PIDFILE
fi
}
stop() {
if [ -e $PIDFILE ]; then

## Program is running, so stop it


echo "$PROG is running"
rm -f $PIDFILE
killall $PROG
echo "$PROG stopped"
else
## Program is not running, exit with error.
echo "Error! $PROG not started!" 1>&2
exit 1
fi
}
## Check to see if we are running as root first.
## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
case "$1" in
start)
start
exit 0
;;
stop)
stop
exit 0
;;
reload|restart|force-reload)
stop
sleep 5
start
exit 0
;;
**)
echo "Usage: $0 {start|stop|reload}" 1>&2
exit 1
;;
esac
exit 0
### END
Make the starting script executable
# sudo chmod +x /etc/init.d/YSFGateway.sh
Activate script to run during boot
# sudo apt-get install chkconfig
# sudo chkconfig YSFGateway.sh on
Start the Fusion Gateway
# sudo /etc/init.d/YSFGateway.sh start
Update the Fusion Host file each 10 minutes
# sudo crontab -e
*/10 * * * * wget -O /etc/YSFGateway/YSFHosts.txt
http://register.ysfreflector.de/export_csv.php
Reboot the Raspberry Pi 3 and wait 60 seconds till MMDVMHost starts

18. Install MMDVMHost Dashboard


Install a lightweight webserver
# sudo apt-get install lighttpd
Create the correct group and user access rights
# sudo groupadd www-data
# sudo usermod -G www-data -a pi
# sudo chown -R www-data:www-data /var/www/html
# sudo chmod -R 775 /var/www/html
Install PHP5
# sudo apt-get install php5-common php5-cgi php5
# sudo lighty-enable-mod fastcgi
# sudo lighty-enable-mod fastcgi-php
# sudo service lighttpd force-reload
Install the MMDVMHost Dashboard
# cd /opt
# sudo git clone https://github.com/dg9vh/MMDVMHost-Dashboard.git
# sudo cp -r /opt/MMDVMHost-Dashboard/. /var/www/html/
# cd /var/www/html
# sudo rm index.lighttpd.html

Allow reboot, restart and halt commands within PHP


# sudo nano /etc/sudoers
%www-data ALL=NOPASSWD:

/sbin/halt, /sbin/reboot, /bin/systemctl

your dashboard can now be accessed via http://ip-of-your-mmdvm/


move /var/www/html/config/config.php outside your web file system !!!

19. Install and connect your Nextion 2.4" LCD display using a USB to TTL UART converter type CP2102

Connect the Nextion display to the CP2102 converter


Black
Yellow
Blue
Red

-->
-->
-->
-->

GND
RXD
TXD
5V

Plugin the USB-TTL converter into the USB port


Install Python & Python-Serial
# sudo apt-get install python-serial python
Stop the MMDMVHost if running
# sudo systemctl stop mmdvmhost.service
Download the Nextion Firmware into the display using the Raspberry Pi 3
# cd /opt/MMDVMHost/Nextion
# python nextion.py NX3224T024.tft /dev/ttyUSB0 #(use the .tft file conform the productcode
mentioned on the back
The MMDVM logo should appear after a succesfull download
Make sure the use of your Nextion display is activated in your MMDVM.ini file and the communication port and brightness are correctly set
[General]
Display=Nextion
#Display=None
[Nextion]
# Port=modem
# Port=/dev/ttyAMA0
Port=/dev/ttyUSB0
Brightness=50
DisplayClock=1
UTC=0
IdleBrightness=5 #(level at your own preference)
Restart the MMDVMHost service
# sudo systemctl start mmdvmhost.service

20. Enjoy your MMDVM Host in DMR, Dstar and Fusion mode !
73,
Filip - ON3FV

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy