{"id":1249,"date":"2016-11-13T19:45:41","date_gmt":"2016-11-13T18:45:41","guid":{"rendered":"https:\/\/www.f5uii.net\/?p=1249"},"modified":"2022-09-04T10:26:19","modified_gmt":"2022-09-04T09:26:19","slug":"installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360","status":"publish","type":"post","link":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/","title":{"rendered":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode"},"content":{"rendered":"<p><\/p>\n<h2 class=\"np-title np-added\">Introduction<\/h2>\n<p>After my article about <a href=\"https:\/\/www.f5uii.net\/platine-mmdvm-pour-arduino-due\/\">MMDVM and all the installation steps of the MMDVM firmware on the Arduino Due card<\/a>, here is the article that allows you to answer the questions &#8220;how to install MMDVMHost on my Raspberry Pi&#8221; and &#8220;How do I make MMDVM tunings ?&#8221;.<\/p>\n<p>For non-beginners who already master the installation steps of the Raspberry Pi and the MMDVM software, they can directly read the parts devoted to the settings. This article is organized in multiple pages, I invite you to use the summary.<\/p>\n<p><div id=\"attachment_1277-2\" style=\"width: 790px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1277-2\" class=\"wp-image-1277 size-large\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/Synoptique-MMDVM-1024x405.gif\" alt=\"Synoptic of Digital Repeater using MultiMode Digital Voice Modem (MMDVM)\" width=\"780\" height=\"308\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/Synoptique-MMDVM-1024x405.gif 1024w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/Synoptique-MMDVM-300x119.gif 300w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/Synoptique-MMDVM-768x303.gif 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><p id=\"caption-attachment-1277-2\" class=\"wp-caption-text\">Synoptic of Digital Repeater using MultiMode Digital Voice Modem (MMDVM)<\/p><\/div><br \/>\n<!--nextpage--><\/p>\n<h2 class=\"np-title\" data-np-title=\"Install Raspberry Pi operating system\">\nInstall the Raspberry Pi Operating System<\/h2>\n<p>We will install the latest version of Raspbian Jessie Lite. The &#8220;Lite&#8221; version \u00a0is sufficient since we do not need the graphical interface<span style=\"font-size: 1.5rem;\">. The file to download is less voluminous than the full version.<\/span><\/p>\n<div class=\"level1\">\n<p>Prefer a fast class 10 microSD card.<\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_1\"><\/div>\n<h3 id=\"telecharger_raspbian\" class=\"sectionedit2\">Download Raspbian<\/h3>\n<div class=\"level3\">\n<p>Go to the download page of<a href=\"https:\/\/www.raspberrypi.org\/software\/operating-systems\/#raspberry-pi-os-32-bit\" target=\"_blank\" rel=\"noopener noreferrer\"> raspberrypi.org <\/a>and choose the light version (the version &#8220;lite&#8221;). Currently, the version available is the Jessie version.<a class=\"media\" title=\"documents:raspbian_jessie.png\" href=\"http:\/\/svxcard.f5uii.net\/lib\/exe\/detail.php?id=fr%3Ainstallation_debian_8_jessy_raspberry_pi_2&amp;media=documents:raspbian_jessie.png\"><img decoding=\"async\" class=\"mediacenter img-responsive aligncenter\" src=\"http:\/\/svxcard.f5uii.net\/lib\/exe\/fetch.php?w=200&amp;tok=0ef48b&amp;media=documents:raspbian_jessie.png\" alt=\"\" width=\"200\" \/><\/a><\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_2\"><\/div>\n<h3 id=\"installer_le_fichier\" class=\"sectionedit3\">Install the file<\/h3>\n<div class=\"level3\">\n<p>The downloaded file is a compressed file (zip), which you will first decompress it. You need to insert your blank microSD card, with an SD adapter into the card reader of your PC. You will use the &#8220;burn&#8221; \u00a0<a class=\"urlextern\" title=\"https:\/\/launchpad.net\/win32-image-writer\" href=\"https:\/\/launchpad.net\/win32-image-writer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Win32ImageWriter<\/a>\u00a0software. CAUTION, select the correct drive letter. In case of error, you may destroy the contents of your hard disk !<br \/>\n<a class=\"media\" title=\"documents:win32imagewriter.jpg\" href=\"http:\/\/svxcard.f5uii.net\/lib\/exe\/detail.php?id=fr%3Ainstallation_debian_8_jessy_raspberry_pi_2&amp;media=documents:win32imagewriter.jpg\"><img decoding=\"async\" class=\"mediacenter img-responsive aligncenter\" src=\"http:\/\/svxcard.f5uii.net\/lib\/exe\/fetch.php?w=300&amp;tok=ecb9ae&amp;media=documents:win32imagewriter.jpg\" alt=\"\" width=\"300\" \/><\/a><\/p>\n<p>Once your card is burned, insert your SD (microSD) into the Raspberry Pi port. Connect an Ethernet cable to your network router, and turn on the Raspberry Pi by connecting a power supply to a micro-USB (phone power charger). Make sure your power supply is at least 1 ampere. Indeed some power supplies too weak, allow the lighting of the Raspberry Pi LEDs suggesting that it works, but block in fact its startup.<br \/>\n<a class=\"media\" title=\"documents:img_20160704_211602.jpg\" href=\"http:\/\/svxcard.f5uii.net\/lib\/exe\/detail.php?id=fr%3Ainstallation_debian_8_jessy_raspberry_pi_2&amp;media=documents:img_20160704_211602.jpg\"><img decoding=\"async\" class=\"mediacenter img-responsive aligncenter\" src=\"http:\/\/svxcard.f5uii.net\/lib\/exe\/fetch.php?w=200&amp;tok=58bcfa&amp;media=documents:img_20160704_211602.jpg\" alt=\"\" width=\"200\" \/><\/a><\/p>\n<h2 id=\"connexion\" class=\"sectionedit5\">Connection to the Raspberry Pi<\/h2>\n<div class=\"level2\">\n<p>You have connected your Raspberry Pi to your Ethernet network. An automatic IP address was certainly given to him by the router (Internet box) of your network. Determine the IP address of the Raspberry Pi,<\/p>\n<ol class=\"fix-media-list-overlap\">\n<li class=\"level1\">\n<div class=\"li\">either by looking at the list of ip addresses connected to your router (or Internet box),<\/div>\n<\/li>\n<li class=\"level1\">\n<div class=\"li\">either by using a scanning software on your Ethernet network (example <a class=\"urlextern\" title=\"http:\/\/www.advanced-ip-scanner.com\/fr\/\" href=\"http:\/\/www.advanced-ip-scanner.com\/fr\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Advanced IP Scanner<\/a>)<\/div>\n<\/li>\n<\/ol>\n<p>Connect with a terminal software, for example <a href=\"https:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/latest.html\" target=\"_blank\" rel=\"noopener noreferrer\">Putty<\/a>\u00a0indicating the IP address of the Raspberry Pi, SSH protocol (port 22).<\/p>\n<p id=\"rbtNdaK\"><img loading=\"lazy\" decoding=\"async\" width=\"292\" height=\"127\" class=\"alignnone size-full wp-image-1320 \" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/09\/img_57d505d9a4102.png\" alt=\"\" \/><\/p>\n<p>Enter the login and password by default.<\/p>\n<pre class=\"lang:default highlight:0 decode:true code bash\">login : pi\r\npassword : raspberry<\/pre>\n<\/div>\n<p>Then run the command, to set the Raspberry Pi<\/p>\n<pre class=\"code bash\">raspi-config<\/pre>\n<p>Then choose the menu\u00a0<em>Expand Filesystem<\/em>\u00a0to use all available space on your SD card.<\/p>\n<p>Update the operating system with the following commands. The update files are downloaded directly from the internet. The process can be long, and depends on your download speed.<\/p>\n<\/div>\n<pre class=\"lang:sh decode:true\">sudo apt update\r\nsudo apt upgrade -y<\/pre>\n<p>Install the Git software which allows to download directly the projects available on the\u00a0<a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub Platform<\/a>.<\/p>\n<pre class=\"lang:sh decode:true\">sudo apt install git -y<\/pre>\n<h2>A few steps for the Raspberry Pi 3<\/h2>\n<p>If you are using a Raspberry Pi 3, here are some modifications to do. This paragraph should not be applied if you have an earlier version (2, B +), go directly to the next paragraph &#8220;Download the MMDVMHost software&#8221;<\/p>\n<ol>\n<li>Open the file\u00a0\/boot\/cmdline.txt :<\/li>\n<\/ol>\n<ul>\n<li>Delete &#8220;ttyAMA0&#8221;\u00a0in the line<\/li>\n<li>Delete the part &#8220;console=serial0,115200&#8221;\u00a0in the line<\/li>\n<\/ul>\n<p>You should have a line like this<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">dwc_otg.lpm_enable=0 console=tty1 root=\/dev\/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait<\/pre>\n<p>2. Open now the file \/boot\/config.txt<\/p>\n<pre class=\"lang:sh decode:true\">sudo nano \/boot\/config.txt<\/pre>\n<p>and add in last line (disables the bluetooth wireless function of Raspberry Pi 3)<\/p>\n<pre class=\"lang:default highlight:0 decode:true \">dtoverlay=pi3-disable-bt<\/pre>\n<p><!--nextpage--><\/p>\n<h3 class=\"np-title\" data-np-title=\"Install MMDVMHost\">Download the MMDVMHost software<\/h3>\n<p>Change to the directory \/opt<\/p>\n<pre class=\"lang:sh decode:true\">cd \/opt<\/pre>\n<p>We are now downloading the MMDVMHost project from Jonathan, and made available to <a href=\"https:\/\/github.com\/G4KLX\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/G4KLX\/<\/a>, with this command:<\/p>\n<pre class=\"lang:sh decode:true \">sudo git clone https:\/\/github.com\/G4KLX\/MMDVMHost<\/pre>\n<p id=\"skcNzQL\"><img loading=\"lazy\" decoding=\"async\" width=\"881\" height=\"847\" class=\"alignnone size-full wp-image-1251 \" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/img_57b5fc61e3203.png\" alt=\"\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/img_57b5fc61e3203.png 881w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/img_57b5fc61e3203-300x288.png 300w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/img_57b5fc61e3203-768x738.png 768w\" sizes=\"auto, (max-width: 881px) 100vw, 881px\" \/><\/p>\n<h3>Compile the MMDVMHost software<\/h3>\n<p>We change now to the \/opt\/MMDVMHost directory that contains\u00a0the source code previously\u00a0downloaded. We will launch the compilation of the software.<\/p>\n<pre class=\"lang:sh decode:true\">cd \/opt\/MMDVMHost\/\r\nsudo make<\/pre>\n<pre class=\"lang:sh highlight:0 decode:true \">pi@raspberrypi:\/opt\/MMDVMHost $ sudo make\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o AMBEFEC.o AMBEFEC.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o BPTC19696.o BPTC19696.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Conf.o Conf.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o CRC.o CRC.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Display.o Display.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRControl.o DMRControl.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRCSBK.o DMRCSBK.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRData.o DMRData.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRDataHeader.o DMRDataHeader.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMREMB.o DMREMB.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMREmbeddedLC.o DMREmbeddedLC.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRFullLC.o DMRFullLC.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRIPSC.o DMRIPSC.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRLookup.o DMRLookup.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRLC.o DMRLC.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRShortLC.o DMRShortLC.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRSlot.o DMRSlot.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRSlotType.o DMRSlotType.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRAccessControl.o DMRAccessControl.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DMRTrellis.o DMRTrellis.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DStarControl.o DStarControl.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DStarHeader.o DStarHeader.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DStarNetwork.o DStarNetwork.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o DStarSlowData.o DStarSlowData.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Golay2087.o Golay2087.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Golay24128.o Golay24128.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Hamming.o Hamming.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Log.o Log.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o MMDVMHost.o MMDVMHost.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Modem.o Modem.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Nextion.o Nextion.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o NullDisplay.o NullDisplay.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o QR1676.o QR1676.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o RS129.o RS129.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o SerialController.o SerialController.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o SHA256.o SHA256.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o StopWatch.o StopWatch.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Sync.o Sync.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o TFTSerial.o TFTSerial.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Thread.o Thread.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Timer.o Timer.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o UDPSocket.o UDPSocket.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o Utils.o Utils.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFControl.o YSFControl.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFConvolution.o YSFConvolution.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFFICH.o YSFFICH.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFNetwork.o YSFNetwork.cpp\r\ng++ -g -O3 -Wall -std=c++0x -pthread -c -o YSFPayload.o YSFPayload.cpp\r\ng++ AMBEFEC.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedLC.o DMRFullLC.o DMRIPSC.o DMRLookup.o DMRLC.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o Golay24128.o Hamming.o Log.o MMDVMHost.o Modem.o Nextion.o NullDisplay.o QR1676.o RS129.o SerialController.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o Timer.o UDPSocket.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o -g -O3 -Wall -std=c++0x -pthread -lpthread -o MMDVMHost\r\npi@raspberrypi:\/opt\/MMDVMHost $\r\n<\/pre>\n<p><!--nextpage--><\/p>\n<h3 class=\"np-title\" data-np-title=\"Configure MMDVMhost\">\nConfiguring MMDVMHost<\/h3>\n<p>All configuration of the MMDVM operation is carried out from the MMDVM.ini single configuration file. It is in this file that we will indicate in particular which modes will be activated (DStar, C4FM, DMR, &#8230;). In our case, we only set the DMR digital mode en route (Enable = 1 in the [DMR] section)<\/p>\n<p>Also, you will find your repeater callsign, as well as the ID (CCS7) you will surely receive in return of your<a href=\"http:\/\/ham-digital.net\/\" target=\"_blank\" rel=\"noopener noreferrer\"> online registration<\/a>.<\/p>\n<pre class=\"lang:sh decode:true\">sudo nano \/opt\/MMDVMHost\/MMDVM.ini\r\n<\/pre>\n<pre class=\"lang:ini highlight:0 decode:true\">[General]\r\nCallsign=F1ZZZ\r\nTimeout=180       # Transmitter timeout in seconds. Default is: 120s\r\nDuplex=1          # Is this station Simplex or Duplex. DVMega is simplex. Default is: 1\r\n# ModeHang=10     # Time to stay in mode after receiption. If set overrides RFModemHang and NetModemHang\r\nRFModeHang=10     # Time to stay in mode after RF-receiption Default is: 10s\r\nNetModeHang=3     # Time to stay in mode after Network-receiption Default is: 3s\r\nDisplay=None      # If a screen of LCD is on the device (None or name)\r\nDaemon=0          # Run in background\r\n\r\n[Info]\r\nRXFrequency=431950000    # Receiver frequency in Hz Used by DVMega, reported to DMR-Master. Default is: 0Hz\r\nTXFrequency=439550000    # Transmitter frequency in Hz. Used by DVMega, reported to DMR-Master. Default is: 0Hz\r\nPower=5                  # Power in Watts, for informational use only. Keep below 99 for BrandMeister\r\nLatitude=47.7            # if set, reported to DMR-Master, causes recognition as repeater in BrandMeister\r\nLongitude=7.4            # if set, reported to DMR-Master, causes recognition as repeater in BrandMeister\r\nHeight=12                # if set, reported to DMR-Master, causes recognition as repeater in BrandMeister\r\nLocation=Colmar\r\nDescription=Multi-Mode Repeater\r\nURL=www.yourwebsite.net\r\n\r\n[Log]\r\n# Logging levels, 0=No logging\r\nDisplayLevel=2          # log Debug to console. Default is: 1 \r\nFileLevel=2             # log Debug to file. Default is: 1\r\nFilePath=.\r\nFileRoot=MMDVM\r\n\r\n[CW Id]\r\nEnable=1                # Enable the CW Id\r\nTime=10                 # How often to ID in minutes\r\n\r\n[Modem]\r\nPort=\/dev\/ttyACM0\r\n# Port=\\\\.\\COM3\r\nTXInvert=0              # Invert TX data. Needed for some transmitters. Default is: 0\r\nRXInvert=0              # Invert RX data. Needed for some receivers. Default is: 0\r\nPTTInvert=0             # PTT goes low to transmit. Invert for some transmitters. Default is: 0\r\nTXDelay=100             # Give the transmitter time to settle in ms. Default is: 100ms\r\nDMRDelay=0              # Compensate for delay in transmitter audio chain in ms . Usually DSP based. Default is: 0.0ms\r\nRXLevel=50              # Soft control for receive level. Not used by DVMega. Default is: 100%\r\nTXLevel=50              # Soft Control for transmit level. Not used by DVMega. Default is: 100% \r\n# D-StarTXLevel=50\r\n# DMRTXLevel=50\r\n# YSFTXLevel=50\r\nOscOffset=0             # Tweak the Due oscillator if not using the TCXO. Default is: 0ppm\r\nRSSIMultiplier=1\r\nRSSIOffset=10\r\nDebug=0\r\n\r\n[D-Star]\r\nEnable=0                # Enable D-Star repeater mode. Default is: 1\r\nModule=C\r\nSelfOnly=0              # If set, only own ID can operate. Default is: 0\r\n\r\n[DMR]\r\nEnable=1                # Enable DMR repeater mode. Default is: 1\r\nBeacons=1               # Enable transmission of DMR-Beacons, used for DMR-Roaming\r\nId=2084333              # DMR ID of this station (repeater)\r\nColorCode=1             # Color Code to use for DMR repeater access. Default is: 2\r\nSelfOnly=0              # If set, only own ID can operate. Default is: 0\r\n# Prefixes=234,235      # These prefixes are whitelisted for operation. Default is: 0\r\nLookupFile=DMRIds.dat\r\nCallHang=3              # Time to answer in same Talk Group. Default is: 3\r\nTXHang=4                # Time that TX stays on transmission after DMR-over. Default is: 3\r\n#Blacklist=\r\n#DstIdBlackListSlot1RF=       # comma separated list TGs to block on RF Slot1\r\n#DstIdBlackListSlot2RF=       # comma separated list TGs to block on RF Slot2\r\n#DstIdWhiteListSlot1RF=       # comma separated list TGs to allow on RF Slot1\r\n#DstIdWhiteListSlot2RF=       # comma separated list TGs to allow on RF Slot2\r\n#DstIdBlackListSlot1NET=      # comma separated list TGs to block on NET Slot1\r\n#DstIdBlackListSlot2NET=      # comma separated list TGs to block on NET Slot2\r\n#DstIdWhiteListSlot1NET=      # comma separated list TGs to allow on NET Slot1\r\n#DstIdWhiteListSlot2NET=      # comma separated list TGs to allow on NET Slot2\r\n\r\n[System Fusion]\r\nEnable=0                      # Enable Fusion repeater mode. Default is: 1\r\n\r\n[D-Star Network]\r\nEnable=0                      # Enable D-Star network connection. Requires ircDDBGateway. Default is: 1\r\nGatewayAddress=127.0.0.1\r\nGatewayPort=20010             # UDP port ircDDBGateway is listening on.\r\nLocalPort=20011               # UDP port MMDVMHost is listening on. \r\nDebug=0\r\n\r\n[DMR Network]\r\nEnable=1                      # Enable DMR network connection. Default is: 1\r\nAddress=51.254.100.133\r\nPort=62031                    # Port DMRMaster is listening on\r\n# Local=3350                  # Local UDP port if needed else random\r\nPassword=passwOrd             # Access password of DMR Master\r\nRSSI=0                        # Enable RSSI measure. Defaukt is: 0\r\nSlot1=1                       # Enable Slot 1 Do not enable for DVMega. Default is: 1\r\nSlot2=1                       # Enable Slot 2. Default is: 1\r\nDebug=1                       # Default is: 0\r\n\r\n[System Fusion Network]\r\nEnable=0                      # Enable Fusion network connection\r\nLocalAddress=127.0.0.1\r\nLocalPort=3200\r\nGwyAddress=127.0.0.1\r\nGwyPort=4200\r\nDebug=0\r\n\r\n[TFT Serial]\r\nPort=\/dev\/ttyAMA0\r\nBrightness=50\r\n\r\n[HD44780]\r\nRows=2\r\nColumns=16\r\n\r\n# For basic HD44780 displays (4-bit connection)\r\n# rs, strb, d0, d1, d2, d3\r\nPins=11,10,0,1,2,3\r\n\r\n# Device address for I2C\r\nI2CAddress=0x20\r\n\r\n# PWM backlight\r\nPWM=0\r\nPWMPin=21\r\nPWMBright=100\r\nPWMDim=16\r\n\r\nDisplayClock=1\r\nUTC=0\r\n\r\n[Nextion]\r\nPort=\/dev\/ttyAMA0\r\nBrightness=50\r\nDisplayClock=1\r\nUTC=0\r\nIdleBrightness=20\r\n\r\n[OLED]\r\nType=3\r\nBrightness=0\r\nInvert=0\r\n<\/pre>\n<h3>First validation test, before calibration<\/h3>\n<p>To verify that<\/p>\n<ul>\n<li>the MMDVMHost software installed on the Raspberry Pi communicates correctly with the MMDVM firmware installed on the Arduino Due,<\/li>\n<li>the MMDVMHost software properly connects the DMR <a href=\"https:\/\/brandmeister.network\/\" target=\"_blank\" rel=\"noopener noreferrer\">BrandMeister<\/a>\u00a0server<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-1275\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/MMDVM-shield-for-Arduino-designed-by-F5UII-zoom.jpg\" alt=\"MMDVM shield for Arduino designed by F5UII zoom\" width=\"230\" height=\"153\" \/>We connect by USB cable between the Raspberry Pi and the Arduino Due. The right-hand plug of the Arduino Due must be used.<\/p>\n<p>Launch the software directly, indicating the path to the configuration file.<\/p>\n<pre class=\"lang:sh decode:true\">sudo \/opt\/MMDVMHost\/MMDVMHost \/opt\/MMDVMHost\/MMDVM.ini<\/pre>\n<p>The arduino starts blinking (slowly then quickly when the repeater is transmitting).<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1220 aligncenter\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/Arduino-Due-blinking-LEDgif.gif\" alt=\"Arduino Due blinking LED\" width=\"240\" height=\"180\" \/><\/p>\n<p>This gives you the following traces, with incoming traffic coming from the network (internet).<\/p>\n<pre class=\"lang:ini highlight:0 decode:true\">I: 2016-08-18 19:29:50.005 This software is for use on amateur radio networks only,\r\nI: 2016-08-18 19:29:50.005 it is to be used for educational purposes only. Its use on\r\nI: 2016-08-18 19:29:50.005 commercial networks is strictly prohibited.\r\nI: 2016-08-18 19:29:50.005 Copyright(C) 2015, 2016 by Jonathan Naylor, G4KLX and others\r\nM: 2016-08-18 19:29:50.005 MMDVMHost-20160816 is starting\r\nI: 2016-08-18 19:29:50.006 General Parameters\r\nI: 2016-08-18 19:29:50.006     Callsign: F1ZZZ\r\nI: 2016-08-18 19:29:50.006     Duplex: yes\r\nI: 2016-08-18 19:29:50.006     Timeout: 180s\r\nI: 2016-08-18 19:29:50.006     RF Mode Hang: 10s\r\nI: 2016-08-18 19:29:50.006     Net Mode Hang: 3s\r\nI: 2016-08-18 19:29:50.006     D-Star: disabled\r\nI: 2016-08-18 19:29:50.006     DMR: enabled\r\nI: 2016-08-18 19:29:50.006     YSF: disabled\r\nI: 2016-08-18 19:29:50.006 Modem Parameters\r\nI: 2016-08-18 19:29:50.006     Port: \/dev\/ttyACM0\r\nI: 2016-08-18 19:29:50.006     RX Invert: no\r\nI: 2016-08-18 19:29:50.006     TX Invert: yes\r\nI: 2016-08-18 19:29:50.007     PTT Invert: no\r\nI: 2016-08-18 19:29:50.007     TX Delay: 100ms\r\nI: 2016-08-18 19:29:50.007     DMR Delay: 0 (0.0ms)\r\nI: 2016-08-18 19:29:50.007     RX Level: 50%\r\nI: 2016-08-18 19:29:50.007     D-Star TX Level: 50%\r\nI: 2016-08-18 19:29:50.007     DMR TX Level: 50%\r\nI: 2016-08-18 19:29:50.007     YSF TX Level: 50%\r\nI: 2016-08-18 19:29:50.007     RX Frequency: 431950000Hz\r\nI: 2016-08-18 19:29:50.007     TX Frequency: 439550000Hz\r\nI: 2016-08-18 19:29:50.007     Osc. Offset: 0ppm\r\nM: 2016-08-18 19:29:50.007 Opening the MMDVM\r\nI: 2016-08-18 19:29:52.019 MMDVM protocol version: 1, description: MMDVM 20160624 24                          kHz (D-Star\/DMR\/System Fusion\/CW Id)\r\nI: 2016-08-18 19:29:52.039 Display Parameters\r\nI: 2016-08-18 19:29:52.040     Type: None\r\nI: 2016-08-18 19:29:52.040 DMR Network Parameters\r\nI: 2016-08-18 19:29:52.040     Address: 51.254.100.133\r\nI: 2016-08-18 19:29:52.040     Port: 62031\r\nI: 2016-08-18 19:29:52.040     Local: random\r\nI: 2016-08-18 19:29:52.040     Slot 1: enabled\r\nI: 2016-08-18 19:29:52.040     Slot 2: enabled\r\nI: 2016-08-18 19:29:52.040     RSSI: disabled\r\nI: 2016-08-18 19:29:52.040 Info Parameters\r\nI: 2016-08-18 19:29:52.040     Callsign: F5UII-R\r\nI: 2016-08-18 19:29:52.040     RX Frequency: 431950000Hz\r\nI: 2016-08-18 19:29:52.040     TX Frequency: 439550000Hz\r\nI: 2016-08-18 19:29:52.041     Power: 5W\r\nI: 2016-08-18 19:29:52.041     Latitude: 47.700001deg N\r\nI: 2016-08-18 19:29:52.041     Longitude: 7.400000deg E\r\nI: 2016-08-18 19:29:52.041     Height: 12m\r\nI: 2016-08-18 19:29:52.041     Location: \"Colmar\"\r\nI: 2016-08-18 19:29:52.041     Description: \"Multi-Mode Repeater\"\r\nI: 2016-08-18 19:29:52.041     URL: \"www.yourwebsite.net\"\r\nM: 2016-08-18 19:29:52.041 Opening DMR IPSC\r\nI: 2016-08-18 19:29:52.041 CW Id Parameters\r\nI: 2016-08-18 19:29:52.041     Time: 10 mins\r\nI: 2016-08-18 19:29:52.041 DMR Parameters\r\nI: 2016-08-18 19:29:52.041     Id: 2084333\r\nI: 2016-08-18 19:29:52.041     Color Code: 1\r\nI: 2016-08-18 19:29:52.041     Self Only: no\r\nI: 2016-08-18 19:29:52.042     Prefixes: 0\r\nI: 2016-08-18 19:29:52.042     Lookup File: DMRIds.dat\r\nI: 2016-08-18 19:29:52.042     Call Hang: 3s\r\nI: 2016-08-18 19:29:52.042     TX Hang: 3s\r\nI: 2016-08-18 19:29:52.042     RSSI Multiplier: 1\r\nI: 2016-08-18 19:29:52.042     RSSI Offset: 10\r\nI: 2016-08-18 19:29:52.297 Loaded 40545 DMR Ids to the callsign lookup table\r\nM: 2016-08-18 19:29:52.297 MMDVMHost-20160816 is running\r\nM: 2016-08-18 19:30:02.240 Logged into the master successfully\r\nM: 2016-08-18 19:52:37.767 DMR Slot 1, received network voice header from F1RRJ to TG 208\r\nM: 2016-08-18 19:52:48.764 DMR Slot 1, received network end of voice transmission, 10.7 seconds, 0% packet loss, BER: 0.0%\r\nM: 2016-08-18 19:55:40.749 DMR Slot 1, received network voice header from F1RRJ to TG 208\r\nM: 2016-08-18 19:55:57.644 DMR Slot 1, received network end of voice transmission, 16.8 seconds, 1% packet loss, BER: 0.0%\r\nM: 2016-08-18 19:56:15.277 DMR Slot 1, received network voice header from F4FHM to TG 208\r\nM: 2016-08-18 19:56:15.826 DMR Slot 1, received network end of voice transmission, 0.5 seconds, 0% packet loss, BER: 3.0%\r\nM: 2016-08-18 19:58:49.881 DMR Slot 1, received network voice header from ON7FI to TG 208\r\nM: 2016-08-18 19:58:50.858 DMR Slot 1, received network end of voice transmission, 0.8 seconds, 0% packet loss, BER: 0.0%\r\nM: 2016-08-18 19:59:08.617 DMR Slot 1, received network voice header from ON7FI to TG 208\r\nM: 2016-08-18 19:59:15.952 DMR Slot 1, received network end of voice transmission, 6.8 seconds, 0% packet loss, BER: 0.0%\r\nM: 2016-08-18 19:59:38.423 DMR Slot 1, received network voice header from ON7FI to TG 208\r\nM: 2016-08-18 19:59:47.558 DMR Slot 1, received network end of voice transmission, 9.1 seconds, 0% packet loss, BER: 0.0%\r\n<\/pre>\n<p>By visiting the Homebrew Repeaters page on the <a href=\"https:\/\/brandmeister.network\/?page=repeaters\" target=\"_blank\" rel=\"noopener noreferrer\">Brandmeister <\/a>website, you will see the callsign of your repeater\u00a0appearing.<\/p>\n<p id=\"fAgKIhX\"><img loading=\"lazy\" decoding=\"async\" width=\"1356\" height=\"611\" class=\"alignnone size-full wp-image-1392 \" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58279ac68e470.png\" alt=\"\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58279ac68e470.png 1356w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58279ac68e470-300x135.png 300w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58279ac68e470-768x346.png 768w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58279ac68e470-1024x461.png 1024w\" sizes=\"auto, (max-width: 1356px) 100vw, 1356px\" \/><\/p>\n<h3>MMDVM Firmware Command Specifications<\/h3>\n<p>For the curious, here are the specifications and commands of the firmware to send to the arduino MMDVM via the serial port : <a href=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/MMDVM-Specification-20150922.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">MMDVM Specification 20150922<\/a>\u00a0. Note that this documentation dates from September 2015. The information has been able to evolve since.<br \/>\n<!--nextpage--><\/p>\n<h3 class=\"np-title\" data-np-title=\"Tune DMR with MMDVMCal\">\nTuning the DMR digital mode<\/h3>\n<p>The DMR mode is not the simplest mode to set. Logically, the other modes will also be then adjusted. We will see what method to reach this goal.<\/p>\n<p>We present the technique allowing you to have an optimum result. You will need to equip yourself with:<\/p>\n<p>Nous vous pr\u00e9sentons la technique permettant d&#8217;avoir un r\u00e9sultat optimum. Vous devrez vous \u00e9quiper avec :<\/p>\n<ul>\n<li>A spectrum analyzer and its attenuators<\/li>\n<li>an oscilloscope<\/li>\n<\/ul>\n<p>First, we will set the transmission of the repeater, then in a second step, the reception of the repeater. For this, we will use the calibration software MMDVMCal. Let&#8217;s see how to install it.<\/p>\n<h4>Installing the Calibration Software<\/h4>\n<h5>Download MMDVMCal<\/h5>\n<p>Change to the \/opt directory<\/p>\n<pre class=\"lang:sh decode:true\">cd \/opt<\/pre>\n<p>We are now downloading Jonathan&#8217;s MMDVMCal project and made available on\u00a0<a href=\"https:\/\/github.com\/G4KLX\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/G4KLX\/<\/a>, with this command:<\/p>\n<pre class=\"lang:sh decode:true\">cd \/opt\/\r\nsudo git clone https:\/\/github.com\/G4KLX\/MMDVMCal<\/pre>\n<h5>Compile the MMDVMCal software<\/h5>\n<p>We change now to the \/opt\/MMDVMCal directory that contains\u00a0the source code previously\u00a0downloaded. We will launch the compilation of the software.<\/p>\n<pre class=\"lang:sh decode:true\">cd \/opt\/MMDVMCal\/\r\nsudo make<\/pre>\n<h4>Tuning\u00a0the DMR\u00a0transmission<\/h4>\n<p>To make our adjustments, your transceivers\u00a0must be connected to the <a href=\"https:\/\/www.f5uii.net\/platine-mmdvm-pour-arduino-due\/\">MMDVM filter shield<\/a>. Take a moment to check your wire-to-wire connections before you start the settings (Rx Audio, Squelch, Tx Audio, PTT and Ground).<\/p>\n<p>In my case, I use two Motorola GM360 sets. They are connected to the filter shield with PS2 (6-pin) connectors, and on the GM360 accessory socket (Supplier eg <a href=\"https:\/\/www.aliexpress.com\/item\/Radio-Relay-Station-Repeater-Connector-Cable-TX-RX-Time-Delay-for-Motorola-GM300-GM338-GM3188-GM3688\/32713851741.html?spm=2114.44010508.4.17.0k1nEF\" target=\"_blank\" rel=\"noopener noreferrer\">Aliexpress<\/a>). The Squelch (COR) signal level must be checked (active = high level), and if necessary be reversed by programming the GM360.<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1430 size-full\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5828b2635d311.png\" alt=\"Brochage des prises PS2 (MMDVM) vers le connecteur Motorola HLN9457a\" width=\"1680\" height=\"566\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5828b2635d311.png 1680w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5828b2635d311-300x101.png 300w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5828b2635d311-768x259.png 768w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5828b2635d311-1024x345.png 1024w\" sizes=\"auto, (max-width: 1680px) 100vw, 1680px\" \/><\/p>\n<div id=\"attachment_1373-2\" style=\"width: 510px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1373-2\" class=\"wp-image-1373\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/IMG_20161111_182650.jpg\" alt=\"Motorola GM360\" width=\"500\" height=\"375\" \/><p id=\"caption-attachment-1373-2\" class=\"wp-caption-text\">Motorola GM360<\/p><\/div>\n<div id=\"attachment_1393-2\" style=\"width: 510px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1393-2\" class=\"wp-image-1393 size-full\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58279b76cec57.png\" width=\"500\" height=\"274\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58279b76cec57.png 500w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58279b76cec57-300x164.png 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><p id=\"caption-attachment-1393-2\" class=\"wp-caption-text\">GM360 Rear Accessory Connector<\/p><\/div>\n<div id=\"attachment_1275-2\" style=\"width: 510px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1275-2\" class=\"wp-image-1275\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/08\/MMDVM-shield-for-Arduino-designed-by-F5UII-zoom.jpg\" alt=\"MMDVM shield for Arduino designed by F5UII zoom\" width=\"500\" height=\"333\" \/><p id=\"caption-attachment-1275-2\" class=\"wp-caption-text\">MMDVM, filter shield with PS2 connectors for transceivers<\/p><\/div>\n<p>Start the tuning software, specifying the serial port on which the arduino is connected to the Raspberry Pi. Usually, the USB port is created under\u00a0 \/dev\/ttyACM0<\/p>\n<pre class=\"lang:sh decode:true\">sudo \/opt\/MMDVMCal\/MMDVMCal \/dev\/ttyACM0<\/pre>\n<p>The help menu is displayed (h key).<\/p>\n<pre class=\"lang:default highlight:0 decode:true\" title=\"Les commandes de MMDVMCal\">The commands are:\r\n    H\/h      Display help\r\n    I        Toggle transmit inversion\r\n    i        Toggle receive inversion\r\n    P\/p      Toggle PTT inversion\r\n    Q\/q      Quit\r\n    R        Increase receive level\r\n    r        Decrease receive level\r\n    T        Increase transmit level\r\n    t        Decrease transmit level\r\n    D        DMR Deviation Mode (Adjust for 2.75Khz Deviation)\r\n    d        Return to Dstar Mode\r\n    V\/v      Display version of MMDVMCal\r\n    &lt;space&gt;  Toggle transmit<\/pre>\n<p>Place the &#8220;D&#8221; command (shift key D) to enter the DMR mode setting. To switch to transmission, press the space bar. The PTT light on the MMDVM \u00a0board must light up. Your transmitter\u00a0must now emit. At this time, the MMDVMCal software sends a low-frequency signal of 1200 Hz to your transmitter. You can optionally listen the signal with an analog receiver set on the output frequency of your (future) relay.<\/p>\n<p id=\"GiROmGq\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1456 alignright\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5829b49980ed7.png\" alt=\"\" width=\"53\" height=\"52\" \/><\/p>\n<p>Your spectrum analyzer must now be connected to the RF output of the transmitter. Be sure to set up a sufficiently powerful\u00a0attenuator to protect your analyzer. Set your analyzer to see the transmit signal.<\/p>\n<p>We will start by reducing the LF signal level generated by the MMDVM board, reducing the gain to 0%. To do this, press the &#8220;t&#8221; key (lower key t) several times. Check that the multi-turn TX potentiometer \u00a0(<a href=\"https:\/\/www.f5uii.net\/platine-mmdvm-pour-arduino-due\/\">R98 on my shield<\/a>) is close to the middle of its range, and in any case, not at the end of the range.<\/p>\n<p>Since the LF level is zero, you should only read the fundamental frequency on your analyzer\u00a0(Bessel function\u00a0<strong>J<sub>0<\/sub><\/strong>).<\/p>\n<div id=\"attachment_1396-2\" style=\"width: 810px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1396-2\" class=\"wp-image-1396 size-full\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/Fondamental-Lf-null.png\" alt=\"fondamental-lf-null\" width=\"800\" height=\"480\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/Fondamental-Lf-null.png 800w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/Fondamental-Lf-null-300x180.png 300w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/Fondamental-Lf-null-768x461.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><p id=\"caption-attachment-1396-2\" class=\"wp-caption-text\">Fundamental frequency with amplitude J0<\/p><\/div>\n<p>We will now increase the level of the low frequency 1200 Hz signal, the &#8220;harmonics&#8221; will appear to the left and right of the line J0. To increase the level, press the &#8220;<em>T<\/em>&#8221; key (uppercase T).<\/p>\n<div id=\"attachment_1398-2\" style=\"width: 810px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1398-2\" class=\"wp-image-1398 size-full\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/LF-1200-injected.png\" alt=\"lf-1200-injected\" width=\"800\" height=\"480\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/LF-1200-injected.png 800w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/LF-1200-injected-300x180.png 300w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/LF-1200-injected-768x461.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><p id=\"caption-attachment-1398-2\" class=\"wp-caption-text\">The frequency modulation spectrum with a 1200Hz BF signal (J0, J1, J2, J3 and J4 are present)<\/p><\/div>\n<p>Now, by continuing to increase the signal level with the &#8220;<em>T<\/em>&#8221; key (shift key T), you will see that the amplitude of the J<sub>0\u00a0<\/sub> line decreases. Beyond this point, by continuing to press &#8220;T&#8221;, the amplitude of the line J<sub>0\u00a0<\/sub> increases again. Note down the percentage you have reached, when the line is at minimum amplitude. We will save this TX level percentage later\u00a0in the MMDVMHost configuration file.<\/p>\n<p>This operating point can now be fine-tuned to the transmit potentiometer R98 of the <a href=\"https:\/\/www.f5uii.net\/platine-mmdvm-pour-arduino-due\/\">filtering MMDVM shield<\/a>, in order to always look for the amplitude of the lowest J<sub>0<\/sub>. This gives a spectrum like that there. Your shield\u00a0is noww tune\u00a0to transmit DMR.<\/p>\n<div id=\"attachment_1397-2\" style=\"width: 810px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1397-2\" class=\"wp-image-1397 size-full\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/LF-1200-level-where-J0-is-minimum.png\" alt=\"lf-1200-level-where-j0-is-minimum\" width=\"800\" height=\"480\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/LF-1200-level-where-J0-is-minimum.png 800w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/LF-1200-level-where-J0-is-minimum-300x180.png 300w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/LF-1200-level-where-J0-is-minimum-768x461.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><p id=\"caption-attachment-1397-2\" class=\"wp-caption-text\">Optimum adjustment of the DMR emission, the line J0 has disappeared<\/p><\/div>\n<div id=\"attachment_1421-2\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1421-2\" class=\"wp-image-1421 size-medium\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5828921ef0301-300x126.png\" width=\"300\" height=\"126\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5828921ef0301-300x126.png 300w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5828921ef0301-768x322.png 768w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_5828921ef0301.png 1003w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><p id=\"caption-attachment-1421-2\" class=\"wp-caption-text\">1,2000 kHz and 600 mV Peak-to-peak<\/p><\/div>\n<p>The signal injected on the Motorola GM360 corresponding to this operating point has an amplitude of 0.6 V. Note that this level is dependent on your transceiver, and that may not be an universal reference.<\/p>\n<div id=\"attachment_1419-2\" style=\"width: 330px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1419-2\" class=\"wp-image-1419 size-full\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/GM360_sig_in-pour-J0_mini.jpg\" alt=\"Signal en entr\u00e9e du GM360\" width=\"320\" height=\"234\" \/><p id=\"caption-attachment-1419-2\" class=\"wp-caption-text\">Amplitude du signal MMDVMCal pour J0 au minimum (poste GM360)<\/p><\/div>\n<p>In DMR, the frequency modulation deviation must be 2.75 kHz. MMDVMCal generates a signal of 1200 Hz. The Bessel J0 appears null when modulation index (x) is equal to 2.4. With this setting where the line J0 disappears, the operating point is set the deviation to 2.88 kHz (index = 2880\/1200 = 2.4). We have than to minimize the TX Level (in mmdvm.ini file) by 5% to set the right deviation. For example, if we have find a\u00a0TXLevel of\u00a085% in MMDVMCal, we will set in mmdvm.ini (85*0.95 =) 81 (Read below).<\/p>\n<div id=\"attachment_1409-2\" style=\"width: 604px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1409-2\" class=\"wp-image-1409 size-full\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58286d6232dfa.png\" width=\"594\" height=\"654\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58286d6232dfa.png 594w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/img_58286d6232dfa-272x300.png 272w\" sizes=\"auto, (max-width: 594px) 100vw, 594px\" \/><p id=\"caption-attachment-1409-2\" class=\"wp-caption-text\">Bessel Functions. Excerpt from Work Practical Electronics,<a href=\"http:\/\/users.polytech.unice.fr\/~ferrero\/TPelec4\/ep_unsa_elec4_tp_electronique_02_FM_2011.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">\u00c9cole Polytechnique de l\u2019UNS (in french)<\/a><\/p><\/div>\n<h4>Tuning with a SDR receiver (USB RTL key)<\/h4>\n<p><a href=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2017\/03\/img_58d7a1577f303.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-1700 alignright\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2017\/03\/img_58d7a1577f303-200x200.png\" alt=\"\" width=\"200\" height=\"200\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2017\/03\/img_58d7a1577f303-200x200.png 200w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2017\/03\/img_58d7a1577f303.png 270w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a>It is entirely possible to use a SDR receiver (such as a USB DVBT receiver RTL xxx) to replace the spectrum analyzer. This solution requires installing the SDRSharp software for example.<\/p>\n<div id=\"attachment_1699-2\" style=\"width: 1252px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1699-2\" class=\"wp-image-1699 size-full\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2017\/03\/img_58d7a07b7f1a0.png\" alt=\"\" width=\"1242\" height=\"947\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2017\/03\/img_58d7a07b7f1a0.png 1242w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2017\/03\/img_58d7a07b7f1a0-300x229.png 300w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2017\/03\/img_58d7a07b7f1a0-768x586.png 768w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2017\/03\/img_58d7a07b7f1a0-1024x781.png 1024w\" sizes=\"auto, (max-width: 1242px) 100vw, 1242px\" \/><p id=\"caption-attachment-1699-2\" class=\"wp-caption-text\">Setting DMR using a simple SDR RTL key<\/p><\/div>\n<h4>Tuning\u00a0DMR reception<\/h4>\n<p>Let&#8217;s see how to set the reception. This second phase is simpler. Indeed, the goal is simply that the audio levels are not too strong and do not saturate the analog input of the arduino Due. We will use an oscilloscope for this operation.<\/p>\n<p>First of all, I specify that your receiving station must output a low frequency signal without preemphasis or de-emphasis. The GM360 signal sent to the accessory jack is &#8220;Audio RX Flat&#8221;. If you can, configure your radio to send RX audio even if the squelch (COR) is not active.<\/p>\n<p>&nbsp;<\/p>\n<p>Verification consists in checking the oscilloscope signal A0 which is sent to the arduino. Place your tip on pin 7 of IC2. You can take mass on <a href=\"https:\/\/www.f5uii.net\/platine-mmdvm-pour-arduino-due\/\">JP5 or JP6<\/a> for example.<\/p>\n<p>Even in the absence of an RF signal by the receiver, the filter amplifies the signals. If signal saturation exceeds 3V peak-to-peak, decrease the amplitude by turning <a href=\"https:\/\/www.f5uii.net\/platine-mmdvm-pour-arduino-due\/\">potentiometer R99<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>This is an example of signals you have on analog input A0 when a DMR signal is received by the receiver. We can clearly seen that the DMR is a digital mode with &#8220;switched frames&#8221;, with &#8220;no\u00a0transmission&#8221; periods (largest amplitudes), where the noise signals evolve at a maximum of +\/- 1 V. The DMR signals evolve at about +\/- 400mV<\/p>\n<p><div id=\"attachment_1404-2\" style=\"width: 330px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1404-2\" class=\"wp-image-1404 size-full\" src=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/DMR-RX-Level.png\" alt=\"dmr-rx-level\" width=\"320\" height=\"234\" srcset=\"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/DMR-RX-Level.png 320w, https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/DMR-RX-Level-300x219.png 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><p id=\"caption-attachment-1404-2\" class=\"wp-caption-text\">DMR transmission<\/p><\/div><br \/>\n<!--nextpage--><\/p>\n<h3 class=\"np-title\" data-np-title=\"Save settings and use MMDVM\">\nSaving settings in MMDVM.ini<\/h3>\n<p>In order to verify that the DMR reception, we set the debug parameter to 1.<\/p>\n<p>We provide the IP address, port and password of the server (In our case for the <a href=\"https:\/\/bm.pd0zry.nl\/index.php\/France\" target=\"_blank\" rel=\"noopener noreferrer\">French Serveur 2081<\/a>)<\/p>\n<pre class=\"lang:sh decode:true\">sudo nano \/opt\/MMDVMHost\/MMDVM.ini<\/pre>\n<pre class=\"lang:default highlight:0 decode:true \" title=\"Param\u00e8tres DMR\">[DMR Network]\r\nEnable=1\r\nAddress=51.254.100.133\r\n# France Server 2081\r\nPort=62031\r\n# Local=3350\r\nPassword=passwOrd\r\nRSSI=0\r\nSlot1=1\r\nSlot2=1\r\nDebug=1   \r\n\r\n<\/pre>\n<p>The adjustment levels are to be reported in chapter [Modem]<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">[Modem]\r\nPort=\/dev\/ttyACM0\r\n# Port=\\\\.\\COM3\r\nTXInvert=0\r\nRXInvert=0\r\nPTTInvert=0\r\nTXDelay=100\r\nDMRDelay=0\r\nRXLevel=85\r\nTXLevel=81\r\n# D-StarTXLevel=50\r\nDMRTXLevel=81\r\n# YSFTXLevel=50\r\nOscOffset=0\r\nRSSIMultiplier=1\r\nRSSIOffset=10\r\nDebug=0\r\n<\/pre>\n<p>TXLevel and DMRTXLevel were set here to 81, corresponding to the value (percentage) determined with MMDVMCal (with the 5% reduction to feet with 2750 Hz bandwith of DMR).<\/p>\n<p>Run MMDVMHost with the path of the configuration file in argument:<\/p>\n<pre class=\"lang:sh decode:true \">sudo \/opt\/MMDVMHost\/MMDVMHost \/opt\/MMDVMHost\/MMDVM.ini\r\n<\/pre>\n<p>For\u00a0RXLevel parameter, it can be adjusted if necessary until the Debug lines &#8220;DMRSlotRx&#8221; are displayed systematically when you go into transmission.<\/p>\n<pre class=\"lang:default decode:true\" title=\"R\u00e9ception DMR\">M: 2016-11-11 16:55:42.720 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -158 202\r\nM: 2016-11-11 16:55:43.080 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -155 202\r\nM: 2016-11-11 16:55:43.441 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -148 202\r\nM: 2016-11-11 16:55:43.801 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -151 202\r\nM: 2016-11-11 16:55:44.161 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -157 201\r\nM: 2016-11-11 16:55:44.521 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -166 202\r\nM: 2016-11-11 16:55:44.882 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -174 202\r\nM: 2016-11-11 16:55:45.242 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -180 202\r\nM: 2016-11-11 16:55:45.599 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -178 202\r\nM: 2016-11-11 16:55:45.959 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -170 202\r\nM: 2016-11-11 16:55:46.321 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -165 202\r\nM: 2016-11-11 16:55:46.680 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -160 202\r\nM: 2016-11-11 16:55:47.041 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -171 201\r\nM: 2016-11-11 16:55:47.401 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -181 201\r\nM: 2016-11-11 16:55:47.761 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -192 201\r\nM: 2016-11-11 16:55:48.122 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -191 201\r\nM: 2016-11-11 16:55:48.479 Debug: DMRSlotRX: voice sync found slot\/pos\/centre\/threshold 2 452 -179 201\r\nM: 2016-11-11 16:55:48.840 Debug: DMRSlotRX: voice terminator found slot\/pos\/centre\/threshold 2 452 -170 201\r\nM: 2016-11-11 16:55:48.846 DMR Slot 2, received RF end of voice transmission, 7.2 seconds, BER: 0.0%<\/pre>\n<p>Now your digital DMR repeater must be ready for operation. You can consider that the settings are optimum when the BER rate is 0.0% at each transmission.<\/p>\n<p>If you do not have the correct operation, you can pass the TXInvert parameter to 1. Also, you will test RXInvert at 1. This will depend on your transceiver. (For example, for GM360: TXInvert = 0, RXInvert = 0. For a FT7800: TXInvert = 1, RXInvert = 0).<\/p>\n<p>To check the transmission quality, I invite you to use the parrot service (TG 9999), which returns to you your message when you release the PTT.<\/p>\n<h3>The automatic start of MMDVM<\/h3>\n<p>Your MMDVM digital repeater is set. You can return back debug parameters to 0.<\/p>\n<p>To ensure the automatic startup when powering up your Raspberry Pi, we add a line in the \/etc\/rc.local file, before the line &#8220;exit 0&#8221;<\/p>\n<pre class=\"lang:sh decode:true \">sudo nano \/etc\/rc.local\r\n<\/pre>\n<pre class=\"lang:sh decode:true \">#!\/bin\/sh -e\r\n#\r\n# rc.local\r\n#\r\n# This script is executed at the end of each multiuser runlevel.\r\n# Make sure that the script will \"exit 0\" on success or any other\r\n# value on error.\r\n#\r\n# In order to enable or disable this script just change the execution\r\n# bits.\r\n#\r\n# By default this script does nothing.\r\n\r\n# Print the IP address\r\n_IP=$(hostname -I) || true\r\nif [ \"$_IP\" ]; then\r\n  printf \"My IP address is %s\\n\" \"$_IP\"\r\nfi\r\n\r\nsudo  \/opt\/MMDVMHost\/MMDVMHost \/opt\/MMDVMHost\/MMDVM.ini\r\n\r\n\r\nexit 0\r\n<\/pre>\n<p><!--nextpage--><\/p>\n<h3 class=\"np-title\" data-np-title=\"Thanks\">\nThanks<\/h3>\n<p>I want to thank Jonathan G4KLX (<a href=\"https:\/\/twitter.com\/G4KLX\" target=\"_blank\" rel=\"noopener noreferrer\">@G4KLX<\/a>) who realized there a very complete and efficient software, able to treat now 4 digital modes (DStar, C4FM, DMR, and P25) ! Also, thanks to the designers of the filters and diagrams\u00a0KI6ZUM, EB4FBZ, SP8NTH &#8230; Also, thanks to Jean-Pierre F5AHO, for his help in carrying out measurements.<\/p>\n<p>It would interest me if you have set MMDVM for a Motorola GM360, if you also find a 1200 Hz signal at 600mV DC. Has anyone started a DMR repeater\u00a0with Motorola GM3<span style=\"text-decoration: underline;\">5<\/span>0?<\/p>\n<p>Comments are now opened. Do not hesitate to ask your questions &#8230;<\/p>\n<h5>References<\/h5>\n<ol>\n<li><a href=\"https:\/\/groups.io\/g\/MMDVM\" target=\"_blank\" rel=\"noopener noreferrer\">MMDVM support list\u00a0<\/a><\/li>\n<li>SP8NTH<\/li>\n<li><a href=\"https:\/\/bm.pd0zry.nl\/index.php\/Homebrew_Repeaters\" target=\"_blank\" rel=\"noopener noreferrer\">Homebrew repeaters<\/a><\/li>\n<li><a href=\"https:\/\/brandmeister.network\/\" target=\"_blank\" rel=\"noopener noreferrer\">Brandmeister<\/a><\/li>\n<li><a href=\"https:\/\/www.f5uii.net\/platine-mmdvm-pour-arduino-due\/\">F5UII MDVM shield<\/a><\/li>\n<\/ol>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Following my <a href=\"https:\/\/www.f5uii.net\/tutorial-installation-platine-board-firmware-mmdvm-arduino-due\/\">article about MMDVM <\/a> explaining  all the steps of installing the MMDVM firmware on the Arduino Due,  here is the article that allows you to answer the questions &#8220;<em><strong>how to install MMDVMHost on my Raspberry Pi <\/strong><\/em>&#8221; and <em> <strong> How do I adjust MMDVM shield ? <\/strong><\/em>&#8220;. <a class=\"more-link\" href=\"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/\">Lire plus &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":1423,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[30,25,29],"class_list":["post-1249","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mmdvm","tag-arduino","tag-mmdvm","tag-shield"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"Following my article about MMDVM explaining all the steps of installing the MMDVM firmware on the Arduino Due, here is the article that allows you to answer the questions &quot;how to install MMDVMHost on my Raspberry Pi &quot; and How do I adjust MMDVM shield ? &quot;.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"F5UII\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/\" \/>\n\t<link rel=\"next\" href=\"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/2\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"F5UII \u2013 French Hamradio Station - Presentation of the station F5UII, FY\/F5UII, and MMDVM, DMR, SvxLink, QO100 ressources\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode - F5UII \u2013 French Hamradio Station\" \/>\n\t\t<meta property=\"og:description\" content=\"Following my article about MMDVM explaining all the steps of installing the MMDVM firmware on the Arduino Due, here is the article that allows you to answer the questions &quot;how to install MMDVMHost on my Raspberry Pi &quot; and How do I adjust MMDVM shield ? &quot;.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2016-11-13T18:45:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-09-04T09:26:19+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode - F5UII \u2013 French Hamradio Station\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Following my article about MMDVM explaining all the steps of installing the MMDVM firmware on the Arduino Due, here is the article that allows you to answer the questions &quot;how to install MMDVMHost on my Raspberry Pi &quot; and How do I adjust MMDVM shield ? &quot;.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#blogposting\",\"name\":\"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode - F5UII \\u2013 French Hamradio Station\",\"headline\":\"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode\",\"author\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.f5uii.net\\\/wp-content\\\/uploads\\\/2016\\\/11\\\/MMDVM-analyseur-J0-minimum.jpg\",\"width\":2000,\"height\":1333},\"datePublished\":\"2016-11-13T19:45:41+01:00\",\"dateModified\":\"2022-09-04T10:26:19+01:00\",\"inLanguage\":\"en-US\",\"commentCount\":41,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#webpage\"},\"articleSection\":\"MMDVM, arduino, mmdvm, shield\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/category\\\/mmdvm\\\/#listItem\",\"name\":\"MMDVM\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/category\\\/mmdvm\\\/#listItem\",\"position\":2,\"name\":\"MMDVM\",\"item\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/category\\\/mmdvm\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#listItem\",\"name\":\"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#listItem\",\"position\":3,\"name\":\"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/category\\\/mmdvm\\\/#listItem\",\"name\":\"MMDVM\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/#organization\",\"name\":\"F5UII \\u2013 French Hamradio Station\",\"description\":\"Presentation of the station F5UII, FY\\\/F5UII, and MMDVM, DMR, SvxLink, QO100 ressources\",\"url\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/author\\\/admin\\\/\",\"name\":\"F5UII\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#webpage\",\"url\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/\",\"name\":\"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode - F5UII \\u2013 French Hamradio Station\",\"description\":\"Following my article about MMDVM explaining all the steps of installing the MMDVM firmware on the Arduino Due, here is the article that allows you to answer the questions \\\"how to install MMDVMHost on my Raspberry Pi \\\" and How do I adjust MMDVM shield ? \\\".\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/author\\\/admin\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.f5uii.net\\\/wp-content\\\/uploads\\\/2016\\\/11\\\/MMDVM-analyseur-J0-minimum.jpg\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#mainImage\",\"width\":2000,\"height\":1333},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\\\/#mainImage\"},\"datePublished\":\"2016-11-13T19:45:41+01:00\",\"dateModified\":\"2022-09-04T10:26:19+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/\",\"name\":\"F5UII \\u2013 French Hamradio Station\",\"description\":\"Presentation of the station F5UII, FY\\\/F5UII, and MMDVM, DMR, SvxLink, QO100 ressources\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.f5uii.net\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode - F5UII \u2013 French Hamradio Station","description":"Following my article about MMDVM explaining all the steps of installing the MMDVM firmware on the Arduino Due, here is the article that allows you to answer the questions \"how to install MMDVMHost on my Raspberry Pi \" and How do I adjust MMDVM shield ? \".","canonical_url":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#blogposting","name":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode - F5UII \u2013 French Hamradio Station","headline":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode","author":{"@id":"https:\/\/www.f5uii.net\/en\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/www.f5uii.net\/en\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/MMDVM-analyseur-J0-minimum.jpg","width":2000,"height":1333},"datePublished":"2016-11-13T19:45:41+01:00","dateModified":"2022-09-04T10:26:19+01:00","inLanguage":"en-US","commentCount":41,"mainEntityOfPage":{"@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#webpage"},"isPartOf":{"@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#webpage"},"articleSection":"MMDVM, arduino, mmdvm, shield"},{"@type":"BreadcrumbList","@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.f5uii.net\/en\/#listItem","position":1,"name":"Home","item":"https:\/\/www.f5uii.net\/en\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.f5uii.net\/en\/category\/mmdvm\/#listItem","name":"MMDVM"}},{"@type":"ListItem","@id":"https:\/\/www.f5uii.net\/en\/category\/mmdvm\/#listItem","position":2,"name":"MMDVM","item":"https:\/\/www.f5uii.net\/en\/category\/mmdvm\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#listItem","name":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.f5uii.net\/en\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#listItem","position":3,"name":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode","previousItem":{"@type":"ListItem","@id":"https:\/\/www.f5uii.net\/en\/category\/mmdvm\/#listItem","name":"MMDVM"}}]},{"@type":"Organization","@id":"https:\/\/www.f5uii.net\/en\/#organization","name":"F5UII \u2013 French Hamradio Station","description":"Presentation of the station F5UII, FY\/F5UII, and MMDVM, DMR, SvxLink, QO100 ressources","url":"https:\/\/www.f5uii.net\/en\/"},{"@type":"Person","@id":"https:\/\/www.f5uii.net\/en\/author\/admin\/#author","url":"https:\/\/www.f5uii.net\/en\/author\/admin\/","name":"F5UII"},{"@type":"WebPage","@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#webpage","url":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/","name":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode - F5UII \u2013 French Hamradio Station","description":"Following my article about MMDVM explaining all the steps of installing the MMDVM firmware on the Arduino Due, here is the article that allows you to answer the questions \"how to install MMDVMHost on my Raspberry Pi \" and How do I adjust MMDVM shield ? \".","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.f5uii.net\/en\/#website"},"breadcrumb":{"@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#breadcrumblist"},"author":{"@id":"https:\/\/www.f5uii.net\/en\/author\/admin\/#author"},"creator":{"@id":"https:\/\/www.f5uii.net\/en\/author\/admin\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.f5uii.net\/wp-content\/uploads\/2016\/11\/MMDVM-analyseur-J0-minimum.jpg","@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#mainImage","width":2000,"height":1333},"primaryImageOfPage":{"@id":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/#mainImage"},"datePublished":"2016-11-13T19:45:41+01:00","dateModified":"2022-09-04T10:26:19+01:00"},{"@type":"WebSite","@id":"https:\/\/www.f5uii.net\/en\/#website","url":"https:\/\/www.f5uii.net\/en\/","name":"F5UII \u2013 French Hamradio Station","description":"Presentation of the station F5UII, FY\/F5UII, and MMDVM, DMR, SvxLink, QO100 ressources","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.f5uii.net\/en\/#organization"}}]},"og:locale":"en_US","og:site_name":"F5UII \u2013 French Hamradio Station - Presentation of the station F5UII, FY\/F5UII, and MMDVM, DMR, SvxLink, QO100 ressources","og:type":"article","og:title":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode - F5UII \u2013 French Hamradio Station","og:description":"Following my article about MMDVM explaining all the steps of installing the MMDVM firmware on the Arduino Due, here is the article that allows you to answer the questions &quot;how to install MMDVMHost on my Raspberry Pi &quot; and How do I adjust MMDVM shield ? &quot;.","og:url":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/","article:published_time":"2016-11-13T18:45:41+00:00","article:modified_time":"2022-09-04T09:26:19+00:00","twitter:card":"summary_large_image","twitter:title":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode - F5UII \u2013 French Hamradio Station","twitter:description":"Following my article about MMDVM explaining all the steps of installing the MMDVM firmware on the Arduino Due, here is the article that allows you to answer the questions &quot;how to install MMDVMHost on my Raspberry Pi &quot; and How do I adjust MMDVM shield ? &quot;."},"aioseo_meta_data":{"post_id":"1249","title":null,"description":null,"keywords":null,"keyphrases":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2023-03-13 11:49:46","updated":"2026-10-30 22:14:46","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"primary_term":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.f5uii.net\/en\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.f5uii.net\/en\/category\/mmdvm\/\" title=\"MMDVM\">MMDVM<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tInstall MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.f5uii.net\/en\/"},{"label":"MMDVM","link":"https:\/\/www.f5uii.net\/en\/category\/mmdvm\/"},{"label":"Install MMDVMHost on Raspberry Pi and tuning MMDVM for DMR digital mode","link":"https:\/\/www.f5uii.net\/en\/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360\/"}],"_links":{"self":[{"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/posts\/1249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/comments?post=1249"}],"version-history":[{"count":87,"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/posts\/1249\/revisions"}],"predecessor-version":[{"id":4299,"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/posts\/1249\/revisions\/4299"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/media\/1423"}],"wp:attachment":[{"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/media?parent=1249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/categories?post=1249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.f5uii.net\/en\/wp-json\/wp\/v2\/tags?post=1249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}