Skip to content

Pixelia 0.2.0 – Vernetzt

Choose a tag to compare

@github-actions github-actions released this 18 Oct 18:55
· 40 commits to main since this release
cca0704

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

#4, #5

Installation

  • Update (ab 0.2.0): auf der Einrichtungsseite des Geräts unter „Update“ die Datei pixelia-v0.2.0.bin hochladen.
  • 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.bin mit esptool ab Adresse 0x0 schreiben.