Nextion-дисплей для хотспота: подключение и прошивка
OLED-экранчик 0.96" показывает позывной и статус — и это уже неплохо. Но Nextion — умный цветной TFT с сенсорным стеклом и собственным процессором — выводит сразу: позывной и DMR ID звонящего, имя talkgroup, BER, RSSI, время последнего QSO и часы в режиме ожидания. Экран работает автономно: хост шлёт ему короткие команды по UART, а всю графику Nextion рисует сам. На хотспоте с образом RadioStar, Pi-Star или WPSD это реализовано «из коробки» — нужно только правильно подключить и настроить.
Что такое Nextion и чем он отличается от OLED
OLED (обычно 128×64, I²C) — пассивный дисплей: хост сам рисует каждый пиксель, постоянно обновляя буфер. Nextion — умный TFT: внутри стоит ARM-контроллер с флеш-памятью, где хранится интерфейс (картинки, шрифты, элементы). Хост (Raspberry Pi / MMDVMHost) отправляет по UART короткие текстовые команды вида t0.txt="R3ABC", а Nextion сам обновляет нужное поле. Это снижает нагрузку на Pi и даёт плавную анимацию без мерцания.
Интерфейс прошивается в Nextion файлом .tft (скомпилированный проект из Nextion Editor). Именно поэтому «прошивка дисплея» и «прошивка хоста» — две разные операции.
Выбор модели: размер и серия
Для MMDVM-хотспотов наиболее распространены три диагонали:
- 2.4" — компактный, влезает в большинство корпусов-шляп; разрешение 320×240.
- 3.2" — оптимальный баланс размера и читаемости; разрешение 400×240.
- 3.5" — максимум информации, но требует корпуса побольше; разрешение 480×320.
По серии: Basic (T) — например, NX4024T032 — достаточно для хотспота. Enhanced (K) — дороже, но добавляет RTC, больше флеша и скоростной UART. Для любительского узла разницы практически нет.
Подключение: UART и питание
Nextion общается с хостом по последовательному интерфейсу UART: четыре провода — питание (+5В и GND) и данные (TX, RX). Стандартная цветовая маркировка шлейфа дисплея:
- Красный — +5В (питание экрана);
- Чёрный — GND;
- Жёлтый — TX дисплея (подключается к RX хоста);
- Синий — RX дисплея (подключается к TX хоста).
Важно: TX и RX перекрещиваются — выход одного устройства идёт на вход другого. Ошибка здесь — самая частая причина «дисплей не реагирует».
Согласование уровней 5В и 3.3В
Raspberry Pi работает с логикой 3.3В. Большинство Nextion Basic-серии на линии TX фактически выдают 3.3В, что совместимо с Pi напрямую. Однако питание экрана — обязательно 5В: вывод 3.3В GPIO-колодки не тянет подсветку, нужен вывод 5В (pin 2 или 4 на GPIO Raspberry Pi).
Если дисплей подключается не к GPIO Pi напрямую, а к MMDVM-шляпе (HS_Hat, Nano_Hat и аналоги), уточните в документации шляпы — часть плат имеет встроенный разъём для Nextion с уже согласованными уровнями и 5В-питанием. В таком случае просто вставляете штатный шлейф.
Подключение через USB-UART адаптер
Если аппаратный UART Pi занят модемом DVMega или другим устройством — используйте адаптер USB-UART (CH341, CP2102). Nextion подключается к адаптеру, адаптер — в USB Pi. Система определит его как /dev/ttyUSB0 (или ttyUSB1, ttyUSB2 — зависит от порядка подключения); проверьте командой:
dmesg | grep ttyUSB
Прошивка дисплея файлом .tft
Nextion прошивается двумя способами: через microSD-карту (проще и надёжнее) или по UART из хоста (требует Python-скрипта). Рекомендуется microSD.
Способ 1: microSD
- Отформатируйте чистую microSD-карту в FAT32.
- Скопируйте на карту один файл .tft для вашей модели дисплея. Больше ничего на карте быть не должно.
- Вставьте карту в слот Nextion (слот на тыльной стороне платы).
- Подайте питание на дисплей. Экран автоматически обнаружит файл и начнёт прошивку — появится прогресс-бар.
- Дождитесь надписи об успехе, выключите питание, извлеките карту.
Способ 2: по UART из командной строки Pi
Если microSD недоступна — можно залить прошивку скриптом:
sudo python3 nextion.py NX4024T032.tft /dev/ttyAMA0
Скрипт nextion.py есть в том же репозитории WA6HXG. Перед запуском убедитесь, что MMDVMHost остановлен и порт свободен.
Настройка Pi-Star
Зайдите в Pi-Star → Configuration → MMDVM Configuration → Display. Установите:
- Display Type: Nextion
- Port: Modem — если Nextion подключён к MMDVM-шляпе напрямую; или /dev/ttyUSB0 — если через USB-адаптер; или /dev/ttyAMA0 — если к GPIO Pi.
- Screen Layout: для Pi-Star версий до 2.1 — ON7LDS 3; для 2.1 и новее — G4KLX.
После сохранения Pi-Star перезапустит MMDVMHost. Если дисплей ожил и показывает надпись «Idle» или часы — всё работает.
Настройка WPSD
В WPSD поддержка Nextion встроена нативно — никаких дополнительных скриптов не нужно. Откройте Admin → Configuration → Display:
- Display Type: Nextion
- Port: аналогично Pi-Star — modem, /dev/ttyUSB0 или /dev/ttyAMA0.
- Screen Layout: выберите нужный вариант из выпадающего списка (L0–L3 в зависимости от установленного макета).
WPSD обновляется по rolling-release модели; при очередном ночном обновлении драйвер Nextion также обновляется автоматически.
Настройка в образе RadioStar (DMRhub)
Образ RadioStar базируется на той же основе, что Pi-Star. Конфигурация Nextion редактируется в файле /etc/mmdvmhost вручную через SSH или через веб-интерфейс панели. Нужные секции:
[General]
Display=Nextion
[Nextion]
Port=/dev/ttyUSB0
Brightness=50
DisplayClock=1
UTC=0
IdleBrightness=20
После правки перезапустите сервис:
sudo systemctl restart mmdvmhost
Параметр Brightness — яркость в процентах (0–100). IdleBrightness — яркость в режиме ожидания, полезно для продления жизни экрана. DisplayClock=1 показывает часы в простое.
Соберите хотспот с Nextion уже сегодня
На странице «Собрать образ» вы выбираете тип платы, скачиваете готовый образ RadioStar для Raspberry Pi и прошиваете его за 10 минут. Nextion можно подключить сразу — образ поддерживает его без дополнительных пакетов. А контакт-листы DMRhub с позывными операторов сети скачиваются в кабинете.
Источники
- Репозиторий макетов MMDVM-Nextion с инструкцией по прошивке и разводке — github.com/WA6HXG
- Подключение Nextion к MMDVMHost (Marrold's Blog, практика с USB-UART) — marrold.co.uk
- Туториал Nextion + MMDVM + Raspberry Pi (F5UII), параметры UART и конфиг — f5uii.net
- Обновление прошивки Nextion для Pi-Star (Ailunce Blog) — ailunce.com