___________________________________________________________________________________________________________________________________________________________________________
___________________________________________________________________________________________________________________________________________________________________________

18 wrze艣nia 2026

Tester rozdzielczo艣ci i offset贸w wy艣wietlaczy z rodziny ST77xx

 


Odbicie "lustrzane".
Prawid艂owy obraz w pozytywie.



 

 

 

 

 

 

 

Wst臋p

    Kiedy kupujemy wy艣wietlacz TFT z rodziny ST77xx (ST7789, ST7735, ST7796 itp.) — zw艂aszcza na portalach aukcyjnych, bez dok艂adnej dokumentacji — cz臋sto nie wiemy, jak膮 ma prawdziw膮 rozdzielczo艣膰 ani jakie s膮 jego offsety (colstart / rowstart). Biblioteki Adafruit domy艣lnie zak艂adaj膮 konkretne warto艣ci, a gdy si臋 pomylimy, efekt jest natychmiastowy:

  • obraz jest przesuni臋ty, uci臋ty na kraw臋dzi,

  • wida膰 „duchy" pikseli poza obszarem rysowania,

  • tekst jest lustrzany lub do g贸ry nogami,

  • kolory s膮 odwr贸cone (negatyw),

  • pod艣wietlenie nie dzia艂a.


    B艂膮d przesuni臋cia H.
        
    B艂膮d przesuni臋cia H i V.

     

     

     

     

 

 

 

 

    Zamiast metod膮 pr贸b i b艂臋d贸w modyfikowa膰 docelowy projekt — mo偶na u偶y膰 dedykowanego testera. Poni偶ej opisuj臋 program, kt贸ry napisa艂em na ESP32 z my艣l膮 o szybkiej kalibracji dowolnego panelu z rodziny ST77xx.


 

Co potrafi tester

    Program obs艂uguje si臋 wy艂膮cznie z Serial Monitora (115200 baud, Newline) — nie trzeba pod艂膮cza膰 偶adnych przycisk贸w, enkoder贸w ani potencjometr贸w. Po wgraniu na ESP32 i pod艂膮czeniu wy艣wietlacza wystarczy otworzy膰 Serial Monitor i wydawa膰 komendy.

Wzorzec testowy

Na ekranie rysowany jest czytelny wzorzec referencyjny:

  • Bia艂a ramka dok艂adnie na kraw臋dziach zadeklarowanego obszaru W × H — od razu wida膰, czy rozdzielczo艣膰 jest poprawna.

  • Siatka co 20 px (ciemnoszara) — u艂atwia ocen臋 przesuni臋cia.

  • Dwie przek膮tne (cyjan) — przecinaj膮 si臋 w geometrycznym 艣rodku.

  • 4 kolorowe znaczniki w rogach:

    • czerwony — lewy-g贸rny,

    • zielony — prawy-g贸rny,

    • niebieski — lewy-dolny,

    • 偶贸艂ty — prawy-dolny.

    Dzi臋ki nim od razu wida膰 orientacj臋 i ewentualne lustro. Czerwony znacznik zawsze musi trafi膰 w lewy-g贸rny r贸g czytelnego obrazu.

  • Na 艣rodku ekranu wy艣wietlane s膮: aktualne W × H, colstart/rowstart, rotacja oraz status INV / MX / MY.

Gotowe profile

Program zawiera kilkana艣cie wpisanych profili najpopularniejszych paneli — m.in.:

ProfilRozdzielczo艣膰Uwagi
ST7789 240×2401.3" / 1.54"klasyk prosto z AliExpress
ST7789 240×3202.0" / 2.4"najcz臋stszy „2.4 cala"
ST7789 135×2401.14"ma艂y IPS
ST7789 170×3201.9"
ST7789 172×3201.47"
ST7789 240×2801.69"
ST7789 240×2961.72"
ST7789P3 76×282pasekaktywny LOW, rotacja 1
ST7735 128×1601.8"
ST7735 128×1280.96" / 1.44"
ST7735 80×1600.96" mini
ST7796 320×4803.5"

Plus osobny profil „MANUAL / nieznany" — do kalibracji od zera.

Sterowanie z Serial Monitora

n / p    - nast臋pny / poprzedni gotowy profil
w / W    - width -1 / +1
h / H    - height -1 / +1
x / X    - colstart -1 / +1
y / Y    - rowstart -1 / +1
r        - rotacja 0 -> 1 -> 2 -> 3 -> 0
v        - prze艂膮cz negatyw / pozytyw
m        - lustro w poziomie (bit MX w MADCTL)
M        - lustro w pionie   (bit MY w MADCTL)
f        - cykl przez 4 kombinacje MX/MY (naprawa lustrzanego obrazu)
c        - wyczy艣膰 CA艁Y obszar GRAM (480×480)
B        - prze艂膮cz polaryzacj臋 pod艣wietlenia (HIGH/LOW)
i        - wymu艣 ponown膮 inicjalizacj臋 i przerysowanie
s        - zapisz konfiguracj臋 do NVS i wypisz gotowy kod
l        - lista wbudowanych profili z numerami
g<nr>    - skocz bezpo艣rednio do profilu o numerze <nr>, np. "g3"
a        - w艂膮cz / wy艂膮cz auto-cykl (zmiana profilu co 8 s)
b        - mignij pod艣wietleniem (test przewodu BL)
?        - pomoc

Po zmianie dowolnego parametru ekran jest natychmiast czyszczony i rysowany od nowa — efekt widoczny od razu, bez restartu ESP32.

Zapis i eksport gotowego kodu

Komenda s zapisuje aktualn膮 konfiguracj臋 do NVS (pami臋ci nieulotnej ESP32) — po restarcie program startuje z tymi samymi ustawieniami. Co wa偶niejsze, na Serial wypisuje gotowy kod do wklejenia w docelowym projekcie:

cpp
class ST77xxDisplay : public Adafruit_ST7789 {
public:
  ST77xxDisplay(int8_t cs, int8_t dc, int8_t rst) : Adafruit_ST7789(cs, dc, rst) {}
  void setOffsets(int8_t col, int8_t row) { setColRowStart(col, row); }
};
ST77xxDisplay tft(TFT_CS, TFT_DC, TFT_RST);

pinMode(TFT_BL, OUTPUT);
digitalWrite(TFT_BL, HIGH);  // pod艣wietlenie aktywne HIGH
tft.init(240, 320);
tft.setOffsets(0, 0);
tft.setRotation(0);
tft.invertDisplay(false);
{ uint8_t m = 0xC0; tft.sendCommand(0x36, &m, 1); }  // rot=0 MX=0 MY=0

Wklejasz, kompilujesz, dzia艂a.


Ostatnia poprawka do starej wersji: pe艂ne czyszczenie GRAM

Problem

    Podczas kalibracji zmienia si臋 rozdzielczo艣膰, offsety, rotacj臋 i inwersj臋 dziesi膮tki razy. Standardowa funkcja fillScreen() czy艣ci tylko obszar bie偶膮cego W × H — wi臋c je艣li wcze艣niej testowa艂e艣 panel 320×480, a teraz przeskakujesz na 135×240, to poza nowym oknem adresowym zostaj膮 艣mieci z poprzedniego profilu. Utrudnia to ocen臋, czy np. colstart jest ju偶 ustawiony dobrze, bo wida膰 „duchy" pikseli w miejscach, kt贸rych nowy obraz nie zdo艂a艂 zamalowa膰.

Dodatkowo okazuje si臋, 偶e Adafruit_ST7789::setAddrWindow() automatycznie dodaje offsety colstart / rowstart do podanych wsp贸艂rz臋dnych. Wi臋c pr贸ba wyczyszczenia ekranu przez setAddrWindow(0, 0, 480, 480) przy profilu z colstart = 80 adresuje w rzeczywisto艣ci 80..559 × 80..559 — sterownik zawija licznik GRAM, cz臋艣膰 ekranu pozostaje nietkni臋ta, a inne piksele s膮 zapisywane wielokrotnie.

Rozwi膮zanie

W wersji v1.6 funkcja clearScreen() wysy艂a surowe komendy CASET / RASET / RAMWR bezpo艣rednio przez sendCommand(), z pe艂nym zakresem 0..479 i bez offset贸w:

cpp
void clearScreen() {
  uint8_t caset[4] = { 0x00, 0x00, (uint8_t)((CLEAR_MAX_W - 1) >> 8), (uint8_t)((CLEAR_MAX_W - 1) & 0xFF) };
  uint8_t raset[4] = { 0x00, 0x00, (uint8_t)((CLEAR_MAX_H - 1) >> 8), (uint8_t)((CLEAR_MAX_H - 1) & 0xFF) };

  tft.sendCommand(ST77XX_CASET, caset, 4);
  tft.sendCommand(ST77XX_RASET, raset, 4);
  tft.sendCommand(ST77XX_RAMWR, (const uint8_t *)NULL, 0);

  tft.startWrite();
  tft.writeColor(ST77XX_BLACK, (uint32_t)CLEAR_MAX_W * CLEAR_MAX_H);
  tft.endWrite();
}

Ta funkcja jest wywo艂ywana automatycznie w applyProfile(), przed narysowaniem wzorca. Efekt: po ka偶dej zmianie profilu / rozdzielczo艣ci / offset贸w / rotacji / inwersji / lustra ekran jest w 100% czysty — 偶adnych „duch贸w" po poprzednich pr贸bach.


Jak u偶ywa膰 — krok po kroku

  1. Pod艂膮cz wy艣wietlacz zgodnie z pinami zdefiniowanymi na g贸rze pliku (TFT_CS=15, TFT_DC=2, TFT_RST=4, TFT_MOSI=23, TFT_SCLK=18, TFT_BL=32).

  2. Wgraj program na ESP32 (Arduino IDE, p艂ytka ESP32 Dev Module).

  3. Otw贸rz Serial Monitor — 115200 baud, Newline.

  4. Wpisz l, 偶eby zobaczy膰 list臋 profili.

  5. Wybierz profil komend膮 g<nr> — np. g1 dla ST7789 240×320.

  6. Dostrajaj: w/W, h/H, x/X, y/Y — a偶 bia艂a ramka pokryje si臋 z kraw臋dziami ekranu, a czerwony znacznik b臋dzie w lewym-g贸rnym rogu czytelnego obrazu.

  7. Je艣li obraz jest lustrzany — wciskaj f, a偶 tekst b臋dzie czytelny.

  8. Je艣li kolory s膮 odwr贸cone — wci艣nij v.

  9. Je艣li pod艣wietlenie nie dzia艂a — wci艣nij B i/lub b.

  10. Wpisz s — konfiguracja trafia do NVS i na Serial wypisuje si臋 gotowy kod do wklejenia w projekcie docelowym.

Kalibruj w rotacji 0 (pionowej) — dopiero po ustaleniu offset贸w i rozdzielczo艣ci przechod藕 na inne rotacje.


Pod mask膮 — ciekawe rozwi膮zania

  • ST77xxTester jako podklasa Adafruit_ST7789setColRowStart() bywa oznaczone jako protected w niekt贸rych wersjach biblioteki. Utworzenie podklasy z publicznym wrapperem setOffsets(col, row) obchodzi ten problem czysto, bez modyfikowania biblioteki.

  • R臋czne wysy艂anie MADCTL po setRotation()init() resetuje rejestr MADCTL, wi臋c ustawienia lustra trzeba nak艂ada膰 po ka偶dej inicjalizacji. Program robi to w applyMADCTL().

  • Obszar czyszczenia 480×480 — pokrywa wszystkie panele z listy profili (w tym ST7796 320×480). Nadmiarowe adresy po prostu zawijaj膮 licznik GRAM, a poniewa偶 piszemy wsz臋dzie czarny — efekt jest dok艂adnie taki, jak trzeba.

  • Rzutowanie (const uint8_t *)NULL — bez tego kompilator nie wie, kt贸re przeci膮偶enie sendCommand wybra膰 (z uint8_t* czy const uint8_t*), bo NULL pasuje do obu.


Wnioski

    Tester skr贸ci艂 mi czas kalibracji nowego panelu z nawet godzin (metod膮 pr贸b i b艂臋d贸w w docelowym projekcie) do kilku minut w dedykowanym narz臋dziu. Kluczowe okaza艂y si臋:

  1. Natychmiastowa reakcja na ka偶d膮 zmian臋 — czysty ekran i 艣wie偶o narysowany wzorzec po ka偶dym naci艣ni臋ciu klawisza.

  2. Czytelny wzorzec — kolorowe znaczniki w rogach od razu pokazuj膮 orientacj臋 i ewentualne lustro.

  3. Eksport gotowego kodu — komenda s eliminuje przepisywanie parametr贸w do projektu r臋cznie.

  4. Pe艂ne czyszczenie GRAM — bez tego po艂owa czasu kalibracji schodzi na odr贸偶nianie 艣mieci od rzeczywistych artefakt贸w nowego ustawienia.

Program jest dost臋pny na licencji otwartej — wystarczy wklei膰 do Arduino IDE, wgra膰 na ESP32 i cieszy膰 si臋 szybk膮 kalibracj膮 kolejnych egzotycznych paneli z rodziny ST77xx. Mi艂o by by艂o gdyby艣 pami臋ta艂 o jego autorze i w艂o偶onej przez niego pracy 馃槉.


 

Na koniec kilka fotek z kalibrowania:

殴le dobrana rozdzielczo艣膰 i rotacja.

殴le dobrana rozdzielczo艣膰. Rotacja OK.

 

 

 

 

 

 

 

 

Jeszcze z艂a rozdzielczo艣膰 i rotacja.


Poprawna rozdzielczo艣膰, z艂a rotacja.

 

 

 

 

 

 

 

Poprawna rozdzielczo艣膰 i rotacja.

 

 

Po w艂膮czeniu negacji wida膰 

przesuni臋cie kraw臋dzi.


 

 

 

 

 

 

 

Teraz jest poprawnie. Tak mo偶na zapisa膰 -> [s].


 

 

  

 

 

 

 

 

 

 

 Przepraszam za jako艣膰 zdj臋膰 ale tak m贸j telefon widzi ekran wy艣wietlacza.

 

 Mi艂ego kalibrowania!



✍️ 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: 艁atwy  (jak si臋 wie co si臋 robi) 
馃槉

馃摐 Program jest dost臋pny za darmo /aktualna wersja/. Wystarczy poprosi膰 via e-mail.

 

. 


04 wrze艣nia 2026

MMDVM z emulatorem w艣wietlacza NEXTIN.

 

HotSpot podczas uruchamiania systemu (jeszcze bez obudowy).

    Podczas budowy mojego hotspotu MMDVM pojawi艂a si臋 potrzeba zastosowania wi臋kszego i bardziej czytelnego wy艣wietlacza ni偶 typowy 0,96" ekran OLED. Zamiast kupowa膰 kolejny gotowy modu艂 (domy艣lnie Nextion), postanowi艂em zbudowa膰 w艂asny emulator wy艣wietlacza NEXTION, wykorzystuj膮cy kolorowy ekran TFT 320 × 240 pikseli oraz mikrokontroler ESP32.

    Urz膮dzenie komunikuje si臋 z hotspotem poprzez interfejs szeregowy dedykowany dla wy艣wietlacza NEXTION. Z punktu widzenia MMDVM m贸j emulator zachowuje si臋 wi臋c jak oryginalny wy艣wietlacz, ale ca艂a grafika jest generowana bezpo艣rednio przez ESP32.

Z艂膮cze wy艣wietlacza NEXTION na p艂ytce MMDVM DUAL
 

Co pokazuje wy艣wietlacz?

Podczas odbioru transmisji na ekranie prezentowane s膮 najwa偶niejsze informacje:

  • znak wywo艂awczy korespondenta,
  • imi臋 operatora,
  • aktywna grupa TalkGroup,
  • poziom odbieranego sygna艂u RSSI,
  • wska藕nik jako艣ci transmisji BER,
  • aktywny tryb DMR,
  • numer slotu /opcja/,
  • aktualny status RX/IDLE,
  • trzy ostatnio s艂yszane stacje (w czasie "oczekiwania").

Interfejs zosta艂 zaprojektowany tak, aby najwa偶niejsze informacje by艂y widoczne z wi臋kszej odleg艂o艣ci. Zrezygnowa艂em wi臋c z typowego „terminalowego” wygl膮du na rzecz prostego, graficznego interfejsu.



Przyk艂adowy ekran podczas normalnej pracy.
 

Wska藕nik poziomu sygna艂u

Dodatkowo wy艣wietlacz posiada graficzny wska藕nik poziomu sygna艂u. Jego wskazania s膮 uzale偶nione od warto艣ci RSSI otrzymywanej z MMDVM.

Im silniejszy sygna艂, tym wi臋cej aktywnych segment贸w wska藕nika. Zastosowane zosta艂o r贸wnie偶 kolorowe oznaczenie poziomu sygna艂u:

czerwony → 偶贸艂ty → zielony

Dzi臋ki temu nie trzeba nawet odczytywa膰 warto艣ci liczbowej — jednym spojrzeniem mo偶na oceni膰 jako艣膰 odbioru.

Wska藕nik BER

Drugim wa偶nym parametrem jest BER, czyli Bit Error Rate. Na ekranie znajduje si臋 zar贸wno warto艣膰 BER, jak i graficzny pasek.

Przy ma艂ym poziomie b艂臋d贸w pasek pozostaje kr贸tki i zielony. Wraz ze wzrostem BER zmienia kolor na 偶贸艂ty, a przy wi臋kszej liczbie b艂臋d贸w przechodzi w czerwony.

W przypadku cyfrowego DMR jest to bardzo przydatna informacja, poniewa偶 sam poziom RSSI nie zawsze m贸wi nam, czy transmisja b臋dzie poprawnie odbierana.

Ekran oczekiwania

Gdy korespondent ko艅czy nadawanie, wy艣wietlacz przechodzi w ekran oczekiwania na nast臋pnego korespondenta.

Gdy nie pojawia si臋 nowy korespondent i grupa zostaje zamkni臋ta znika sygnalizacja oczekiwania a jej miejsce zajmuje zegar.



 Dzi臋ki temu od razu wiadomo, 偶e hotspot pracuje, ale aktualnie nie odbiera 偶adnej transmisji.

 

Wygaszacz ekranu

Poniewa偶 wy艣wietlacz pracuje praktycznie przez ca艂y czas, doda艂em r贸wnie偶 prosty wygaszacz ekranu.

Po 5 minutach braku aktywno艣ci ekran zostaje wygaszony. Nie oznacza to oczywi艣cie wy艂膮czenia hotspotu — ESP32 oraz komunikacja z MMDVM nadal pracuj膮. Opcjonalnie mo偶na wy艂膮czy膰 programowo pod艣wietlenie matrycy wy艣wietlacza. Ta funkcja jest uj臋ta w programie.

Pojawienie si臋 nowej aktywno艣ci automatycznie wybudza ekran i ponownie pokazuje informacje o korespondencie.


 

ESP32 zamiast klasycznego NEXTION

Najciekawsz膮 cz臋艣ci膮 projektu jest chyba w艂a艣nie spos贸b dzia艂ania urz膮dzenia.

Oryginalny wy艣wietlacz NEXTION posiada w艂asny procesor i interpretuje polecenia przesy艂ane przez MMDVM. Tutaj jego rol臋 przejmuje ESP32.

ESP32:

  1. odbiera dane z interfejsu szeregowego MMDVM,

  2. analizuje polecenia przeznaczone dla NEXTION,

  3. wyodr臋bnia z nich informacje o korespondencie,

  4. rozpoznaje TalkGroup, RSSI i BER,

  5. generuje w艂asny interfejs graficzny na ekranie TFT.

Dzi臋ki temu wygl膮d wy艣wietlacza mo偶na zmienia膰 programowo bez ingerencji w konfiguracj臋 samego hotspotu.

 

Dlaczego w艂a艣nie tak?

    Projekt powsta艂 przede wszystkim z ciekawo艣ci i ch臋ci wykorzystania tego, co ju偶 mia艂em w warsztacie.

Zamiast ogranicza膰 si臋 do mo偶liwo艣ci fabrycznego ekranu NEXTION, mo偶na stworzy膰 w艂asny interfejs dok艂adnie taki, jaki jest potrzebny.

A poniewa偶 ESP32 ma znacznie wi臋ksze mo偶liwo艣ci ni偶 klasyczny sterownik prostego wy艣wietlacza, pozostaje jeszcze sporo miejsca na dalszy rozw贸j programu.

Na tym etapie najwa偶niejsze jest jednak to, 偶e urz膮dzenie dzia艂a stabilnie i spe艂nia swoj膮 podstawow膮 funkcj臋.

Reszta? Jak to zwykle w projektach kr贸tkofalarskich bywa — skoro dzia艂a, to zawsze mo偶na jeszcze co艣 poprawi膰. 馃槈

 

Schemat po艂膮cze艅 (ESP32 <-> ST7789 & MMDVM)

Wy艣wietlacz ST7789 -> ESP32:

  • CS     -> GPIO 15
  • RST   -> GPIO 4
  • DC     -> GPIO 2
  • MOSI -> GPIO 23
  • SCLK  -> GPIO 18
  • VCC    -> 3.3V
  • GND   -> GND
  • BL       -> GPIO 32   /pod艣wietlenie matrycy –opcja/

 

Po艂膮czenie z Pi-Star (UART):

  • RX2 (GPIO 16) ESP32 -> TX z p艂yty MMDVM / Raspberry Pi (3.3V Logic)

    TX2 (GPIO 17) ESP32 -> RX z p艂yty MMDVM / Raspberry Pi (3.3V Logic)

    (GND ESP32 -> GND Raspberry Pi / MMDVM  (WA呕NE!

 
  • Zwr贸膰cie uwag臋, 偶e do wy艣wietlacza z tego z艂膮cza wysy艂ane s膮 dane (Rx i Tx) oraz masa i +5V. Tak wi臋c 艂膮czymy go z Vin ESP32 i nie potrzebujemy dodatkowego (osobnego) zasilania do modu艂u wy艣wietlacza.

    Nale偶y te偶 pami臋ta膰, 偶e zasilaj膮c wy艣wietlacz przez gniazdo USB modu艂u ESP32 zasilamy te偶 modu艂 MMDV i Raspberry Pi. Tak wi臋c zasilanie z gniazda Raspberry nale偶y wcze艣niej wy艂膮czy膰.

     

Konfiguracja w programie Pi-Star

Aby emulator dzia艂a艂 poprawnie, w panelu Pi-Star Configuration nale偶y zmieni膰 ustawienia w sekcji MMDVM Display Driver:

  • MMDVM Display Type: Nextion

  • Port: Modem (lub /dev/ttyAMA0 w zale偶no艣ci od po艂膮czenia)

  • Nextion Layout: G4KLX


     

 Podsumowanie

M贸j emulator NEXTION jest wi臋c niewielkim, samodzielnym terminalem informacyjnym dla hotspotu MMDVM.

ESP32 + TFT 320 × 240 + interfejs NEXTION/MMDVM pozwalaj膮 uzyska膰 czytelny, kolorowy ekran prezentuj膮cy najwa偶niejsze informacje o aktualnej pracy hotspotu.

Projekt pokazuje r贸wnie偶, 偶e nie zawsze trzeba korzysta膰 z gotowych rozwi膮za艅. Czasami wystarczy mikrokontroler, wy艣wietlacz i troch臋 wolnego czasu, aby zrobi膰 urz膮dzenie dok艂adnie dopasowane do w艂asnych potrzeb.

 

  

⚠️   Jeszcze jeden "drobiazg" na kt贸ry proponuj臋 zwr贸ci膰 uwag臋: Fabryczne "anteny" kt贸re by艂y do艂膮czone do MMDVM. Rezonans na cz臋stotliwo艣ci 424 MHz. Mo偶e tylko mi si臋 takie trafi艂y? :) Co prawda nadajnik ma oko艂o 15 mW ale tak by膰 nie powinno. Proponuj臋 sprawdzi膰 co otrzymali艣cie w zestawie.



 

馃摐   Je艣li zainteresowa艂 Ci臋 ten projekt i chcia艂by艣 do niego program - napisz.    Z pewno艣ci膮 Ci go wy艣l臋.

 

EDIT 05.07.2026 r. 

 W nowej wersji oprogramowania doda艂em prosty interfejs WWW. Teraz mo偶na ogl膮da膰 prac臋 HotSpota na ekranie komputera, laptopa lub tabletu. Jest to prosty interfejs ale mo偶liwy do rozbudowania. Na t膮 chwil臋 tyle wystarcza. Tak to wygl膮da na ekranie komputera:




 
 
 
A tak teraz wygl膮da nowy ekran emulatora:
 


 

✍️ Autor: Robert HF5WWL
馃搮 Data projektu: sierpie艅 2026 r.
 馃搷 Lokalizacja: Wo艂omin, POLSKA
馃搧 Co艣 nie jasne? Pytaj poprzez e-mail (hf5wwl@gmail.com) lub w komentarzu 
馃洜️ Poziom trudno艣ci: 艁atwy  (jak si臋 ma oprogramowanie) 
馃槉

 

 

 #DIY #DoItYourself #HAMRadio #HamTech #ESP32 #MMDVM #DMR #RadioAmatorskie #Kr贸tkofalarstwo #Homebrew #Electronics #Maker #TechProject #DigitalRadio #DMRMonitor