___________________________________________________________________________________________________________________________________________________________________________
___________________________________________________________________________________________________________________________________________________________________________

26 września 2026

PANEL 2.8" ESP32-2432S028R AS A MONITOR FOR MMDVM

 

Emulator podczas pracy. Przykładowy korespondent.

Emulator wyświetlacza NEXTION dla MMDVM DUAL — wersja na ESP32-2432S028R (CYD)

 

UWAGA !

Projekt przetestowany z HotSpotem MMDVM HS DUAL w trybie SIMPLEX.

Z innymi modelami MMDVM nie był testowany ale powinien też działać.

MMDVM HS DUAL

 

Skąd ten projekt ?

To kolejna odsłona mojej serii projektów łączących świat DMR/MMDVM z tanimi modułami ESP32 z wyświetlaczem. Tym razem zamiast dedykowanego wyświetlacza Nextion, jako panel dla hotspota MMDVM_HS_Dual_Hat posłużył popularny "żółty moduł" ESP32-2432S028R (CYD) w wersji 3, z dwoma złączami USB (micro-USB i USB-C) oraz 2,8-calową matrycą ST7789.

 Poprzednie wersje modułu CYD (Ver.1 i Ver.2) mają inny wyświetlacz i trochę inaczej zdefiniowane PIN-y a to może kolidować z transmisją z modułem MMDVM.

 

    Sam pomysł nie jest nowy — ESP32 od dawna potrafi udawać wyświetlacz Nextion, odbierając te same ramki protokołu, które Pi-Star normalnie wysyła do prawdziwego panelu dotykowego.

 https://hf5wwl.blogspot.com/2026/09/emulator-wyswietlacza-nextion-do.html

Nowością w tej wersji jest dopasowanie sprzętowe do konkretnej płytki CYD, która ma swoją specyfikę utrudniającą podłączenie.

Problem: złącze P5 jest zablokowane

Naturalnym miejscem do podłączenia hotspota wydaje się złącze P5 na płytce CYD — wyprowadzone są tam piny Vin, Tx, Rx i GND, czyli dokładnie to, czego potrzeba. Niestety w praktyce się nie da: sygnały Tx/Rx na tym złączu są blokowane przez układ obsługujący port USB i nie reagują na dane przychodzące z MMDVM.

Rozwiązaniem okazało się złącze CN1, na którym dostępne są piny +3,3V, IO22, IO27 oraz GND. Z tego zestawu wykorzystane zostały tylko IO22, IO27 i GND — pin 3,3V pozostaje niepodłączony, ponieważ na złączu SRV modułu MMDVM napięcie zasilające to +5V, a wpięcie go w pin opisany jako 3,3V uszkodziłoby płytkę. Stąd duże ostrzeżenie na schemacie: 3,3V !!!

Ostateczne połączenia wyglądają więc tak:

  • +5V (z MMDVM) → VIN na złączu P5 CYD — zasilanie całej płytki idzie tędy, mimo że linie danych na tym samym złączu są bezużyteczne
  • GND (MMDVM) → GND na P5
  • Tx / Rx (MMDVM) → IO22 / IO27 na złączu CN1 — tu faktycznie płynie komunikacja z hotspotem
  • Pin 3,3V na CN1 pozostaje wolny

To rozdzielenie zasilania (P5) i danych (CN1) jest sercem tej adaptacji — bez niego moduł CYD po prostu nie odbierałby żadnych ramek z MMDVM.

W kodzie odzwierciedla to prosta definicja pinów i inicjalizacja drugiego portu szeregowego:

#define MMDVM_RX 22
#define MMDVM_TX 27
...
Serial2.begin(9600, SERIAL_8N1, MMDVM_RX, MMDVM_TX);
 
Schemat poglądowy połączeń pomiędzy MMDVM i CYD
 
 

Połączenia wykonałem za pomocą kabelków z odpowiednimi wtyczkami:
 

 

Co potrafi program ?

Firmware (zapisane w module CYD) emuluje protokół Nextion na tyle wiernie, że Pi-Star/MMDVMHost nie widzi różnicy między prawdziwym panelem dotykowym a modułem CYD:

Parser protokołu Nextion

  • Ramki odczytywane są z terminatorem 0xFF ×3, tak jak w prawdziwym Nextionie
  • Program wysyła do MMDVM standardowy handshake (NEXTION + page0), dzięki czemu Pi-Star traktuje go jak legalny wyświetlacz
  • Parser jest świadomy aktywnej strony (page MMDVM / page DMR) — te same numery pól (t3, t5, t7...) oznaczają co innego w zależności od strony (np. t3 to na stronie MMDVM adres IP, a na stronie DMR realny talkgroup), więc rozróżnianie kontekstu jest kluczowe dla poprawnego odczytu danych

Ekran TFT

  • Tryb IDLE: zegar i komunikat o braku aktywności
  • Tryb RX: znak wywoławczy i imię korespondenta, jego miejscowość (dostępna dzięki pełnemu pipeline'owi NextionDriver), aktywny talkgroup, pasek siły sygnału RSSI (0–5 kresek) oraz kolorowany pasek jakości BER (zielony/żółty/czerwony)
  • Historia trzech ostatnio słyszanych stacji
  • Dolny pasek z temperaturą CPU Raspberry Pi (kolorowana wg progów) oraz częstotliwościami RX/TX skróconymi do czytelnego formatu (np. 439.454)
  • Delikatna animacja ikony anteny przy odbiorze, płynna aktualizacja samego zegara bez przerysowywania całego ekranu
  • Wygaszacz gasi podświetlenie po około 3 minutach bezczynności — ale ignoruje telemetrię (temperaturę, obciążenie CPU, adres IP), którą NextionDriver wysyła co 20–30 s nawet bez żadnej transmisji, więc ekran nie budzi się bez powodu

Panel WWW

  • Wbudowany serwer WWW z WebSocketem pokazuje na żywo w przeglądarce to samo, co widać na wyświetlaczu — te same dane, podobna stylistyka, automatyczne przeładowanie połączenia po jego zerwaniu
  • Automatyczne wykrywanie adresu Pi-Star przez mDNS
  • Jeśli nie chcemy łączyć się z Wi-Fi, w stopce zamiast adresu IP pojawia się po prostu "OFFLINE"  
  •  


Ważna uwaga: By wyświetlić obraz na ekranie komputera trzeba znać jego adres w sieci lokalnej. Adres można zobaczyć w monitorze portu szeregowego po resecie modułu CYD: 

 

 === EMULATOR NEXTION - MMDVM v2 ===
Laczenie z WiFi.........
Polaczono, IP emulatora: 192.168.0.203
Pi-Star (pi-star.local) nie odpowiedzial na mDNS.
Serwer WWW uruchomiony.
Serial2 9600 bps
Ready.

 

Różne moduły CYD mają różne adresy IP. W tym wypadku jest to adres 192.168.0.203

Tak więc wpisujemy do naszej wyszukiwarki: http://192.168.0.203 klikamy enter i mamy obraz monitora na naszym komputerze. Nie należy mylić tego adresu z adresem dostępu do Pi-Stara. To dwa różne adresy IP.


Podsumowanie

To praktyczny przykład, że ograniczenia konkretnej płytki (zablokowane P5) da się obejść, jeśli producent zostawił choć jedno zapasowe złącze z wolnymi GPIO — tu właśnie CN1 uratowało projekt. Kod jest w dużej mierze kontynuacją poprzednich wersji emulatora, tym razem dopasowaną pod konkretny, tani i łatwo dostępny moduł z ekranem 2,8".

 

📋 Szybka ściągawka: Konfiguracja Pi-Star dla emulatora CYD
Aby Twój Cheap Yellow Display poprawnie odbierał pełen pakiet danych z MMDVMHost, konfiguracja w panelu administracyjnym Pi-Star musi wyglądać następująco:
  1. Zaloguj się do panelu Pi-Star i przejdź do zakładki Configuration.
  2. W sekcji General Configuration odszukaj pole MMDVM Display Type.
  3. Ustaw parametry dokładnie według poniższej tabeli:
ParametrUstawienieOpis
MMDVM Display TypeNextionWłącza emulację ekranu szeregowego.
Port

/dev/ttyNextionDriver

 

 Kieruje sygnał bezpośrednio na złącze ekranu w modemie MMDVM.
Nextion LayoutON7LDS L3 HSKluczowe! Tylko ten profil wysyła pełną telemetrię (Częstotliwości, Temp CPU).

  1. Kliknij przycisk Apply Changes, aby zrestartować proces MMDVMHost z nowymi ustawieniami. 
💡 Wskazówka: Profil G4KLX wysyła jedynie podstawowe dane o znaku (Callsign). Wybór ON7LDS L3 HS jest warunkiem koniecznym, aby uruchomić zaawansowane funkcje parsowania napisane w kodzie ESP32!

 

Ustawienie konfiguracji komunikacji z wyświetlaczem CYD.

 

Na koniec krótki film prezentujący pracę CYD jako emulatora wyświetlacza NEXTION. Na początku jest trochę ciszy. Po prostu nikt nie rozmawiał. Dalej jest już normalna łączność. Przepraszam za jakość ale film był nagrywany telefonem i bez statywu. 

  
 
 
Tak wygląda praca wyświetlacza z programem w wersji EN (beta): 

Wersja PL jest taka sama tylko po Polsku :)

 

 

Pamiętaj o dobrym zasilaczu!  Ma mieć 5V i wydajność minimum 2A.

 

 Na razie to wszystko. Z pewnością będą jakieś zmiany i będę je nanosił na projekt.

73!

 

 

✍️ Autor: Robert HF5WWL
📅 Data projektu: wrzesień 2026 r.
 📍 Lokalizacja: Wołomin, POLSKA
📁 Coś nie jasne? Pytaj poprzez e-mail (hf5wwl@gmail.com) lub w komentarzu 
🛠️ Poziom trudności: Średni/trudny. Podstawy programowania w Arduino IDE.

📜 Program jest jak zwykle dostępny za darmo /aktualna wersja/. Wystarczy poprosić via e-mail. 

Jest możliwość otrzymania programu w wersji angielskiej (BETA). Testy trwają i pewnie będą jeszcze jakieś zmiany.


#ESP32 #CYD #MMDVM #DMR #PiStar #Nextion #krotkofalarstwo


2 komentarze:

  1. Anonimowy2/10/26 22:31

    super, existuje web flasher ?

    OdpowiedzUsuń
  2. Aktualizacje programu poprzez WiFi jest możliwe do realizacji o ile będzie na tą opcję większe zainteresowanie. Na razie nie jest brane pod uwagę.

    OdpowiedzUsuń

Zastanów się, czy to co tu napiszesz było by mile widziane na Twojej stornie www lub na Twoim blogu...
Niestosowne komentarze będą cenzurowane.