Pages

28/03/2017

Adding a Nextion display to a MMDVMHost Hotspot


In a recent post I ran through setting a Raspberry Pi as a DMR hotspot using a DVMega and MMDVMHost.

MMDVMHost natively supports various displays including various TFT's manufactured by Nextion, 128x64 OLED screens commonly seen in Arduino projects, and HD44780 based LCD displays.


I wanted something colourful but still compact, so I went with a 2.4" Nextion screen available on Ebay here for around £12.50.  Shipping from China took just over 2 weeks which is satisfactory.


I also required a USB to Serial adapter to drive the display, as the Raspberry Pi's built in serial port was already being used to control the DVMega. This was purchased from Ebay here for £2.70.


The end result (Enclosure coming soon!)

For the instructions, click 'read more'


Note on the display

The ebay listing lists the display as a 'NX2432T024' which doesn't appear to be supported by MMDVMHost. However, I flashed it with the closest match (NX3224T024) and it works fine. In fact, during the flashing the screen identified itself as a NX3224T024.

Instructions

First of all login to your Raspberry Pi, and change to the root user.

Change to the src directory-
cd /usr/src


Download the python pip install script-
wget https://bootstrap.pypa.io/get-pip.py

Run the install script using python-
python get-pip.py


Once pip is installed we can install the pyserial library, required to 'flash' the display with the necessary files-
pip install pyserial


We now need to find out which tty the display is connected to using dmesg-
dmesg

As you can see below the OS detects the ch341-uart converter and attaches it to ttyUSB2-

Now move to the MMDVMHost/Nextion directory. Assuming you followed my previous tutorial this is located in /usr/src-
cd /usr/src/MMDVMHost/Nextion

Now run the nextion.py tool to copy the files to the display-
python nextion.py NX3224T024.tft /dev/ttyUSB2 

You should see the following-


Now we configure MMDVMHost to use the display by editing the config file. Mine is located in /tmp/MMDVM.ini-
nano /tmp/MMDVM.ini

Update the relevant sections to enable the display-
[General]
Display=Nextion

[Nextion]
Port=/dev/ttyUSB2
Brightness=50
DisplayClock=1
UTC=0
IdleBrightness=20

And restart MMDVMHost to reload the config and activate the display-
systemctl restart mmdvmhost.service

Here's a short video of my display in action-


2 comments:

  1. Great "how to" article. Have done same thing for my mobile install. My battery pack delivers only 1.8 A and I'm wondering if it's adequate. In transmit, seems to drop out after 30 - 60 seconds. Rx is fine. All in a 5 x 7 x 2 project box.

    Tom VE3NY

    ReplyDelete
  2. Thanks Tom. My Pi was using around 500mA so I'd expect a 1.8 A battery should be fine.

    ReplyDelete