Dans la suite de mes articles pédagogiques sur MMDVM, je vous propose cette fois-ci un tutorial expliquant étape par étape, comment ajouté un écran Nextion (itead) sur votre relais MMDVM.
Programmation initiale de l’écran Nextion
Prérequis logiciel
Nous avons besoin de rajouter le module logiciel serial au langage python
sudo apt-get install python-serial
Configuration du port série /dev/ttyAMA0
Dévalider l’accès à la console par le port série. (Vous êtes connecté par un autre moyen).
sudo raspi-config
Configurer le port série et redémarrer le Raspberry Pi
Raccordement de l’écran
L’écran doit à présent être raccordé au port série (appelé UART) du Raspberry Pi, afin de pouvoir le programmer à l’étape suivante.
Chargement du firmware MMDVM sur l’écran Nextion
Sélectionner tout d’abord le fichier que vous allez charger en fonction de l’écran. Consultez la référence de l’écran indiqué sur le dos de celui-ci. Dans le cas de notre exemple, l’écran est sérigraphié NX3224T024_011. Nous allons identifier le nom du fichier avec les commandes suivantes
cd /opt/MMDVMHost/Nextion ls ls *24T024*
Nous trouvons deux fichiers correspondant à cet écran. Le fichier .HMI est le format natif. Le fichier .tft est le fichier binaire compilé qui sera chargé sur l’écran à l’étape suivante.
Nous allons à présent charger le fichier grâce au programme python nextion.py fourni. Le premier paramètre est le nom du fichier tft à charger, le second paramètre est le port série cible.
sudo python nextion.py NX3224T024.tft /dev/ttyAMA0
L’écran s’allume. Le logo MMDVM s’affiche.
Raccordement et configuration de MMDVM
Choix du raccordement
Il existe deux possibilités de raccordement de votre écran Nextion:
- Sur le Raspberry Pi, branché à l’identique de ce qui a été indiquée ci-dessous pour la partie programmation
- Sur la carte de filtrage MMDVM (Arduino ou STM32 , ou autre …)
Nous allons expliciter les deux manières de procéder.
L’écran Nextion sur le Raspberry Pi
Il nous faut valider le fonctionnement de l’écran en modifiant le fichier de configuration MMDVM.ini
sudo nano /opt/MMDVMHost/MMDVM.ini
En début du fichier, section [General] nous allons spécifier l’écran
[General] Callsign=F5ZKS Timeout=600 Duplex=1 # ModeHang=10 RFModeHang=10 NetModeHang=3 Display=Nextion #Display=None Daemon=0
Et nous vérifions que la section [Nextion] précise bien le port série utilisé
[Nextion] # Port=modem Port=/dev/ttyAMA0 Brightness=50 DisplayClock=1 UTC=0 IdleBrightness=20
Nous enregistrons le fichier modifié (Ctrl-X), et Yes
Nous redémarrons le Raspberry Pi
sudo reboot
L’écran s’allume et indique que MMDVM est prêt (Idle). L’indicatif et l’ID du relais est affiché.
L’écran Nextion sur la platine de filtrage MMDVM
Nous allons nous intéresser à la seconde possibilité de raccordement, celle de la platine de filtrage.
Configuration logiciel du firmware MMDVM
Notez que pour plus de détail sur le processus de mise à jour du firmware, référez-vous à l’article Installation de MMDVM sur une carte STM32F4xx
Nous modifions le fichier de configuration du firmware Config.h, en validant le port série pour l’afficheur Nextion (SERIAL_REPEATER), en bas de fichier
Puis on recompile de firmware MMDVM (cf. “Lancer la compilation” dans Installation de MMDVM sur une carte STM32F4xx).
On recharge la cible (avec STM32 utility pour Nucleo par exemple, voir :fr]Installation de MMDVM sur une carte STM32F4xx).
Configuration de MMDVMHost
Nous spécifions au fichier MMDVM.ini à présent que l’écran Nextion est raccordé sur le modem MMDVM.
sudo nano /opt/MMDVMHost/MMDVM.ini
[Nextion] Port=modem #Port=/dev/ttyAMA0 Brightness=50 DisplayClock=1 UTC=0 IdleBrightness=20
Dans la section [General], l’écran est spécifié Nextion.
[General] Callsign=F5ZKS Timeout=600 Duplex=1 # ModeHang=10 RFModeHang=10 NetModeHang=3 Display=Nextion #Display=None Daemon=0
Raccordement de l’écran sur le modem MMDVM
Brancher sur la platine MMDVM pour STM32 comme présenté sur la photo ci-dessous.
Nous redémarrons le Raspberry Pi
sudo reboot
Votre afficheur est opérationnel.
Installation de MMDVM sur une carte STM32F4xx .
We modify the config.h firmware configuration file, validating the serial port for the Nextion display (SERIAL_REPEATER), at the end of the file.
Then you recompile MMDVM firmware (see “Start compilation” in Installation de MMDVM sur une carte STM32F4xx).
We reload the target (with STM32 utility for Nucleo for example, see Installation de MMDVM sur une carte STM32F4xx).
Configuring MMDVMHost
We now specify in MMDVM.ini file so that the Nextion screen is connected to the MMDVM modem.
sudo nano /opt/MMDVMHost/MMDVM.ini
[Nextion] Port=modem #Port=/dev/ttyAMA0 Brightness=50 DisplayClock=1 UTC=0 IdleBrightness=20
In the [General] section, the screen is specified as Nextion.
[General] Callsign=F5ZKS Timeout=600 Duplex=1 # ModeHang=10 RFModeHang=10 NetModeHang=3 Display=Nextion #Display=None Daemon=0
Connecting the display to the MMDVM modem
Plug into the MMDVM Nucleo STM32 shield as shown on the picture below.
We restart the Raspberry Pi
sudo reboot
Your display is operational.
N’hésitez pas à utiliser les commentaires pour toute aide jugée nécessaire…