Complete tutorial of MMDVM Firmware installation

Intro


The MMDVM software is a fabulous development realised by Jonathan G4KLX allowing to built a multimode digital hamradio repeater. Indeed, it can manage the three digtal modes DSTAR,DMR and C4FM.

MMDVM is composed of two physical parts.

  1. The part to decoding/encoding digital modes : MMDVM. This software is installed on an Arduino Due
  2. The network interfacing part, that connects to the reflectors, Talk Group Brandmeister or YSF Reflector : MMDVM Host, which is maily installed on the nano computer Raspberry Pi.

 

[en:]Synoptic MMDVM[fr:]Synoptique MMDVM

Synoptic of Digital Repeater using MultiMode Digital Voice Modem (MMDVM)

Aside from being accessible to DIY with computer knowledge… this is low-cost implementation. I suggest you follow step by step the whole implementation. The goal is simple: Have an interconnected digital UHF repeater via internet.

The tutorial is to read through several pages. For easy navigation, use the summary and the proposed navigation section at the bottom of each page.

Installation of the Arduino board

You buy your Arduino Due board, and the first thing to do is install the Arduino IDE editing software. Download the installation file (86Mo for the 1.6.0 version of the IDE) on page https://www.arduino.cc/en/Main/Software
Install the software. All the checkbox are checked especially Install USB Driver.

Several USB driver installation safety questions are asked. Of course, we answer Install.

The message Completed is displayed, the installation is finieshed, Click Close.

Connect the Arduino Due card on the programming of USB (external power connector side), the Device Manager of Windows adds a serial COM ports. In my case, a COM11 Port (Port Programming Arduino Die).

From your Star menu, you launch the software Arduino.

Choose the serial port corresponding a the Arduino link (here COM11) in the menu Tools / Ports.

Then choose Tools / Boards Manager. The manager downloads the definitions of Arduino cards over internet.

Dans le champs Filter your search, type due. Select the line Arduino SAM Boards (32-bits ARM Cortex-M3), et click Install.

Select now at the bottom of menu Tools / Boards : “Arduino Due (Programming Port)”

Before programming the Arduino with MMDVM software, we will inject a small test program to check that everything is correctly set.


If you would be interested to participate in a possible future new grouped order (MMDVM board, SvxLink Card), leave your email below to be reported!

9 thoughts on “Complete tutorial of MMDVM Firmware installation

  1. The first grouped order is about to be delivered. If you have an interest for any other grouped order, you can be alerted by email by adding your email to the site shop.f5uii.net
    Be alert of a new MMDVM kit grouped order

  2. Merci F5UII pour toutes ces explications et votre travail sur le sujet. Une question à propos de ce relais MMDVM à base de ARDUINO DUE.
    Est-il possible de la faire fonctionner ce relais en DMR autonome sans Rapberry PI ?
    Cette question car nous avons un projet à MARSEILLE sur un site dépourvu de connection à Internet.
    Merci pour votre retour

    (Traduction)
    Thank you F5UII for all these explanations and your work on the subject. A question about this MMDVM repeater based on ARDUINO DUE.
    Is it possible to operate this repeater in standalone DMR without Raspebrry PI?
    This question because we have a project in MARSEILLE on a site devoid of connection to Internet.
    Thanks for your feedback

    1. Merci Laurent,

      Il faudra toujours un Raspberry Pi qui assure la fonction de logique du relais. Sans internet, le relais fonctionnera en local comme un relais analogique, en local, en utilisant le canal (TalkGroup) TG 9.
      Dans ce cas, et même si cela ne semble pas nécessaire, il serait peut être nécessaire d’assurer une mise à l’heure du Raspberry Pi par une source externe (GPS ou RTC), afin qu’il ne dérive pas trop. Le Raspberry Pi se met à l’heure automatiquement par internet.

      (Traduction)
      Thank you Larry,

      It will always require a Raspberry Pi that provides the repeater controler function of the repeater. Without the internet, the relay will operate locally as an analog relay, locally, when users connecting it by using the TG 9 (TalkGroup) channel.
      In this case, and even if this does not seem necessary, i will advise to ensure that the Raspberry Pi is set to an external source (GPS or RTC) so that it does not drift too much. The Raspberry Pi automatically sets itself on the Internet.

  3. Bonjour a tous je me permet de copier l’échange par mails avec Christian au sujet de mon souci pour que tous le monde en profite.

    Tous d’abord merci du travaille effectuer pour la carte MMDVM… ainsi que SVXLink que j’ai aussi.

    J’ai un souci sur la carte MMDVM : au branchement de l’Arduino la LED L clignote doucement , puis des le démarrage de MMDVM elle clignote rapidement ainsi que TX/RX qui clignote synchro.

    Le logiciel ne reçois rien , j’ai bien fait la procédure de réglage du niveau sur la broche A0 suivant votre tuto, mais pas le moindre affichage de réception ni de LED SQUELCH allumer lors de la réception d’une émission.

    Cela fait plus d’une semaine que je cherche sans n’avoir rien trouver de probant.

    Si vous avez une idee ?

    73 QRO

    Romain Lepron F4HTU

    Reponse de Christian :

    Cela pourrait être résolu par la piste indiquée ici.
    https://www.f5uii.net/compilation-installation-configuration-mmdvm-stm32f4xx/#comment-13080

    Moi :
    Merci de la réponse rapide

    Donc le souci serait peut être que le TCXO n’envoie pas les bon niveau a l’Arduino.
    Il a besoin de sa pour se verrouiller, si cela n’est pas fait aucune réception ne peut être lancer si j’ai bien compris ?

    Je vais voir sa des maintenant

    Je viens de court-circuiter C22

    Effectivement javais 3v de niveau , maintenant j’ai bien 3.3V. Je vous joints la photos de l’oscilloscope, cela vous parait t-il correct ?

    Par contre toujours ces LED TXRX qui clignote ensemble , c’est normal ?

    Christian :
    OK pour le trace temporelle du TCXO.

    Concernant les LED : vérifier votre fichier config.h MMDVM

    La frequence normalement fourni par Shopchip est 12.288
    #define EXTERNAL_OSC 12288000
    #define ARDUINO_DUE_NTH

    (Translation)
    Hello all I can copy the exchange by mails with Christian about my concern so that everyone benefits.

    First of all thank you for the work done for the MMDVM card … as well as SVXLink that I also have.

    I have a problem with the MMDVM card: when the Arduino is connected, the LED L flashes slowly, then the MMDVM start flashes quickly and TX / RX flashes sync.

    The software does not receive anything, I did well the procedure of adjusting the level on pin A0 according to your tuto, but not the slightest reception display nor LED SQUELCH turn on when receiving a program.

    I have been searching for more than a week without having found anything convincing.

    If you have an idea ?

    73 QRO

    Romain Lepron F4HTU

    Answer by Christian:

    This could be solved by the track shown here.
    https://www.f5uii.net/compilation-installation-configuration-mmdvm-stm32f4xx/#comment-13080

    Me :
     Thanks for the quick reply

    So the worry may be that the TCXO does not send the right level to the Arduino.
        He needs his to lock himself, if that is not done no reception can be thrown if I understand correctly?

    I’ll see her now

    I just shortcut C22

    Actually I had 3v level, now I have 3.3V well. I attach you the photos of the oscilloscope, it seems to you correct?

    By cons always those TXRX LEDs that blink together, is it normal?

    Christian:
    OK for the time trace of the TCXO.

    About LEDs: check your config.h file MMDVM

    The frequency normally provided by Shopchip is 12,288
    #define EXTERNAL_OSC 12288000
    #define ARDUINO_DUE_NTH

  4. Voila , je viens de paramétrer l’Arduino sur define EXTERNAL_OSC 12288000

    Maintenant il faudra attendre ce soir pour voir si il reçois mon émission.

    Petite question : la LED SQUELCH est commander par l’arduino a travers la detection RADIO-SQL quand le transistor mets la borne A7 au plus 3V ?

    Que même quand le poste reçois une émission et qu’il passe le SQL a 5V , rien ne s’allume sur la carte.

    Le clignotement frénétique et synchro des LED TX/RX est donc normal.

    73 QRO

    (Translation)
    So, I just set the Arduino on define EXTERNAL_OSC 12288000

    Now he’ll have to wait until tonight to see if he gets my show.

    Small question: the LED SQUELCH is controlled by the arduino through the RADIO-SQL detection when the transistor puts terminal A7 at most 3V?

    That even when the station receive a broadcast and it passes the SQL to 5V, nothing lights up on the card.

    The frenzy and sync flashing of the TX / RX LEDs is therefore normal.

    73 QRO

    1. La LED Squelch est pilotée par l’arduino et sera allumée uniquement au décodage de signaux réceptionnés par MMDVM. Elle reste éteinte en effet pour tout autre signal non décodé par MMVDM (indépendant de RADIO-SQL et je crois bien non exploité en réalité).

      Les LEDs TX et RX sur la platine Arduino clignotent et indiquent qu’il y a communication entre le modem MMDVM (arduino) et MMDVMHost. Ce dialogue série est initialisé par MMDVMHost. C’est donc bon signe…

      La LED L clignote à une fréquence plus élevé lors que MMDMV tourne.
      Il ne vous reste plus qu’à faire des essais avec émetteur et récepteur.

      Bons essais !

      (Translation)
      The Squelch LED is controlled by the arduino and will only be lit when decoding signals received by MMDVM. It remains off for any other signal not decoded by MMVDM (independent of RADIO-SQL and I believe not really exploited in fact).

      The TX and RX LEDs on the Arduino board blink and indicate that there is communication between the MMDVM modem (arduino) and MMDVMHost. This serial dialog is initialized by MMDVMHost. So it’s a good sign …

      The LED L flashes at a higher frequency when MMDMV is running.
      All you have to do now is test with transmitter and receiver.

      Good trials!

  5. Ok je teste ca ce soir
    En espérant que le fait d’avoir le même ID sur le relais et dans le MD380 ne pose pas de souci…( juste le temps des test )
    Par contre , ayant qu’un seul des deux poste radio FT-7800 , cela ne pose t-il pas de problème que je le raccorde seulement a RECEIVER pour mes test de réception ?

    La carte peut elle juste recevoir sans émettre ou le portatif attend une confirmation du relais sur sa voie de réception ?

    Merci beaucoup

    (Translation)
    Ok I test it tonight
    Hoping that having the same ID on the relay and in the MD380 does not matter … (just test time)
    On the other hand, having only one of the two FT-7800 radio sets, does not it matter that I only connect it to RECEIVER for my reception test?

    Can the card just receive without transmitting or the handset waits for confirmation of the relay on its receiving channel?

    thank you very much

    1. Si vous connectez MMDVMHost à un master du réseau Brandmeister, normalement, l’ID du relais n’a pas besoin d’être forcément enregistré. Prenez tout de même un ID libre en consultant la base http://ham-digital.org/dmr-rptrreg.php#FRA
      Il vaut mieux que les ID soient distincts, je suppose que cela poserait problématique.

      Le relais doit être full-duplex. Cela n’ira pas si vous n’avez pas les deux postes. La section [General] de MMDVM.ini précise Duplex =1 pour un relais.

      Pour le réglage de MMDVMHost vous aurez certainement déjà découvert mon article
      https://www.f5uii.net/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360/

      Si vous ne branché que le RX, vous pourriez avoir par chance quelques traces dans le log de MMDVMHost, mais le réglage de la partie réception sera impossible tant qu’une liaison Fullduplex ne soit établi. A l’inverse le poste unique peut servir au réglage de la chaine d’émission, par utilisation de MMDVMCal.

      (Translation)
      If you connect MMDVMHost to a Brandmeister network master, normally the repeater ID does not need to be a register one. Please take a free ID – have a look on http://ham-digital.org/dmr-rptrreg.php#FRA
      It is better that the IDs are distinct, I suppose that would be problematic.

      The repeater must be full-duplex. This will not happen if you do not have both transceivers. The [General] section of MMDVM.ini specifies Duplex = 1 for a repeater.

      For the MMDVMHost setting you may have already discovered my post :
      https://www.f5uii.net/en/installation-calibration-adjustment-tunning-mmdvm-mmdvmhost-raspberry-motorola-gm360/

      If you only connect the RX, you may have a few log lines in the MMDVMHost log, but you can not set the receive part until a full-duplex connection is established. Conversely, the single station can be used to adjust the transmission way, using MMDVMCal.

  6. Ok
    Je vais prendre l’ID d’un ami pour mon MD-380 histoire que cela ne pose pas de souci.

    Je vais mettre le 7800 sur la chaine émission et un autres poste sur la chaine réception, c’est bien la dessus que je ne savais pas si il fallait une vrai liaison FULL-DUPLEX…

    Je préférer poser la question pour mettre toute les chances de mon coté 🙂

    Je vous donne des nouvelles ce soir , et peut être en DMR qui sais…

    73 QRO++

    OK
    I will take a friend’s ID for my MD-380 so that it does not matter.

    I’m going to put the 7800 on the transmission chain and another station on the reception chain, it is the subject, I did not know if it needed a real FULL-DUPLEX link …

    I prefer to ask the question to put the odds of my side 🙂

    I give you news tonight, and can be QRV in DMR who knows …

    73 QRO ++

Leave a Reply

Your email address will not be published. Required fields are marked *