Repository navigation
Pixelia 0.2.0 – Vernetzt
Pixelia 0.2.0 – Vernetzt
WLAN mit Setup-Modus, Einrichtungsseite im Browser und Updates ohne USB · 2026-10-18
Neu
- WLAN: Manager für bis zu 5 gespeicherte Netze; nach einem Scan verbindet sich Pixelia mit dem stärksten. Hostname „Pixelia“ im Router
- WLAN: mDNS-Name pixelia.local; Uhrzeit per NTP (Zeitzone Europa/Berlin), die Weltzeit folgt der echten Uhrzeit
- WLAN: Setup-Modus mit eigenem Netz „Pixelia-Setup“ (WPA2, Passwort steht auf dem Display) und Captive Portal: Mini-DNS, Prüfadressen von Android, iOS, Windows und Firefox, DHCP-Option 114. Die Einrichtungsseite öffnet sich am Handy von selbst
- WLAN: ohne Verbindung alle 2 Minuten ein neuer Versuch im Hintergrund; der Setup-Modus bleibt dabei erreichbar (Access Point und Station gleichzeitig)
- Display: Anleitung im Setup-Modus mit zwei QR-Codes (1. WLAN „Pixelia-Setup“ beitreten, 2. Einrichtungsseite öffnen), Setup-Passwort groß daneben
- Web: Webserver mit WebSocket (/ws, Status jede Sekunde) und einfacher Einrichtungsseite: WLAN, Update, Anzeige und Live-Systemwerte. Die richtige Oberfläche folgt in 0.3.x
- Web: JSON-Schnittstelle GET /api/status, GET /api/wifi, POST /api/wifi/scan, /api/wifi/add, /api/wifi/remove, POST /api/settings, POST /api/ota, POST /api/reboot, POST /api/speedtest (misst die Übertragungsrate)
- Update: neue Version als .bin im Browser hochladen, Fortschritt im Browser und als Balken auf dem Display
- Update: Prüfung vor dem Installieren: Pixelia-Firmware (Projektname), passender Chip und Revision, Prüfsumme. Ungeeignete Dateien werden abgelehnt, das Gerät läuft dabei ohne Neustart weiter
- Update: Probelauf mit Selbsttest (60 s). Rückfall auf die alte Version bei Absturz, bei einem Hänger (Watchdog nach 10 s) oder wenn der Selbsttest scheitert (nach 120 s); die alte Version meldet Grund, Task und Absturzstelle
- System: Einstellungen im NVS: Bilddrehung 0°/180° und Helligkeit, bleiben über Neustarts und Updates erhalten
- Engine: Systemschrift 5×7 Pixel, proportional, mit Kleinbuchstaben, Umlauten, ß und deutschen Anführungszeichen
- Engine: eigener QR-Code-Erzeuger und Systemanzeigen für Setup, Update, Meldungen und Kurzmeldungen am unteren Rand. Die Palettenindizes 240–255 gehören der System-Oberfläche
- Simulator: Systemanzeigen auch am PC (--screen)
- System: Diagnose-Befehle für Netzwerk und Updates: wifi, wifi scan/list/forget/setup/connect, ota, ntp, web, toast. WLAN-Passwörter lassen sich bewusst nur über die Einrichtungsseite eintragen
Verbessert
- Display: unbewegte Systemanzeigen werden nur bei Änderung neu gezeichnet: 0,02 ms statt bis zu 9,5 ms pro Bild
- WLAN: beim Start 45 s Geduld, bevor der Setup-Modus kommt. Router beantworten die ersten Anmeldungen nach einem harten Reset oft nicht (Grund 2, 4 oder 202)
- System: die Firmware-Version im lokalen Build wird nach jedem Commit aktualisiert
Behoben
- WLAN: Eine FritzBox im WPA2/WPA3-Mischmodus lehnte die Anmeldung ab (Grund 17, „IE in 4-Way-Handshake weicht ab“), weil ESP-IDF 6.1 standardmäßig den WPA3-Kompatibilitätsmodus (RSN Override) nutzt. Pixelia versucht es dann ohne diesen Modus und merkt sich das pro Netz im NVS
- Update: Ein Upload blieb bei schwachem Empfang (−71 dBm) ganz stehen. TCP-Fenster von 5,7 auf 32 KB vergrößert und SACK eingeschaltet, hängende Uploads werden sauber abgebrochen (die Seite meldet 30 s ohne Fortschritt). Übertragungsrate 37 → 158–233 KB/s
- Update: Der Zielbereich wird vorab in 64-KB-Blöcken gelöscht statt während der Übertragung: Update in 7 s statt 26 s
- Display: Lange Kurzmeldungen wurden abgeschnitten. Jetzt mit Zeilenumbruch, zu lange Texte enden mit Auslassungszeichen
- System: Der scheinbare Einbruch von ~31 KB internem RAM beim Start war ein Messartefakt: ESP-IDF reserviert einen DMA-Pool (32 KB), der bis zur ersten Anforderung einen Tiefstwert von 0 meldet. Die Tiefstwert-Messung startet jetzt zu Beginn von app_main
Geprüft
- Display: 30 fps, Panel 60 Hz, 0 Aussetzer mit WLAN, Webserver, offener Seite und während Updates. Kern 0 ist beim Update bis 100 % ausgelastet, Kern 1 (Grafik) bleibt unberührt; Hochskalier-Interrupt 20,2 %
- System: freier interner RAM im Betrieb 125–128 KB (Tiefstwert 119 KB), im Setup-Modus ≥ 115 KB, während eines Updates ≥ 121 KB (Budget 60 KB); PSRAM frei 6,9 MB. Speicherbedarf: Display und Engine 62 KB, WLAN 83 KB (Setup-Modus 92 KB), Webserver 16 KB
- WLAN: Einrichtung per Android-Handy: Die Seite öffnete sich von selbst, die Verbindung ins Heimnetz stand wenige Sekunden nach dem Speichern (Test des Users)
- WLAN: nach einem Software-Neustart in 3,6 s wieder verbunden, die Uhrzeit bleibt dabei erhalten
- Update: echtes Update auf die veröffentlichte .bin im Browser: 1113 KB in 7,1–7,4 s (3,2 s Löschen, Übertragen und Schreiben mit 176 KB/s), Selbsttest bestanden (Test des Users)
- Update: Rückfall mit drei Testvarianten geprüft: Absturz im Probelauf (StoreProhibited), Hänger (Watchdog) und gescheiterter Selbsttest. Jedes Mal startete die alte Version mit passender Meldung
- Update: abgelehnt werden Factory-Image, fremde Datei (Kennung ≠ 0xE9), anderes Projekt, anderer Chip, ein verfälschtes Byte und eine abgeschnittene Datei
- System: Einstellungen überleben Neustart und Update
Hinweise
- Update: Geräte mit 0.1.0 brauchen einmal den Web-Flasher, weil 0.1.0 noch keine Update-Funktion hat. Ab 0.2.0 laufen Updates ohne USB
- WLAN: Am Windows-PC mit FritzBox funktioniert pixelia.local nicht, weil der FritzBox-DNS .local-Adressen mit 0.0.0.0 beantwortet. Dort http://pixelia/ oder http://pixelia.fritz.box verwenden; Android öffnet pixelia.local direkt
Pull Requests
Installation
- Update (ab 0.2.0): auf der Einrichtungsseite des Geräts unter „Update“ die Datei
pixelia-v0.2.0.binhochladen. - Erstinstallation: Web-Flasher https://baldesarra.github.io/pixelia/ öffnen (Chrome oder Edge am PC), Board per USB-Datenkabel anschließen, auf „Installieren“ klicken.
- Von Hand:
pixelia-v0.2.0-factory.binmit esptool ab Adresse0x0schreiben.