4 Punkte von GN⁺ 2026-02-09 | 1 Kommentare | Auf WhatsApp teilen
  • Demo-Projekt, das den ESP32-S3-Mikrocontroller in einen kompakten, sofort bootfähigen PC verwandelt und eine Shell, einen Editor, einen Compiler sowie einen App-Installer bereitstellt
  • BreezyBox ist eine Mini-Shell-Komponente für ESP-IDF und enthält UNIX-ähnliche Befehle sowie vterm- und VFS-Funktionen
  • Läuft auf dem Waveshare ESP32-S3-Touch-LCD-7B-Board und lässt sich leicht auf andere Boards übertragen
  • Nach dem Fork kann es auf dem eigenen Board ausgeführt werden; über die USB-Konsole lässt sich zudem standardisierte ANSI-Code-Ausgabe nutzen
  • Unter der MIT-Lizenz veröffentlicht und mit dem Ziel, das Ökosystem zu erweitern

Überblick über BreezyBox

  • Ein Demo-Projekt, mit dem sich der ESP32-S3 auch ohne Linux wie ein PC nutzen lässt, inklusive Shell-, Editor-, Compiler- und App-Installationsfunktionen
    • Die Nutzbarkeit orientiert sich an Raspberry Pi, jedoch ohne den Overhead eines Server- oder Desktop-Betriebssystems
    • BreezyBox ist eine auf ESP-IDF basierende Mini-Shell-Komponente, die eine einfache Befehlsausführungsumgebung bereitstellt
  • Der ESP32-S3 besitzt eine Ressourcenstruktur ähnlich zu PCs aus der DOS-Ära und enthält Wireless-Kommunikationsfunktionen
    • Das Projekt beschreibt das Potenzial dieses Chips als „kleine, elegante Technik“ und hält den Codeumfang minimal

Aufbau von BreezyBox

  • BreezyBox umfasst vterm, VFS, CWD-Tracking, UNIX-ähnliche Befehle und einen App-Installer
    • ELF-Loader und dynamische Link-Funktionen sind bereits in den ESP-IDF-Komponenten enthalten
  • Der Name ist von BusyBox inspiriert; die Software bildet eine User-Space-Schicht auf FreeRTOS
    • Lässt sich mit einer Zeile zu einem ESP-IDF-Projekt hinzufügen und funktioniert bereits mit grundlegender Ein-/Ausgabe

Merkmale des Demo-Repositorys

  • Dieses Repository ist eine Beispielimplementierung von BreezyBox und auf ein bestimmtes Board (Waveshare ESP32-S3-Touch-LCD-7B) zugeschnitten
    • BreezyBox überlässt Anzeige- und Board-Konfiguration der Benutzer-Firmware
    • Nutzer können den Code als Referenz verwenden und an ihr eigenes Board oder Display anpassen
  • Mit dem LVGL-Text-Label-Control lässt sich die LCD-Ausgabe einfach umsetzen; außerdem kann es auch über die USB-Konsole laufen

Verwendung

  • Das Repository kann geforkt und anschließend geklont werden, um es auf dem eigenen Board auszuführen
    • Es wurde auf einem Board für etwa 40 Euro getestet und kann auch auf günstigen LCD-S3-Boards genutzt werden
    • Mit der USB-Konsole lässt sich die ANSI-Code-Ausgabe in VSCode IDF Monitor oder Tabby prüfen
  • Der Font-Renderer wurde selbst geschrieben, ist jedoch eine optionale Implementierung zur Sicherstellung von über 30 FPS Leistung

Beiträge und Erweiterungen

  • Das Projekt steht unter der MIT-Lizenz und kann frei modifiziert und weiterverteilt werden
  • Gewünschte Beiträge
    • ELF-Apps hinzufügen: Neue Apps können anhand der Beispiele im breezyapps-Repository erstellt werden
    • Firmware-Beispiele für verschiedene Boards: Vorschläge reichen von C/C++-basierten Varianten über GUI bis hin zu Portierungen von Retro-Spielen
  • Ziel ist es, mehr Nutzer für BreezyBox zu gewinnen und ein Ökosystem aus sofort nachbaubaren Beispielen auszubauen

1 Kommentare

 
GN⁺ 2026-02-09
Hacker-News-Kommentare
  • Wirklich ein großartiges Projekt. Ich werde es selbst ausprobieren.
    Ich habe auch zwei andere verwandte Projekte gesehen.

    1. In der Reddit-Community r/xteinkereader wird an einer OS-artigen App für chinesische E-Book-Reader auf ESP32-S3-Basis gearbeitet.
    2. Es gibt auch ein Linux-Port-Projekt für den esp32-s3. Der S3 hat eine MMU, aber sie scheint in diesem Projekt nicht verwendet zu werden.
      Boot-Linux-ESP32S3-Playground
    • XTEink verwendet nicht den ESP32-S3, sondern den C3. Das S3-Board des OP hat 8 MB PSRAM, aber der C3 hat nur 384 kB RAM, was beim Bauen eines Embedded-OS einen großen Unterschied macht.
  • Dass es sofort bootet, ist wirklich großartig. Wenn man solche Projekte oder Adafruits Fruit Jam sieht, zeigt das: „Wenn man unnötige Komplexität entfernt, gewinnt man viel.“
    So etwas würde ich meinem Kind gern als ersten Computer geben.

    • Es wäre großartig, wenn auf dieser Basis ein 20-Dollar-Laptop bei AliExpress erscheinen würde.
  • Jetzt ist klar, was ich nächstes Wochenende machen werde. Ich wollte eigentlich einen esp32-s3 für ein anderes Projekt kaufen, aber jetzt muss ich wohl zwei kaufen.

  • Ich finde, das Preis-Leistungs-Verhältnis dieser Boards ist verrückt. Ich plane, sie als KVM-Ersatz zu verwenden.
    Wenn man ESP32-Bus-Pirate flasht und an das Gerät anschließt, das man remote steuern will, ist das extrem praktisch. Der Stromverbrauch ist auch fast null, also lasse ich es dauerhaft mit dem Wi-Fi verbunden.

    • Ich frage mich, wie die gemeinsame Nutzung des Displays gelöst wird. Ich verwalte mehrere Refurb-Server und habe nicht das Budget für ein richtiges KVM, daher würde ich das gern als Ersatz verwenden.
  • Ich frage mich, ob man das so portieren könnte, dass es auch auf dem rp2350 läuft.

    • Ein Teil davon dürfte möglich sein. Die Shell besteht im Grunde nur aus linenoise mit etwas Glue-Code. Ich weiß nicht, wie es beim rp2350 mit dem ELF-Laden aussieht, aber in ESP-IDF ist das eine Standardkomponente, also besteht eine Chance.
    • Der rp2350 unterstützt FreeRTOS, daher dürfte ein ähnlicher Port ziemlich einfach sein. Der I/O-DMA-Code des Pico ist speziell, aber es ist ein ziemlich leistungsfähiger Chip.
  • Oh, bist du die Person, die xcc700 gebaut hat! Ich interessiere mich sehr dafür, MCUs für allgemeines Computing zu verwenden. Ich frage mich, wie weit man das treiben kann.

    • Ja. Es gab viele Anfragen nach der Shell, die in der xcc700-Demo verwendet wurde, also habe ich sie veröffentlicht. Der ESP32-S3 zeigt bisher nur einen winzigen Teil seines Potenzials.
      Vielleicht erinnerst du dich daran, dass FabGL früher Demos mit Spielen und DOS-Emulation laufen ließ. Mit aktuellem ESP-IDF ist ein Update aber schwierig.
      Deshalb baue ich es mit einer modulareren Struktur neu auf, damit es langfristig wartbar bleibt. Jemand hat sogar einmal eine ältere MacOS-Version per Emulation darauf laufen lassen.
  • Wirklich großartig! Das muss direkt auf den M5Stack Cardputer.

  • Ist die Implementierung eines allgemeinen OS ohne flaches Speichermodell nicht schwierig? Der Amiga1000 hatte zwar auch keine MMU, aber ein flaches Speichermodell. Um das zu umgehen, war vermutlich einiges an komplexer Arbeit nötig.

    • Das Speichermodell ist flach genug. Das Problem ist, dass es nur etwa 200 kB traditionellen RAM gibt. Stattdessen gibt es 8 MB PSRAM, aber dafür ist 4-Byte-Ausrichtung nötig und es ist langsam.
      Der Grund, warum ein allgemeines OS auf dieser Plattform schwierig ist, ist das Fehlen von Speicherschutz. Aber ich wollte einfach nur eine Shell und einen App-Installer bauen, und dafür ließ sich das lösen.
    • Der Grund, warum ein allgemeines OS auf einem SoC schwierig ist, ist normalerweise das Fehlen einer MMU. Bei Sprachen ohne Pointer-Zugriff wie Java oder JS ist das egal, aber in C geschriebene Desktop-Apps brauchen immer konsistente virtuelle Adressen.
    • Ich kenne mich mit MCUs nicht aus, aber könntest du dieses Problem etwas genauer erklären?
  • Ich bin jetzt zum ersten Mal auf BreezyBox gestoßen und finde es wirklich spannend. Ich wollte mich nicht mit Dingen wie Wi-Fi-Einrichtung oder Updates beschäftigen, sondern einfach nur meine App schreiben.
    Ich habe nie verstanden, warum es kein einfaches Mikrocontroller-OS gibt, das so etwas übernimmt. Das hier könnte eine Basis dafür sein.
    Ich frage mich, ob es einen Konfigurations-Flow für Headless-Deployments gibt, etwa Wi-Fi-Setup beim Flashen, Remote-Shell oder Deployment einer Web-UI.

    • BreezyBox befindet sich noch in einer frühen Entwicklungsphase. Fast alles, was du in der Demo gesehen hast, ist auch schon alles. Damit es sich verbreitet, müssen mehr Entwickler Apps und Funktionen hinzufügen.
      Web-Zugriff für Remote-Konfiguration dürfte sich umsetzen lassen. Es gibt bereits einen Webserver, man müsste ihn nur erweitern, damit serverseitiger Code ausgeführt werden kann.
  • Anfängerfrage: Ist das nur für den S3 gedacht, oder könnte es auch auf dem C3 laufen?

    • Das meiste lässt sich auch für C3, C6 und P4 kompilieren. xcc700 ist allerdings nur für Xtensa-CPUs gedacht, daher ist das Portieren schwieriger.
      Die per eget installierten ELF-Binärdateien müssten ebenfalls für RISC-V neu kompiliert werden. Um ELF-Dateien nach Plattform zu unterscheiden, wäre es sinnvoll, Manifest-Unterstützung hinzuzufügen.
      Außerdem müsste man berücksichtigen, wie viel PSRAM überhaupt vorhanden ist.