Installation d’un écran OLED sur un relais MMDVM

Après l’article consacré à la configuration et installation d’un écran Nextion sur un relais MMDVM , voyons ensemble à présent comment se réalise l’intégration d’un petit afficheur OLED sur MMDVM.

Ce type d’afficheur est connu sous la référence SSD1306, il mesure 27 millimètres pour une définition de 128 x 64. Il existe deux variantes de l’écran SSD1306, une fonctionnant sur bus SPI et l’autre en I2C. J’ai choisi le modèle à bus I2C, reconnaissable à ces pins SCA et SCL. Il est monochrome mais existe également en une version bicolore jaune et bleu. Seul les lignes du haut de l’afficheur sont jaunes. C’est ce modèle que j’utilise.

Ecran OLED SSD1306

Prérequis logiciel

Vous êtes connecté au Raspberry Pi.

Tout d’abord, nos allons valider les bus SPI et I2C du Raspberry Pi, grâce au menu de configuration.

 

Nous installons à présent les packages logiciels pour gérer ces bus.

Pour que les modules démarrent nous devons les voir apparaitre dans le fichier modules

Vous devez avoir ces deux lignes

(Sortir avec Ctrl-X et Yes pour sauvegarder)

Nous redémarrons le Raspberry Pi

Après reconnexion, nous devons trouver les ports i2c et spi

Raccordement de l’écran

L’écran SSD1306 est une version avec bus I2C. Le raccordement se réalise comme indiqué ci-dessous.

Test de détection

Nous allons vérifier que le câblage est correct et que l’écran est bien détecté sur le bus I2C.

Lancer la commande suivante.

 

Un équipement 3c apparait. Il s’agit bien de l’écran SSD1306.

Installation de la bibliothèque de communication de l’écran OLED

Si vous n’auriez pas installé git sur votre Raspberry Pi, je vous propose de lancer cette commande.

Télécharger à présent la bibliothèque ArduiPi_OLED (directement sur github).

puis lancer la compilation du logiciel

Recompilation de MMDVMHost

Mettons à jour MMDVMHost avec ces quelques instructions. La compilation prendra plusieurs minutes.

Mise à jour du fichier de configuration MMDVMHost

Nous voilà à la dernière étape. Précisons à présent dans la section [General] du fichier MMDVM.ini que nous avons installé un écran OLED

Il fait référence à la section OLED que nous n’avons pas à modifier

Procédons finalement au redémarrer du Raspberry Pi

Résultat

L’afficheur SSD1306 s’allume. Il est en attente de trafic

Ecran SSD1306 I2C raccordé sur Raspberry Pi, et piloté par MMDVMHost

Sur le groupe de discussion TG2, WA4BPS est affiché, il est retransmis sur le Time Slot 2 en DMR

 

Vous rencontrez des difficultés de mise en oeuvre, vous pouvez en faire part en commentaires ci-dessous.



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!

15 réflexions au sujet de « Installation d’un écran OLED sur un relais MMDVM »

  1. Replace ‘armv6zk’ with ‘armv7-a’ in Makefile for Ubuntu Mate Pi3

    (Traduction)
    Remplacer ‘armv6zk’ par ‘armv7-a’ dans le Makefile d’Ubuntu Mate Pi3

  2. Hello
    I have only the first line
    i2c-dev
    spidev

    ” i2c-dev ”
    But all is allright
    73 J-Y

    (Traduction)
    Bonjour
    Je n’ai que la première ligne
    I2c-dev
    Spidev

                 “I2c-dev”
    Mais tout fonctionne bien
    73 J-Y

    1. Yes, it depend of the version of oled screen (it can be a version with SPI bus).
      (traduction)
      Oui, cela dépend de la version de l’écran Oled (cela peut être une version avec bus SPI)

      OLED SPI

  3. Hi,

    did all above but getting following at the end of the compiling process, any idea ?
    Thanks J.

    (Traduction)
    Hello,
    Ai fait tout ce qui précède, mais à suivre à la fin du processus de compilation, une idée?
    Merci J.


    //usr/local/lib/libArduiPi_OLED.so: undefined reference to
    i2c_smbus_write_i2c_block_data'
    //usr/local/lib/libArduiPi_OLED.so: undefined reference to
    i2c_smbus_write_byte_data'
    //usr/local/lib/libArduiPi_OLED.so: undefined reference to `i2c_smbus_write_word_data'
    collect2: error: ld returned 1 exit status
    Makefile.Pi.OLED:19: recipe for target 'MMDVMHost' failed
    make: *** [MMDVMHost] Error 1

    1. Jerry,

      It seems that the library libi2c-dev is not present. Have you execute the preliminary installation ? Is there no error at this stage ?
      sudo apt-get install build-essential git-core libi2c-dev i2c-tools lm-sensors

      (Traduction)
      Jerry,

      Cela ressemble à la librairie libi2c-dev absente. Avez-vous exécuter l’installation en préliminaire? Il n’y a pas eu d’erreur à ce moment ?
      sudo apt-get install build-essential git-core libi2c-dev i2c-tools lm-sensors

  4. HI

    It does not work. The i2cdetect -y 1 detection test finds the
    display. Recompiling the mmdvmhost gives me no errors.
    I’m using Jessie Western D-Star image with Raspberry pi B+.
    Any thoughts?

    Flavio VE2ZFP

    (Traduction)
    SALUT

    Ça ne marche pas. Le test de détection i2cdetect -y 1 trouve l’afficheur. La recompilation du mmdvmhost ne me donne aucune erreur.
    J’utilise une image Jessie Western D-Star avec Raspberry pi B +.
    Des idées?

    Flavio VE2ZFP

    1. Hi,
      If all compilation and I2C display detection is ok, you may have missed a parameter in the MMDVM.ini file
      Have a check.
      (Traduction)
      Salut
      Si la compilation et la détection de l’écran I2C est ok, alors peut-être avez vous loupé un paramètre dans le fichier MMDVM.ini
      Vérifiez

  5. Hello, if you want a file (RASBIAN) for your SD card no pb with OLED
    my mail on QRZ.com

    73 de F1IZL
    (Traduction)
    Bonjour, si vous voulez un fichier (RASBIAN) pour votre carte SD pas de problème avec OLED.
    Mon email sur QRZ.com

    73 de F1IZL

  6. Hi everyone!

    First of all i’d like to thank Jean-Yves for his offer, but I have managed to make it work.
    I have a problem with the OLED display now. It woks perfectly for some time then for no reason
    the OLED gets misaligned, the top where it says DMR or the antenna icon goes down and Idle goes up.
    I don’t know if I can post a link here, if you want to see what;s going on just google it “OLED SSD1306 problem
    video. That’s not mine but it’s exactly what happens here. Has anyone experienced this?
    Any help is appreciated.
    Thank’s
    73 de VE2ZFP

    (Translation)
    Salut à tous!

    Tout d’abord, j’aimerais remercier Jean-Yves pour son offre, mais j’ai réussi à le faire fonctionner.
    J’ai maintenant un problème avec l’écran OLED. Il se passe parfaitement pendant un certain temps, sans raison l’OLED est désaligné, le haut où il dit DMR ou l’icône de l’antenne descend et Idle monte.
    Je ne sais pas si je peux publier un lien ici, si vous voulez voir ce qui se passe sur Google, il “problème OLED SSD1306
    vidéo. Ce n’est pas à moi, mais c’est exactement ce qui se passe ici. Quelqu’un at-il connu cela?
    Toute aide est appréciée.
    Merci
    73 de VE2ZFP

  7. Bonjour très novice, sur le programmation du Raspberry 3, j’ai la version avec de l’écran OLED avec bus SPI, pour le faire fonctionner mis a part le branchement qui nécessite 6 fils doit-je installer une autre librairie pour le faire fonctionner avec MMDVM ?
    Merci
    Stéphane F5LGW

    (Translation)
    Hello very novice, on the programming of the Raspberry 3, I have the version with OLED screen with SPI bus, to make it work except for the connection which requires 6 wires must I install another library to make it work with MMDVM?
    Thank you
    Stéphane F5LGW

    1. Bonjour Stéphane,

      Dans le code OLED.cpp (https://github.com/g4klx/MMDVMHost/blob/master/OLED.cpp) semble avoir prévu l’utilisation de la version SPI de l’écran OLED. Malheureusement, je ne sais pas vous dire quel serait le paramètre et le cablage correspondant. Peut être vous faut-it rechercher la réponse ou poser la question sur le groupe MMDMV sur yahoo https://groups.yahoo.com/neo/groups/mmdvm/conversations/messages

      73

      (Translation)
      In the OLED. cpp code (https://github.com/g4klx/MMDVMHost/blob/master/OLED.cpp) seems to have foreseen the use of the SPI version of the OLED display. Unfortunately, I don’t know what the parameter and the corresponding wiring would be. Maybe you need to look for the answer or ask the question on the MMDMV group on yahoo https://groups.yahoo.com/neo/groups/mmdvm/conversations/messages

      73

  8. bonjour merci de l’info sur le OLED, le miens est monté sur un Hot Spot MMDVM à base de Orange Pi
    est t’il possible de supprimer ou modifier ce message IDLE, car il y a aussi un défilement MMDVM qui passe et au bout d’un moment ce fameux message, mais je ne trouve pas dans les fichiers ou on peut changer cela

    73 merci des infos

    (Translation)
    Hello thanks for the info about OLED, mine is mounted on an MMDVM Hot Spot MMDVM based on Orange Pi.
    is it possible to delete or modify this IDLE message, because there is also a MMDVM scrolling that passes and after a while this famous message, but I can’t find in the files where you can change it.

    73 thanks for the info

    1. Bonjour Jean-Charles,

      Le mot “idle” signifie inactif ou pas d’émission. Il s’affiche lorsque le hotspot (ou le relais) est en veille. Il s’affiche sur l’écran aléatoirement ou en défilant, comme un écran de veille.

      Si d’aventure vous voudriez remplacer le mot ‘idle’, le seul moyen que je vois est de modifier le code C de la fonction COLED::clearCWInt() qui est dans le fichier OLED.cpp puis de (re)conpiler le MMDVMHost.

      Ici ligne 363 (https://github.com/g4klx/MMDVMHost/blob/6ae4735598d179db21b58ad92eee06794104cc4f/OLED.cpp)

      73

      (Translation)
      Hello Jean-Charles,

      The word “idle” means inactive or no emission. It is displayed when the hotspot (or repeater) is in standby. It is displayed on the screen randomly or by scrolling, like a screen saver.

      If by adventure you would like to replace the word’ idle’, the only way I see is to change the C code of the function COLED:: clearCWInt () which is in the OLED. cpp file and then (re)condition the MMDVMHost.

      Here line 363 (https://github.com/g4klx/MMDVMHost/blob/6ae4735598d179db21b58ad92eee06794104cc4f/OLED.cpp)

      73

      1. bonjour merci de l’info, je vais tester ca rapidement

        encore GRAND merci

        73

        (Translation)
        Hello thanks for the info, I’ll test it quickly.

        again BIG thank you

        73

Laisser un commentaire

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