Platine MMDVM pour Nucleo STM32

Pour réaliser un relais numérique multimode, G4KLX a développé un logiciel très complet qui s’appelle MMDVM (Multimode Digital Voice Modem). Il est compatible des principaux modes numériques (à ce jour, C4FM, DSTAR, DMR Tier 2 et maintenant P25).

Après ma précédente carte d’interface MMDVM fonctionnant avec un Arduino Due, cette nouvelle carte permet de réaliser l’interface entre émetteur et récepteur sur la base de la carte Nucleo de ST Microelectronics à base de STM32F446RE. Cette carte à l’avantage de tourner à une cadence de 8 MHz (fréquence de CPU jusqu’à 180 Mhz) et présente un prix d’achat plutôt bas (environ 15 EUR HT). Un ordinateur (tel qu’un Raspberry Pi par exemple) connecter en USB au STM32 complète la logique de relais et héberge la seconde partie du logiciel MMDVMHost.

J’ai réalisé ce typon, comme un certain d’autres OM, avec composants de tailles classiques (Circuit intégré en DIL, les résistances en quart de Watt ,…). Il n’y a guère que le TCXO qui reste assez petit. Pour s’affranchir d’un composant CMS de mise en forme, j’ai choisi d’installer un TCXO HCMOS directement compatible des 3,3V. La référence choisie est la FOX924B-12 avec une stabilité annoncée de +/-2.5 ppm.

La platine s’enfiche directement sous la carte Nucleo STM32.

Les caractéristiques suivantes ont été ajoutées par rapport à la précédente carte d’interface MMDVM fonctionnant avec un Arduino Due :

  • Mesure de niveau des signaux RSSI renvoyé par le récepteur (avec jumper de validation)
  • Une LED signalant la vie de la platine (Live Led)
  • Quatre LED indiquant le mode actif (DStar, DMR, YSF, P25)
  • Pins d’interfaces radio intégrés entre les deux connecteurs mini-Din
  • Commutation possible vers un seul connecteur mini-Din Emetteur / Récepteur
  • Interface pour écran LCD tactile Nextion
  • Quatre pattes de fixations supplémentaires 3mm (50,00mm x 75,56mm)

Schéma de la platine MMDVM pour Nucleo STM32F4 – La filtre MMDVM est sous licence CC BY/SA/NC établi par KI6ZUM

Format PDF : Schema MMDVM shield for STM32

Platine MMDVM pour Nucleo STM32 (Vue du dessus – les dimensions en mm)

MMDVM pour STM32 – Face arrière avec plan de masse, avec deux connecteurs femelles

Voilà la nomenclature de composants :

Nom Valeur Précision Boîtier
C1 10µF D4R2,54_ELKO
C2 10µF D4R2,54_ELKO
C3 10nF 10% 3X5R2,54
C4 47µF D4R2,54_ELKO
C5 47µF D4R2,54_ELKO
C6 10nF 10% 3X5R2,54
C7 10nF 10% 3X5R2,54
C8 10µF D4R2,54_ELKO
C9 47µF D4R2,54_ELKO
C10 1nF 5% 3X5R2,54
C11 1µF D4R2,54_ELKO
C12 470pF 3X5R2,54
C13 39nF 5% 3X8R5,08
C14 10nF 10% 3X5R2,54
C15 100nF 3X5R2,54
C16 47µF D4R2,54_ELKO
C17 39nF 5% 3X8R5,08
C18 1nF 5% 3X5R2,54
C19 100nF 3X5R2,54
C20 47µF D4R2,54_ELKO
C21 100nF 3X5R2,54
C22 22nF 3X5R2,54
C29 100nF 3X5R2,54
C-RX1 Receiver DIN6POL-MINI
C-TX1 Transmitter DIN6POL-MINI
D1 LED SQUELCH LED_3mm_vert
D2 LED PTT LED_3mm_rouge
D3 LED POWER LED_3mm_jaune
D4 LED DSTAR LED_3mm_vert
D5 LED DMR LED_3mm_vert
D6 LED YSF LED_3mm_vert
D7 LED P25 LED_3mm_vert
D8 LED LIVE LED_3mm_jaune
IC2 MCP6002-I/P DIL8
IC3 MCP6002-I/P DIL8
IC4 LP2950ACZ3,3 TO92
Q1 2N7000 TO92
Q3 2N7000 TO92
R1 330 0204_MET
R3 4,7K 1% 0204_MET
R4 5,1K 1% 0204_MET
R5 22K 1% 0204_MET
R7 4,7K 1% 0204_MET
R8 4,7K 1% 0204_MET
R13 10K 0204_MET
R14 330 0204_MET
R15 47K 0204_MET
R16 1M 0204_MET
R17 47K 0204_MET
R18 5,1K 1% 0204_MET
R20 220 x 8 SIL9
R21 22K 1% 0204_MET
R22 4,7K 1% 0204_MET
R23 22K 1% 0204_MET
R24 27K 0204_MET
R25 47K 0204_MET
R30 100K 0204_MET
R98 100K VISHAY_64W
R99 100K VISHAY_64W
TCXO1 12MHz (FOX924B-12) CFPX-104
J1 Radio interfaces Stiftleiste_1x07_G_2,54
J2 Nextion LCD Stiftleiste_1x04_G_2,54
JP1 Connector Sel. Stiftleiste_2x02_G_2,54
JP2 En.RSSI Stiftleiste_1x02_G_2,54
CN7, CN20 Female conn. 2×19 Stiftleiste_2x19_F_2,54

Afin de réaliser votre exemplaire de la carte électronique, vous trouver ici tous les fichiers de production et perçage de la carte au format standard Gerber : MMDVM STM32 F5UII v2 – licenced CC by-nc-sa

Voici la carte montée, testée et fonctionnelle

Platine MMDVM montée sous la carte STM32 de ST Microelectronics

La carte STM32F4446RE à l’arrière de la platine de filtrage MMDVM

Sur le tableau ci-dessous, vous retrouvez le brochage à suivre en fonction de la platine. Comme ma précédente platine MMDVM pour Arduino utilise la définition NTH.

Une fois votre carte montée, vous serez certainement pressé de charger le firmware MMDVM et régler MMDVM sur la platine d’interface STM32 : Installation de MMDVM sur une carte STM32F4xx

Et pour ce qui concerne le réglage, je vous invite à lire l’article dédié à l’installation de MMDVHost et du réglage de mode DMR.

 

 


Si vous êtes intéressé pour participer à une éventuelle future nouvelle commande groupée (MMDVM board), laissez votre email ci-dessous pour être alerté !



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!

16 réflexions au sujet de « Platine MMDVM pour Nucleo STM32 »

  1. Hi ,

    Made the board using the Geber files .

    Seem to have a problem a soon i connect the TCXO .. i can’t program the board anymore .
    STM-32 link gives errors .. as soon i remove C22 .. it works fine to program .
    checked the TCXO with scope .. perfect 12Mhz ..

    73

    Tom

    1. Hello Tom,

      I do not understanding how it can be a link with the STM-32 programming failing, and the C22.
      I have mounted 22nF for C22, but 22pF is the normal value. If you can, have a try with 22pF.
      Actually, have you suppress C22 and put a strap for continuity of the signal ?

      Regards,

  2. Yes i tryed with a bridge on C22 ..
    Same problem .. it’s really weird , on the SP8NTH it’s indeed 22pf .
    Dit not try that yet .
    Werid this is . have it on 2 boards i made .
    A soon a remove C22 or the bridge .. i can program w/o problems .

    1. Adrian,

      I This MMDVM shield is yes inspired from SP8NTH schematic and will be plugged under a Nucleo STM32F446RE, but not for the Discovery version board. I do not know if this shield is existing somewhere. Sorry.

      regards

  3. Hello

    Thanks your effort. And I would like to ask a question. What is the output voltage of LP2950ACZ ? does is 3V or 3V3 ?

    As I found the Txco work on 3V3, but your circuit diagram marked the 3V only for the output of LP2950ACZ.

    (Traduction)
    Bonjour
    Merci de votre travail. Et j’aimerais poser une question. Quelle est la tension de sortie de LP2950ACZ? Est-ce que c’est 3V ou 3V3?
    Comme j’ai trouvé le travail de Txco sur 3V3, mais votre diagramme de circuit a marqué le 3V uniquement pour la sortie de LP2950ACZ.

    1. Thank you Francis,

      The supply must be 3,3V. I installed a LP2950ACZ-3,3 , that is thecomplete reference. I will precise it above.
      Thank for remarks.

      (Traduction)
      Merci Francis,

      L’alimentation doit être de 3,3V. J’ai installé un LP2950ACZ-3,3, voilà la référence complète. Je vais le préciser ci-dessus.
      Merci pour les remarques.

  4. IMPORTANTE INFORMATION :
    The STM32 gerber v1 included a big mistake ! The output of TCXO coming from C22 is wiring to pin 15 of CN7. It should have been connected to pin 17 CN7 !

    For those who would have realized the board based on the Gerber v1 file, you can correct this problem by opening C22 upper pin and connect it with a little wire to pin 17 of CN7 (9th row, right side of the board).

    Sorry for inconvenience.
    The Gerber v2 is correct now.

    —-

    INFORMATION IMPORTANTE:
    Le STM32 gerber v1 a inclus une grosse erreur! La sortie de TCXO provenant de C22 est le câblage de la broche 15 du CN7. Il aurait dû être connecté à la broche 17 CN7!

    Pour ceux qui auraient réalisé la platine sur la base du fichier Gerber v1, vous pouvez corriger ce problème en ouvrant la broche supérieure de C22 et la connecter avec un petit fil à la pin 17 du CN7 (9ème rangée, côté droit de la carte).

    Désolé pour les inconvénients.
    Le Gerber v2 est correct maintenant.

  5. Thanks for the fix and al your efforts Christian !
    here is a picture of the mod .

    Correction STM32 v1

    (Traduction)
    Merci pour la correction et tous vos efforts, Christian!
    Voici une image de la modif.

    1. Thank you Tom for you testing. The gerber (v2) is updated as the top/bottom board images.

      Merci Tom pour les tests. Le gerber (v2) est à jour ainsi que les images de la platine.

  6. So besides the C22 pin 15 of CN7 problem. Does the C22 also unnecessary, which can be removed (short the pins together).

    (Traduction)
    Donc, outre le soucis du raccordement de C22 à la pin 15 du CN7, le C22 est-il également inutile, et être supprimé (ou broches mises ensemble).

    1. Hi Francis,

      As you want, you can remove C22 like Tom has done (see above on picture) or let C22 online. So cut the upper pin (The one positioned nearby C16) and solder a wire on this up pin to CN7/17

      Comme vous le souhaitez, vous pouvez supprimer comme Tom l’a fait (voir ci-dessus sur la photo) ou laisser C22 en ligne. Coupez alors la pate du haut (celle positionné prêt de C16) et soudez un fil sur cette patte en l’air vers le CN7 / 17

  7. Someone tried to short CN7/15 and CN7/17 ?
    If pin15 is in high impedence ( eg. output mode ) is too easy to fix !

    73

    (traduction)
    Quelqu’un a-t-il essayé de court circuiter CN7/15 et CN7/17 ?
    Si pin 15 est en haute impédance (en mode de sortie), cela serait trop facile à règler !
    73

  8. I’m having problems with DMR reception into the repeater (DR1-X). Made the mod to connect TCXO pin 17 with/without 22 nF cap, but the modem will not decode DMR. Played with levels and looked ADC input with scope. All look comparible to my working Arduino Due based modem. Also tried an attenuator on the Disc output because I was seeing ADC overflow messages on DStar. No luck at all with DMR. No messages in MMDVMHost console when I TX with several different DMR HT’s.

    Receives and transmits DStar fine and transmits DMR network traffic OK. Adjusted TX deviation with Bessel null method which worked normally. The 446RE is running the latest FW and the host is also the current release. It compiled and installed without issue and is set up for a 12 MHz TCXO. The oscillator signal looks fine on the scope and is running at 12 MHz.

    Any troubleshooting tips and hints with MMDVM.ini settings appreciated. I am using RX and TX invert=1 and that seems to work with DStar, but tried various settings. Anyway to verify the STM32 is running on the external clock?

    Thanks

    Dave, K7DMK

    1. Well, I found the problem. It was a bad op-amp in the receive chain on the F5UII board. The bottom half of a sine wave test signal was being cut off when fed into the RX input. When I measured the bias voltage on the virtual ground voltage divider it was only about 1.1V instead of 3.3/2 or 1.65V. The bad op-amp input was pulling down the voltage instead of presenting a very high input impedance.

      Luckily I had installed IC sockets for the amps so it was a quick fix to replace the bad part.

      DMR decode is now working. Interestingly, DStar decode did not seem to be affected.

      Dave, K7DMK

      (Traduction)
      Voila, j’ai trouvé la source du problème. C’était un mauvais ampli-op installé dans la chaîne de réception sur la carte F5UII. La moitié inférieure du signal de test sinusoïdal était coupée lorsque placé dans l’entrée RX. Quand je mesure la tension de polarisation sur le diviseur virtuel de tension de masse, il n’y avait que seulement 1.1V au lieu de 3,3 / 2 ou 1.65V. La mauvaise entrée ampli-op tirant alors vers le bas la tension au lieu de présenter une impédance d’entrée très élevée.

      Heureusement, j’avais installé des supports de circuits intégrés pour les amplis de sorte qu’il était rapide de remplacer la pièce défectueuse.

      Le décodage DMR fonctionne maintenant. Fait intéressant, DStar ne semblait pas être affecté par le problème.

      Dave, K7DMK

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *