Neue Branch-Struktur

Bisher basierte der Master-Branch auf Arduino 1 und der dev-Branch auf Arduino 2. Im dev-Branch gab es anfänglich und auch im Laufe der Zeit verschiedene Probleme, die jedoch sukzessive gelöst wurden. Es sind zahlreiche Fixes und Verbesserungen in den dev-Branch eingeflossen und aus meiner Sicht (widersprochen hat ja niemand) war es an der Zeit, diesen Branch zum neuen Master zu machen.

Das bedeutet, dass der bisherige Master nun der Branch „Arduino1“ ist und im Gegenzug der bisherige dev-Branch der neue Master. Der Arduino1-Branch wird nicht mehr weiterentwickelt. Für die meisten Benutzer wird das vermutlich, wenn man die Verbesserungen mal außer Acht lässt, relativ egal sein. Es gibt jedoch Hardware, die mutmaßlich durch den dort verbauten Port-Expander PD9555 insofern Probleme macht, als dass der ESP32 nicht im Deepsleep bleibt beim jetzt neuen Master. Mit dieser Hardware wird man vermutlich weiterhin bei Arduino1 bleiben müssen.

Ganz definitiv läuft der nun neue Master-Branch auf der mini4L in Verbindung mit dem von mir entwickelten LiFePO4-Develboard. Aber schreibt mir gerne hier drunter, auf welcher Hardware bei euch der neue Master-Branch läuft.

An dieser Stelle großen Dank an ALLE, die an der bisherigen Entwicklung des dev-Branchs beteilgt war. Insbesondere möchte ich hier @tueddy allgemein erwähnen und @Joe91 dafür, dass er „Arduino als Komponente“ ins Rollen gebracht hat: Neben verschiedenen Verbesserungen hat dies nämlich vor allem das Problem gelöst, dass sich der ESP32 wegen WPA3 nicht verlässlich in WLANs eingebucht hat.

An dieser Stelle nochmal eine Auflistung aller Anpassungen. Danke an @tueddy für die Zusammenstellung - da will ich mich nicht mit fremden Federn schmücken :slight_smile:

DEV-Branch Stand 27.10.2023:

Verbesserungen:

  • Zugangsdaten mehrerer WLAN-Netzwerke speichern (Papa & Oma - WLAN) und auch löschen => Verwaltung über Webinterface
  • Auswahlliste verfügbarer WLAN-Netzwerke im Accesspoint Portal
  • Verbesserte LED-Animationen, z.B. weichere Übergänge bei Lautstärkeänderungen & Playlistfortschritt
  • Beschleunigter Web-Upload, dafür werden u.a. LED, RFID und Audio Tasks pausiert
  • Faktor > 20 beschleunigte Playlist-Erstellung (keine/geringere Verzögerung beim Abspielen)
  • Laden der Dateianzeige im Webinterface reagiert deutlich flüssiger
  • Alle Audioformate aus der AudioI2S-Bibliothek werden jetzt unterstützt (OPUS, M3U8 & weitere), auch aus der Web-Oberfläche heraus
  • Abspielen von M3U-Enhanced Playlists
  • Ein Modifikationsbefehl kann direkt aus der Weboberfläche ausgeführt werden, z.B. Nachtmodus oder Bluetooth-Wechsel
  • Unterstützung von zusätzlichen Neopixel-LEDs für Taster z.B. Nachtmodus & Dimmen
  • Web-Oberfläche: Eigenes Icon für Playlists
  • Web-Oberfläche: Modale Dialoge für Info/Log, Sicherheitsabfragen z.B. beim Löschen von WLAN/RFID-Zuweisungen
  • RFID-Zuweisungen werden in der Web-Oberfläche angezeigt
  • Bluetooth-Modus kann durch Auflegen einer unbekannten Karte verlassen werden
  • Kompiliert für den ESP32-S3
  • Bluetooth-Kopfhörer in Weboberfläche einstellbar
  • Neuer Spielmodus „Alle Titel aus einem zufälligen Unterverzeichnis (zufällig)“
  • Neuer FTP-Server: Verbesserte Performance, vereinfachte Einstellungen im FTP-Manager z.B. Filezilla
  • Statistik über Spielzeit: heute und gesamt
  • Unterstützung für OGA Audio
  • Flachere Lautstärkekurve (einstellbar) für kleine Laustärken
  • Start ohne SD-Karte möglich, z.B. für einen reinen Webplayer

Fehlerkorrekturen:

  • Beim Webupload fehlten teilweise einige Bytes oder wurden vertauscht → fehlerhafte Audiodateien
  • Absturz beim Abspielen einer .mp3 Datei (Groß-/Kleinschreibung der Dateiendung ist jetzt egal)
  • Bug in Verbindung mit dem LED-Ring und Multibutton (Bug in Verbindung mit dem LED Ring und Multibutton)
  • Fehlende Übersetzungen hinzugefügt
  • Lautstärkesprung bei erster Änderung wenn Inital-Lautstärke <> Vorgabewert war
  • Portexpander Bugfix für Port 1

Code-Optimierungen:

  • Umstellung auf das aktuelle Arduino Framework 2 (IDF 4.4)
  • Compilieren mit „Arduino als Komponente“: Speicher- und Geschwindigkeitsoptimierungen
  • Behebung von Speicherlecks für Langzeitbetrieb
  • C++17 Compiler mit aktivierten Warnmeldungen
  • Compiler-Warnmeldungen beseitigt
  • Statische Codeprüfung mit CppCheck
  • Komplett überarbeiteter LED-Code
  • Komplett überarbeitete Log-Ausgabe
  • Überarbeiteter Code für Hallsensor (magnetische Hockey-Tags)
  • Entfernung von PROGMEM &pgmspace
  • Einheitlicher Codestyle
  • Erweiterte Web-API für ein zukünftiges Frontend
  • Web-Oberfläche: Komprimierte GZip Auslieferung, Optimierungen mit Lighthouse

Abgekündigt:

  • ESP-Muse wird nativ nicht mehr unterstützt, da keine Userbasis für dauerhaften Support (mehr) vorhanden ist
7 „Gefällt mir“