Installing an OLED display on a MMDVM repeater

After the article on the configuration and installation of a Nextion screen on a MMDVM repeater, let’s see together how to integrate a small OLED display on MMDVM.

This type of display is known by the reference SSD1306, it measures 27 millimeters for a display definition of 128 x 64. There are two variants of the SSD1306 display, one running on SPI bus and the other on I2C. I chose the I2C bus model, recognizable by these SCA and SCL pins. It is monochrome but also exists in a yellow and blue two-color version. Only the lines on the top of the display are yellow. This is the model I use.

OLED SSD1306 display

Software prerequisites

You are connected to Raspberry Pi.

First of all, we will validate the SPI and I2C buses of the Raspberry Pi, thanks to the configuration menu.

 

 

We now install software packages to manage these buses.

In order for the modules to start we must indicated them in the modules file

You must have these two lines

(Exit with Ctrl-X and Yes to save)

We restart the Raspberry Pi

After reconnecting, we must find the ports i2c and spi

Connecting the Display

The SSD1306 is an I2C bus version. The connection is made as shown below.

Detection Test

We will check that the wiring is correct and that the screen is detected on the I2C bus.

Start the following command.

 

Equipment 3c appears. This is the SSD1306 screen.

Installing the OLED Display Communication Library

If you did not install git on your Raspberry Pi, I suggest you run this command.

Download now the ArduiPi_OLED library (directly on github).

then run the software compilation

Recompiling MMDVMHost

Let’s update MMDVMHost with these few instructions. The compilation will take several minutes.

Updating the MMDVMHost Configuration File

Here is the final step. Now, in the [General] section of the MMDVM.ini file, we have installed an OLED screen

It refers to the OLED section that we do not have to change

Finally, we need to restart the Raspberry Pi

Result

The display SSD1306 lights up. It is waiting for traffic

SSD1306 I2C display connected to Raspberry Pi, and driven by MMDVMHost

On the talk group TG2, WA4BPS is displayed, it is retransmitted on the Time Slot 2 in DMR

 

You are experiencing difficulties in implementation, you can comment on it below.



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 thoughts on “Installing an OLED display on a MMDVM repeater

  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

Leave a Reply

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