Popularny post theqkash Napisano 13 sierpnia Popularny post Udostępnij Napisano 13 sierpnia Cześć! Chcę Wam pokazać projekt, nad którym siedzę od kilku miesięcy: esp32flight, samodzielny radar lotniczy na biurko. Małe urządzenie z dotykowym ekranem stoi sobie na półce i pokazuje na żywo samoloty przelatujące nad Waszą okolicą: kto leci, skąd dokąd, jak wysoko, a nawet jak wygląda ta konkretna maszyna. Stuknięcie w ekran daje szczegóły, a telefon może dostać powiadomienie, że za trzy minuty coś ciekawego przeleci nad domem. Przykładowy interfejs jednej z wersji systemu To nie jest projekt tylko dla elektroników. Nie trzeba nic lutować, nie trzeba programować, nie trzeba stawiać żadnego serwera ani niczego opłacać. Kupujecie gotową płytkę z ekranem, podłączacie kablem USB do komputera, klikacie jeden przycisk na stronie projektu i po kilku minutach macie na biurku działający radar. Dla tych, którzy lubią grzebać głębiej, całość jest open source (licencja MIT), więc można zajrzeć w każdą linijkę i dołożyć swoje. Jak zrobić swoją wersje? Kupujecie jedną ze wspieranych płytek (potrzebny będzie też kabel USB typu C): Waveshare 7 - większa, ale bez obudowy M5Stack Tab5 - mniejsza, ale z lepszym wyświetlaczem w obudowie Inne, mniej popularne - opisane niżej Otwieracie instalator w przeglądarce (Chrome/Edge), klikacie Install, wybieracie port. Na urządzeniu: ikona zębatki, wybór Wi-Fi ze skanu, zapis. Lokalizacja ustawia się sama po IP (albo wpisujecie miasto). Kabel jest potrzebny tylko raz, potem aktualizacje przychodzą OTA i aktualizację można wykonać przez web panel. Jest też wersja na Androida budowana z tych samych źródeł (ten sam radar można uruchomić jako apka na starym tablecie), APK do pobrania z releases na GitHubie. Skąd pomysł? Mieszkam pod trasą podejścia i zawsze zerkałem w aplikacje typu Flightradar24, ale chciałem mieć coś, co działa samo z siebie, bez wyciągania telefonu. Gotowe rozwiązania "zrób to sam" wymagają zwykle Raspberry Pi z anteną, czyli osobnego komputerka, karty SD, zasilania i wieczoru konfiguracji. Pomyślałem, że da się prościej. Widok z większością dostępnych w aplikacji warstw - strefy lotnicze, mapa chmur, samoloty, statki Skąd w ogóle biorą się dane o samolotach? Każdy samolot komunikacyjny nadaje przez radio swoją pozycję, wysokość i prędkość. Ten system nazywa się ADS-B. Tysiące hobbystów na całym świecie odbiera te sygnały małymi antenkami i wrzuca do darmowych, społecznościowych serwisów internetowych. Mój radar po prostu pyta te serwisy: "co teraz lata w promieniu X kilometrów od tego punktu?". Dzięki temu nie potrzebuje własnej anteny, wystarczy mu domowe Wi-Fi. Najbardziej "klasyczny" widok w aplikacji oraz widok jednego samolotu A sercem urządzenia jest ESP32, mikrokontroler za kilkanaście złotych, ulubieniec majsterkowiczów: ma wbudowane Wi-Fi i wystarczy mu tyle prądu, co ładowarce od telefonu. Producenci sprzedają go zintegrowanego z ekranem dotykowym jako gotowe płytki, i to na takiej płytce działa cały projekt. Bez Raspberry, bez Linuksa, bez wentylatorów: jeden układ robi wszystko. Co potrafi ESP32flight? Podstawowy widok to lista samolotów w wybranym promieniu (od 1 do 250 mil morskich), odświeżana co 8 sekund: logo linii lotniczej, typ maszyny, wysokość ze strzałką trendu (wznosi się czy schodzi), prędkość i odległość od Ciebie. Stuknięcie w samolot otwiera kartę szczegółów: trasa z miastami i flagami państw, pasek postępu lotu, przewidywana godzina lądowania w czasie lokalnym, no i zdjęcie tej konkretnej maszyny z serwisu planespotters.net. Dodatkowy bajer to "linia spottera": urządzenie podpowiada, w którą stronę nieba patrzeć (kierunek plus wysokość nad horyzontem) i przewiduje przeloty: "przeleci nad Tobą za ~3 minuty". Idealne do wyjścia na balkon w odpowiednim momencie. Widok na Gdańsk oraz mapa burzowa (wygaszacz ekranu) Widoków jest pięć: lista ze szczegółami, tryb ambient (urządzenie samo przełącza ciekawe loty), radar na prawdziwej mapie Waszej okolicy z zaznaczonymi pasami startowymi, statystyki (wykres ruchu godzina po godzinie, ranking linii, rekordy dnia, komunikaty pogodowe METAR w wersji surowej albo przetłumaczonej na ludzki) i retro radar stylizowany na wojskowy ekran CRT z zieloną poświatą. Opcjonalnie na mapie pojawią się też: Międzynarodowa Stacja Kosmiczna, gdy akurat przelatuje, balony meteorologiczne z sieci SondeHub, statki (system AIS, morski odpowiednik ADS-B) i granice przestrzeni powietrznej dla fanów lotnictwa. Widok na kategorię Statki dostępną po wpisaniu bezpłatnego klucza API AIS Skąd dane, skoro bez klucza API? Tu ukłon w stronę społeczności: radar korzysta z trzech darmowych agregatorów ADS-B (airplanes.live, adsb.lol, adsb.fi) z automatycznym przełączaniem. Padnie jeden, urządzenie w locie przechodzi na następny i nawet tego nie zauważycie. Informacje o trasach są weryfikowane krzyżowo w trzech bazach danych i konfrontowane z rzeczywistą pozycją samolotu: jeśli baza twierdzi, że lot leci z Madrytu do Oslo, a samolot jest nad Grecją w drodze na wschód, wpis jest odrzucany zamiast wyświetlany. Wolę pokazać "trasa nieznana" niż zmyślać. Statki, samoloty na podzielonym widoku Dla zaawansowanych: jeśli macie własny odbiornik dump1090/readsb (czyli klasyczne Raspberry z anteną), radar podepnie się do niego bezpośrednio po sieci lokalnej, z internetem jako zapasem. Własna antena daje szybsze odświeżanie i samoloty, których agregatory czasem nie widzą. Alerty i integracje Radar umie wezwać Wasz telefon: sygnał awaryjny (squawk 7700, lotniczy odpowiednik wołania o pomoc), samolot z Waszej listy obserwowanych albo nadchodzący przelot mogą wysłać push przez darmowy serwis ntfy.sh. Konfiguracja to wpisanie jednej nazwy w ustawieniach, bez zakładania konta. Interfejs WebUI dostępny pod adresem esp32.local Dla domowych automatyków: jest MQTT z automatyczną integracją z Home Assistant (samoloty jako sensory, gotowe do własnych automatyzacji w stylu "przyciemnij światła, gdy nadlatuje An-124") i webhooki JSON. Do tego panel WWW pod adresem http://esp32flight.local: mapa na żywo w przeglądarce, dziennik spottera z eksportem do CSV, pełna konfiguracja i aktualizacje firmware przez przeglądarkę (OTA). Jest nawet endpoint Prometheus dla fanów Grafany, bo czemu nie mierzyć ruchu lotniczego nad domem jak ruchu na serwerze. Zaczęło się od płytki Waveshare... później pojawiły się inne platformy Projekt powstał na płytce Waveshare ESP32-S3-Touch-LCD-7: 7 cali, 800x480, dotyk pojemnościowy, wszystko zintegrowane, porządna dokumentacja. Ideał na taki radar i na niej powstała cała pierwsza wersja. Problem pojawił się, gdy projekt zaczęli instalować inni i okazał się bardzo popularny: Waveshare 7 stał się praktycznie nie do kupienia (aktualnie już jest dostępny). Sklepy pokazywały brak towaru, a ja dostawałem wiadomości "na czym mam to uruchomić?". I to pytanie ustawiło dalszy rozwój projektu: zamiast jednej płytki, wsparcie dla wszystkiego sensownego, co jest realnie dostępne. Brzmi niewinnie, ale każda płytka to inne podłączenie ekranu, inny układ dotyku i inne pułapki, o których niżej. Dziś dzięki społeczności i potrzebie rozruszania projektu firmware działa na kilkunastu konfiguracjach. W polskich sklepach z elektroniką takich jak Botland dostaniecie już pierwotnego Waveshare'a oraz M5Stack Tab5, o którym za chwilę. Gdzie nie gdzie można także nabyć pozostałe rozmiary rodziny Waveshare (4.3" i 5", technicznie bliźniacze z siódemką, więc jeden firmware sam rozpoznaje, na czym wylądował), wariant Waveshare 7B z panelem 1024x600. Z AliExpress i Amazona wspierane są tanie płytki od chińskich przyjaciół: Guition JC8048W550 (5 cali, często około 100 zł), Sunton ESP32-4827S043 (4.3"), Elecrow CrowPanel 5.0, a w kanale testowym CrowPanel 7.0 i Sunton 8048S070. Ciekawostka z życia: sporo bezmarkowych 7-calówek z Amazona to potajemnie przebrandowane CrowPanele. Rozszyfrowanie jednej z nich wyglądało jak śledztwo: nazwa sterownika ekranu w specyfikacji i linki do supportu Elecrow ukryte na stronie produktu zdradziły prawdziwego producenta. Polecam jednak trzymanie się Waveshare 7 albo Tab5. Wydaje mi się, że stosunek ceny do możliwości jest tutaj najlepszy. Tab5, czyli port na grubszy sprzęt M5Stack Tab5 to inna liga cenowa i sprzętowa: procesor ESP32-P4 (nowy, mocniejszy układ Espressifa), ekran 5 cali o rozdzielczości 1280x720, czyli gęstości piksela znanej z telefonów, nie wymaga obudowy. Wygląda jak mały tablet, bo w zasadzie nim jest. Tab5 po lewej, Waveshare 7 po prawej stronie Dla zainteresowanych techniką: P4 nie ma własnego radia, więc Wi-Fi obsługuje osobny układ ESP32-C6 wlutowany obok, z którym główny procesor rozmawia po magistrali SDIO. Do tego ekran podłączony jest przez MIPI-DSI (ten sam standard co w smartfonach), a panel wymaga pełnej, vendorowej sekwencji inicjalizacyjnej: bez niej podświetlenie działa, a obraz jest czarny, co bywa mylące przy debugowaniu. W nagrodę radar wygląda na tym ekranie fenomenalnie, a zapas mocy P4 otwiera drzwi na przyszłość. Czego nauczyły mnie porty na inne urządzenia? Firmware to czyste C na ESP-IDF 5.5 z biblioteką graficzną LVGL 8. Dwie największe lekcje z przenoszenia go między płytkami: Po pierwsze, pamięć. ESP32-S3 ma tylko pół megabajta szybkiej pamięci wewnętrznej, resztę dokłada zewnętrzny układ PSRAM, przez który przechodzi dosłownie wszystko: bufory ekranu, kafle map, cache logo. Sam ekran 800x480 pobiera z tej pamięci duże ilości danych, tylko po to, żeby obraz w ogóle był wyświetlany. Na wariancie 7B obraz potrafił "trząść się" przy każdym dotknięciu i po tygodniu polowania okazało się, że producent w swoim demo taktuje PSRAM na 120 MHz tam, gdzie ESP-IDF domyślnie ustawia 80. Znalezienie tego wymagało wgrania fabrycznego demo na wadliwy egzemplarz (działało idealnie) i porównania konfiguracji bajt po bajcie. Radar - jeden z widoków pożądanych przez użytkowników oraz widok szczegółowy samolotu Po drugie, klony. Ta sama z pozoru "800x480 z dotykiem" potrafi mieć trzy różne mapowania pinów, zamienione kolory, inne timingi panelu i połowę deklarowanego flasha: oznaczenie modułu N4 to fizycznie 4 MB, choćby aukcja przysięgała, że 8. Firmware część płytek rozpoznaje automatycznie przy starcie (sondując układy na magistrali I2C), a dla reszty są dedykowane wersje w instalatorze. Podsumowanie Zaczęło się od jednej płytki Waveshare, a skończyło na wspieraniu całego spektrum: od sprzętu z polskich sklepów (Waveshare, M5Stack Tab5) po stuzłotowe płytki z AliExpress. Projekt jest w pełni otwarty: kod na GitHubie na licencji MIT, do tego Discord społeczności, gdzie użytkownicy testują kolejne płytki i zgłaszają znaleziska. Wersja 0.4.4 to czternaście wariantów firmware budowanych z jednego drzewa źródeł, plus apka Android. Jeśli macie którąś ze wspieranych płytek w szufladzie, spróbujcie: od podłączenia kabla do pierwszego samolotu na ekranie mija kilka minut. 9
Popularny post Treker (Damian Szymański) 14 sierpnia Popularny post Udostępnij 14 sierpnia @theqkash witam na forum i dziękuję za opis tego ciekawego projektu również na Forbocie Ciekawy rodzaj DIY, bo nie dość, że projekt jest praktyczny to dosłownie każdy może stworzyć swoją wersję w kilka minut. Również dołączyłem do grona użytkowników tego projektu. Na razie uruchomiłem wersję na M5Stack Tab5, wydrukowałem też już obudowę do wersji na wyświetlaczu Waveshare 7. Poszło bez problemów, zaskoczył mnie pozytywnie interfejs i liczba dostępnych opcji. Pewnie spokojnie mogłoby to być sprzedawane jako gotowy produkt 4
_LM_ 14 sierpnia Udostępnij 14 sierpnia A się ucieszyłem... Moja płyta to ESP32 - 8048S070: [20:24:36]ESP-ROM:esp32s3-20210327 [20:24:36]Build:Mar 27 2021 [20:24:36]rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT) [20:24:36]SPIWP:0xee [20:24:36]mode:DIO, clock div:1 [20:24:36]load:0x3fce2820,len:0x1700 [20:24:36]load:0x403c8700,len:0xec0 [20:24:36]load:0x403cb700,len:0x31c0 [20:24:37]entry 0x403c894c [20:24:37]I (25) boot: ESP-IDF v5.5.2 2nd stage bootloader [20:24:37]I (25) boot: compile time Aug 5 2026 21:58:31 [20:24:37]I (25) boot: Multicore bootloader [20:24:37]I (25) boot: chip revision: v0.2 [20:24:37]I (28) boot: efuse block revision: v1.3 [20:24:37]I (31) qio_mode: Enabling default flash chip QIO [20:24:37]I (36) boot.esp32s3: Boot SPI Speed : 80MHz [20:24:37]I (40) boot.esp32s3: SPI Mode : QIO [20:24:37]I (43) boot.esp32s3: SPI Flash Size : 16MB [20:24:37]I (47) boot: Enabling RNG early entropy source... [20:24:37]I (52) boot: Partition Table: [20:24:37]I (54) boot: ## Label Usage Type ST Offset Length [20:24:37]I (61) boot: 0 nvs WiFi data 01 02 00009000 00006000 [20:24:37]I (67) boot: 1 phy_init RF data 01 01 0000f000 00001000 [20:24:37]I (74) boot: 2 otadata OTA data 01 00 00010000 00002000 [20:24:37]I (80) boot: 3 ota_0 OTA app 00 10 00020000 00280000 [20:24:37]I (87) boot: 4 ota_1 OTA app 00 11 002a0000 00280000 [20:24:37]I (93) boot: 5 assets Unknown data 01 82 00520000 00ae0000 [20:24:37]I (100) boot: End of partition table [20:24:37]I (103) esp_image: segment 0: paddr=00020020 vaddr=3c120020 size=9a9cch (633292) map [20:24:37]I (205) esp_image: segment 1: paddr=000ba9f4 vaddr=3fca2900 size=0542ch ( 21548) load [20:24:37]I (209) esp_image: segment 2: paddr=000bfe28 vaddr=40374000 size=001f0h ( 496) load [20:24:37]I (209) esp_image: segment 3: paddr=000c0020 vaddr=42000020 size=11fdd0h (1179088) map [20:24:37]I (391) esp_image: segment 4: paddr=001dfdf8 vaddr=403741f0 size=1e64ch (124492) load [20:24:37]I (415) esp_image: segment 5: paddr=001fe44c vaddr=50000000 size=00020h ( 32) load [20:24:37]I (427) boot: Loaded app from partition at offset 0x20000 [20:24:37]I (427) boot: Disabling RNG early entropy source... [20:24:37]I (437) octal_psram: vendor id : 0x0d (AP) [20:24:37]I (437) octal_psram: dev id : 0x02 (generation 3) [20:24:37]I (438) octal_psram: density : 0x03 (64 Mbit) [20:24:37]I (440) octal_psram: good-die : 0x01 (Pass) [20:24:37]I (444) octal_psram: Latency : 0x01 (Fixed) [20:24:37]I (448) octal_psram: VCC : 0x01 (3V) [20:24:37]I (452) octal_psram: SRF : 0x01 (Fast Refresh) [20:24:37]I (457) octal_psram: BurstType : 0x01 (Hybrid Wrap) [20:24:37]I (462) octal_psram: BurstLen : 0x01 (32 Byte) [20:24:37]I (467) octal_psram: Readlatency : 0x02 (10 cycles@Fixed) [20:24:37]I (472) octal_psram: DriveStrength: 0x00 (1/1) [20:24:37]I (476) MSPI Timing: Enter psram timing tuning [20:24:37]I (481) esp_psram: Found 8MB PSRAM device [20:24:37]I (484) esp_psram: Speed: 80MHz [20:24:37]I (523) mmu_psram: Read only data copied and mapped to SPIRAM [20:24:37]I (600) mmu_psram: Instructions copied and mapped to SPIRAM [20:24:37]I (600) cpu_start: Multicore app [20:24:37]I (836) esp_psram: SPI SRAM memory test OK [20:24:37]I (844) cpu_start: GPIO 44 and 43 are used as console UART I/O pins [20:24:37]I (844) cpu_start: Pro cpu start user code [20:24:37]I (844) cpu_start: cpu freq: 240000000 Hz [20:24:37]I (846) app_init: Application information: [20:24:37]I (850) app_init: Project name: esp32flight [20:24:37]I (854) app_init: App version: 0.4.4 [20:24:37]I (858) app_init: Compile time: Aug 6 2026 03:23:28 [20:24:37]I (863) app_init: ELF file SHA256: 36a8ceb1e... [20:24:37]I (867) app_init: ESP-IDF: v5.5.2 [20:24:37]I (871) efuse_init: Min chip rev: v0.0 [20:24:37]I (875) efuse_init: Max chip rev: v0.99 [20:24:37]I (879) efuse_init: Chip rev: v0.2 [20:24:37]I (883) heap_init: Initializing. RAM available for dynamic allocation: [20:24:37]I (889) heap_init: At 3FCBCDD0 len 0002C940 (178 KiB): RAM [20:24:37]I (894) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM [20:24:37]I (899) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM [20:24:37]I (904) heap_init: At 600FE000 len 00001FE8 (7 KiB): RTCRAM [20:24:37]I (910) esp_psram: Adding pool of 6400K of PSRAM memory to heap allocator [20:24:37]I (916) esp_psram: Adding pool of 21K of PSRAM memory gap generated due to end address alignment of drom to the heap allocator [20:24:37]I (928) spi_flash: detected chip: gd [20:24:37]I (931) spi_flash: flash io: qio [20:24:37]W (934) i2c: This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h` [20:24:37]I (944) sleep_gpio: Configure to isolate all GPIO pins in sleep state [20:24:37]I (950) sleep_gpio: Enable automatic switching of GPIO sleep configuration [20:24:37]I (957) main_task: Started on CPU0 [20:24:37]I (961) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations [20:24:37]I (968) main_task: Calling app_main() [20:24:37]W (971) boot: reset reason: 1 (4=panic 5=int_wdt 6=task_wdt 7=other_wdt 9=brownout) [20:24:37]I (983) settings: no stored settings, using defaults [20:24:37]I (984) lcd_port: board: Guition JC8048W550 [20:24:37]I (987) lcd_port: Install RGB LCD panel driver [20:24:38]I (1024) lcd_port: Initialize GT911 touch [20:24:38]I (1324) GT911: I2C address initialization procedure skipped - using default GT9xx setup [20:24:38]I (1325) GT911: TouchPad_ID:0x39,0x31,0x31 [20:24:38]I (1325) GT911: TouchPad_Config_Version:99 [20:24:38]I (1331) lv_port: Create LVGL task [20:24:38]I (1591) logos: assets fs: 8385/10228 KB used [20:24:38]I (1947) airports: 8244 airports loaded (553 KB) [20:24:41]I (5016) pp: pp rom version: e7ae62f [20:24:42]I (5016) net80211: net80211 rom version: e7ae62f [20:24:42]I (5018) wifi:wifi driver task: 3fcd7bfc, prio:23, stack:6656, core=0 [20:24:42]I (5021) wifi:wifi firmware version: ee91c8c [20:24:42]I (5023) wifi:wifi certification version: v7.0 [20:24:42]I (5027) wifi:config NVS flash: enabled [20:24:42]I (5030) wifi:config nano formatting: disabled [20:24:42]I (5035) wifi:Init data frame dynamic rx buffer num: 32 [20:24:42]I (5040) wifi:Init static rx mgmt buffer num: 5 [20:24:42]I (5044) wifi:Init management short buffer num: 32 [20:24:42]I (5058) wifi:Init dynamic tx buffer num: 32 [20:24:42]I (5061) wifi:Init static tx FG buffer num: 2 [20:24:42]I (5063) wifi:Init static rx buffer size: 1600 [20:24:42]I (5065) wifi:Init static rx buffer num: 10 [20:24:42]I (5066) wifi:Init dynamic rx buffer num: 32 [20:24:42]I (5070) wifi_init: rx ba win: 6 [20:24:42]I (5072) wifi_init: accept mbox: 6 [20:24:42]I (5084) wifi_init: tcpip mbox: 32 [20:24:42]I (5085) wifi_init: udp mbox: 6 [20:24:42]I (5086) wifi_init: tcp mbox: 6 [20:24:42]I (5087) wifi_init: tcp tx win: 5760 [20:24:42]I (5088) wifi_init: tcp rx win: 5760 [20:24:42]I (5090) wifi_init: tcp mss: 1440 [20:24:42]I (5093) wifi_init: WiFi IRAM OP enabled [20:24:42]I (5097) wifi_init: WiFi RX IRAM OP enabled [20:24:42]W (5101) wifi: no SSID configured; Wi-Fi up for scanning only [20:24:42]I (5107) phy_init: phy_version 711,97bcf0a2,Aug 25 2025,19:04:10 [20:24:42]I (5145) phy_init: Saving new calibration data due to checksum failure or outdated calibration data, mode(0) [20:24:42]I (5159) wifi:mode : sta (64:e8:33:48:64:38) [20:24:42]I (5160) wifi:enable tsf [20:24:42]I (5162) mdns_mem: mDNS task will be created from internal RAM [20:24:42]I (5166) web: web panel at http://esp32flight.local/ [20:24:42]I (5166) main_task: Returned from app_main() [20:28:11]ESP-ROM:esp32s3-20210327 [20:28:11]Build:Mar 27 2021 [20:28:11]rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT) [20:28:11]SPIWP:0xee [20:28:11]mode:DIO, clock div:1 [20:28:11]load:0x3fce2820,len:0x1700 [20:28:11]load:0x403c8700,len:0xec0 [20:28:11]load:0x403cb700,len:0x31c0 [20:28:11]entry 0x403c894c [20:28:11]I (25) boot: ESP-IDF v5.5.2 2nd stage bootloader [20:28:11]I (25) boot: compile time Aug 5 2026 21:58:31 [20:28:11]I (25) boot: Multicore bootloader [20:28:11]I (25) boot: chip revision: v0.2 [20:28:11]I (28) boot: efuse block revision: v1.3 [20:28:11]I (31) qio_mode: Enabling default flash chip QIO [20:28:11]I (36) boot.esp32s3: Boot SPI Speed : 80MHz [20:28:11]I (40) boot.esp32s3: SPI Mode : QIO [20:28:11]I (43) boot.esp32s3: SPI Flash Size : 16MB [20:28:11]I (47) boot: Enabling RNG early entropy source... [20:28:11]I (52) boot: Partition Table: [20:28:11]I (54) boot: ## Label Usage Type ST Offset Length [20:28:11]I (61) boot: 0 nvs WiFi data 01 02 00009000 00006000 [20:28:11]I (67) boot: 1 phy_init RF data 01 01 0000f000 00001000 [20:28:11]I (74) boot: 2 otadata OTA data 01 00 00010000 00002000 [20:28:11]I (80) boot: 3 ota_0 OTA app 00 10 00020000 00280000 [20:28:11]I (87) boot: 4 ota_1 OTA app 00 11 002a0000 00280000 [20:28:11]I (93) boot: 5 assets Unknown data 01 82 00520000 00ae0000 [20:28:11]I (100) boot: End of partition table [20:28:11]I (103) esp_image: segment 0: paddr=00020020 vaddr=3c120020 size=9a9cch (633292) map [20:28:11]I (205) esp_image: segment 1: paddr=000ba9f4 vaddr=3fca2900 size=0542ch ( 21548) load [20:28:11]I (209) esp_image: segment 2: paddr=000bfe28 vaddr=40374000 size=001f0h ( 496) load [20:28:11]I (209) esp_image: segment 3: paddr=000c0020 vaddr=42000020 size=11fdd0h (1179088) map [20:28:11]I (391) esp_image: segment 4: paddr=001dfdf8 vaddr=403741f0 size=1e64ch (124492) load [20:28:11]I (415) esp_image: segment 5: paddr=001fe44c vaddr=50000000 size=00020h ( 32) load [20:28:11]I (427) boot: Loaded app from partition at offset 0x20000 [20:28:11]I (427) boot: Disabling RNG early entropy source... [20:28:11]I (437) octal_psram: vendor id : 0x0d (AP) [20:28:11]I (437) octal_psram: dev id : 0x02 (generation 3) [20:28:11]I (438) octal_psram: density : 0x03 (64 Mbit) [20:28:11]I (440) octal_psram: good-die : 0x01 (Pass) [20:28:11]I (444) octal_psram: Latency : 0x01 (Fixed) [20:28:11]I (448) octal_psram: VCC : 0x01 (3V) [20:28:11]I (452) octal_psram: SRF : 0x01 (Fast Refresh) [20:28:11]I (457) octal_psram: BurstType : 0x01 (Hybrid Wrap) [20:28:11]I (462) octal_psram: BurstLen : 0x01 (32 Byte) [20:28:11]I (467) octal_psram: Readlatency : 0x02 (10 cycles@Fixed) [20:28:11]I (472) octal_psram: DriveStrength: 0x00 (1/1) [20:28:11]I (476) MSPI Timing: Enter psram timing tuning [20:28:11]I (481) esp_psram: Found 8MB PSRAM device [20:28:11]I (484) esp_psram: Speed: 80MHz [20:28:12]I (523) mmu_psram: Read only data copied and mapped to SPIRAM [20:28:12]I (600) mmu_psram: Instructions copied and mapped to SPIRAM [20:28:12]I (600) cpu_start: Multicore app [20:28:12]I (836) esp_psram: SPI SRAM memory test OK [20:28:12]I (844) cpu_start: GPIO 44 and 43 are used as console UART I/O pins [20:28:12]I (844) cpu_start: Pro cpu start user code [20:28:12]I (844) cpu_start: cpu freq: 240000000 Hz [20:28:12]I (846) app_init: Application information: [20:28:12]I (850) app_init: Project name: esp32flight [20:28:12]I (854) app_init: App version: 0.4.4 [20:28:12]I (858) app_init: Compile time: Aug 6 2026 03:23:28 [20:28:12]I (863) app_init: ELF file SHA256: 36a8ceb1e... [20:28:12]I (867) app_init: ESP-IDF: v5.5.2 [20:28:12]I (871) efuse_init: Min chip rev: v0.0 [20:28:12]I (875) efuse_init: Max chip rev: v0.99 [20:28:12]I (879) efuse_init: Chip rev: v0.2 [20:28:12]I (883) heap_init: Initializing. RAM available for dynamic allocation: [20:28:12]I (889) heap_init: At 3FCBCDD0 len 0002C940 (178 KiB): RAM [20:28:12]I (894) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM [20:28:12]I (899) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM [20:28:12]I (904) heap_init: At 600FE000 len 00001FE8 (7 KiB): RTCRAM [20:28:12]I (910) esp_psram: Adding pool of 6400K of PSRAM memory to heap allocator [20:28:12]I (916) esp_psram: Adding pool of 21K of PSRAM memory gap generated due to end address alignment of drom to the heap allocator [20:28:12]I (928) spi_flash: detected chip: gd [20:28:12]I (931) spi_flash: flash io: qio [20:28:12]W (934) i2c: This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h` [20:28:12]I (944) sleep_gpio: Configure to isolate all GPIO pins in sleep state [20:28:12]I (950) sleep_gpio: Enable automatic switching of GPIO sleep configuration [20:28:12]I (957) main_task: Started on CPU0 [20:28:12]I (961) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations [20:28:12]I (968) main_task: Calling app_main() [20:28:12]W (971) boot: reset reason: 1 (4=panic 5=int_wdt 6=task_wdt 7=other_wdt 9=brownout) [20:28:12]I (982) settings: no stored settings, using defaults [20:28:12]I (983) lcd_port: board: Guition JC8048W550 [20:28:12]I (987) lcd_port: Install RGB LCD panel driver [20:28:12]I (1024) lcd_port: Initialize GT911 touch [20:28:12]I (1324) GT911: I2C address initialization procedure skipped - using default GT9xx setup [20:28:12]I (1325) GT911: TouchPad_ID:0x39,0x31,0x31 [20:28:12]I (1325) GT911: TouchPad_Config_Version:99 [20:28:12]I (1331) lv_port: Create LVGL task [20:28:13]I (1591) logos: assets fs: 8385/10228 KB used [20:28:13]I (1947) airports: 8244 airports loaded (553 KB) [20:28:16]I (5021) pp: pp rom version: e7ae62f [20:28:16]I (5021) net80211: net80211 rom version: e7ae62f [20:28:16]I (5023) wifi:wifi driver task: 3fcd7c78, prio:23, stack:6656, core=0 [20:28:16]I (5027) wifi:wifi firmware version: ee91c8c [20:28:16]I (5028) wifi:wifi certification version: v7.0 [20:28:16]I (5032) wifi:config NVS flash: enabled [20:28:16]I (5035) wifi:config nano formatting: disabled [20:28:16]I (5040) wifi:Init data frame dynamic rx buffer num: 32 [20:28:16]I (5045) wifi:Init static rx mgmt buffer num: 5 [20:28:16]I (5060) wifi:Init management short buffer num: 32 [20:28:16]I (5064) wifi:Init dynamic tx buffer num: 32 [20:28:16]I (5066) wifi:Init static tx FG buffer num: 2 [20:28:16]I (5068) wifi:Init static rx buffer size: 1600 [20:28:16]I (5070) wifi:Init static rx buffer num: 10 [20:28:16]I (5074) wifi:Init dynamic rx buffer num: 32 [20:28:16]I (5089) wifi_init: rx ba win: 6 [20:28:16]I (5094) wifi_init: accept mbox: 6 [20:28:16]I (5094) wifi_init: tcpip mbox: 32 [20:28:16]I (5095) wifi_init: udp mbox: 6 [20:28:16]I (5096) wifi_init: tcp mbox: 6 [20:28:16]I (5097) wifi_init: tcp tx win: 5760 [20:28:16]I (5100) wifi_init: tcp rx win: 5760 [20:28:16]I (5104) wifi_init: tcp mss: 1440 [20:28:16]I (5107) wifi_init: WiFi IRAM OP enabled [20:28:16]I (5110) wifi_init: WiFi RX IRAM OP enabled [20:28:16]W (5115) wifi: no SSID configured; Wi-Fi up for scanning only [20:28:16]I (5120) phy_init: phy_version 711,97bcf0a2,Aug 25 2025,19:04:10 [20:28:16]I (5165) phy_init: Saving new calibration data due to checksum failure or outdated calibration data, mode(0) [20:28:16]I (5175) wifi:mode : sta (64:e8:33:48:64:38) [20:28:16]I (5176) wifi:enable tsf [20:28:16]I (5177) mdns_mem: mDNS task will be created from internal RAM [20:28:16]I (5179) web: web panel at http://esp32flight.local/ [20:28:16]I (5181) main_task: Returned from app_main()
Popularny post theqkash 14 sierpnia Autor tematu Popularny post Udostępnij 14 sierpnia @Treker dzięki! @_LM_ https://theqkash.github.io/esp32flight/beta.html - tu jest wersja do Twojego Suntona, powinna działać 3
Sabre 18 sierpnia Udostępnij 18 sierpnia A jak ESP32 S3 radzi sobie z tak dużą rozdzielczością ekranu? Czy P4 nie byłoby lepsze do tego?
Omenn 18 sierpnia Udostępnij 18 sierpnia Szacun i Wielkie podziękowania ,to teraz czekam na ESP32 P4 10.1 pozdrawiam.
ewemarkam 19 sierpnia Udostępnij 19 sierpnia Ten ekran będzie ok? https://elektroweb.pl/pl/esp32/2213-esp32-s3-waveshare-lcd-1024x600-dotykowy-wi-fi-ble-can-rs485-i2c.html Myśle że tak, ale wole się upewnić zanim kupie
theqkash 19 sierpnia Autor tematu Udostępnij 19 sierpnia Nie wiem jak sobie poradzi na większych ekranach, nie mam takowego do testów. 7 minut temu, ewemarkam napisał: Myśle że tak, ale wole się upewnić zanim kupie To jest 7B, teoretycznie jest działająca wersja na ten układ.
ewemarkam 20 sierpnia Udostępnij 20 sierpnia (edytowany) W razie problemów jestes w stanie pomóc? W razie problemów, to zakup przez internet więc teoretycznie moge oddać. W każdym razie kupiłem. Edytowano 20 sierpnia przez ewemarkam
Treker (Damian Szymański) 20 sierpnia Udostępnij 20 sierpnia 4 godziny temu, ewemarkam napisał: W razie problemów jestes w stanie pomóc? @ewemarkam to projekt open source, więc nie można zakładać, że autor będzie każdemu indywidualnie pomagał w realizacji projektu na innym sprzęcie, niż ten, który był pierwotnie przeznaczony do wykorzystania w tym projekcie. Dnia 18.08.2026 o 13:38, Sabre napisał: A jak ESP32 S3 radzi sobie z tak dużą rozdzielczością ekranu? Czy P4 nie byłoby lepsze do tego? @Sabre jak dla mnie działa wystarczająco dobrze jak na tego typu projekt
theqkash 20 sierpnia Autor tematu Udostępnij 20 sierpnia (edytowany) @ewemarkam Wersja na 7B jest już dawno opublikowana, natomiast ja tego urządzenia nie posiadam i w razie problemów mogę nie być w stanie rozwiązać wszystkich. Na 100% działa i mam potwierdzone działanie przeze mnie na zwykłym 7 oraz na Tab5. Wszystkie pozostałe urządzenia i ich działanie bazuje głównie na feedbacku od userów, którzy zgłaszali czy coś działa czy nie na danym sprzęcie. Edytowano 20 sierpnia przez theqkash 1
SOYER 20 sierpnia Udostępnij 20 sierpnia @theqkash bardzo fajny projekt. Jako, że flightradar mam jako jedną z ulubionych aplikacji na telefonie, już chciałem kupować ekran i instalować. Potem pomyślałem na co mi kolejny ekran na ścianie, skoro szybciej i lepiej mam fligtradar na telefonie w kieszeni. Jednak nie daje mi to spokoju i pomyślałem, że może w bardzo ograniczonej formie dołożę tą funkcjonalność do mojego projektu z waveshare 4”: Myślałem nad prostym tłem obrazującym mapę wokół mojego domu, w promieniu powiedzmy 50 km od niego. Po tym tle przesuwały by się ikonki samolotów akurat widocznych na tym terenie. Powiesz mi jak to technicznie wygląda od strony kodu? Rozumiem, że musiałbym raz na np. 10s pobierać json z danymi(oczywiście tylko wtedy kiedy wyświetlany jest ekran mapy). Do tego stworzyć powiedzmy 15 obiektów(ikona samolotu) które na bieżąco będę chował lub pokazywał w odpowiednim miejscu ekranu. Tylko jak przeliczyć pozycję geograficzną z jsona na pozycję na ekranie… Te i inne pytania cisną się na szybko do głowy… a ile jeszcze będzie po drodze…?
_LM_ 20 sierpnia Udostępnij 20 sierpnia (edytowany) Naprawiłem problem z kolorami w sunton __attribute__((unused)) static const board_cfg_t k_sunton_8070 = { /* Sunton ESP32-8048S070 (7" 800x480, ST7262) and its unbranded * Amazon/AliExpress clones. NOT Guition-compatible: DE and VSYNC are * swapped and the data bus is wired in the opposite order, so the * Guition build shows garbage on this glass. Pin map and timings * from rzeldent/esp32-smartdisplay (working devices). Note the slow * 12.5 MHz pclk and the unusual 210-pixel HSYNC front porch - both * are what the 7" panel actually wants. */ .name = "Sunton ESP32-8048S070 (7in 800x480)", .de = 41, .vsync = 40, .hsync = 39, .pclk = 42, // .data = { 14, 21, 47, 48, 45, /* B0..B4 */ // 9, 46, 3, 8, 16, 1, /* G0..G5 */ // 15, 7, 6, 5, 4 }, /* R0..R4 */ .data = { 15, 7, 6, 5, 4, /* B0..B4 - zmienione */ 9, 46, 3, 8, 16, 1, /* G0..G5 - bez zmian */ 14, 21, 47, 48, 45 }, /* R0..R4 - zmienione */ .i2c_sda = 19, .i2c_scl = 20, .has_ch422g = false, .bl_gpio = 2, .tp_rst_gpio = 38, .hs_pulse = 30, .hs_bp = 16, .hs_fp = 210, .vs_pulse = 13, .vs_bp = 10, .vs_fp = 22, .pclk_hz = 12500000, .tp_mirror = false, }; Edytowano 20 sierpnia przez _LM_
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »