Das ESP32 braucht fuer jeden TLS-Datensatz Platz am Stueck und hat nur 0,09 s Ton gepuffert; 16-KB-Datensaetze (0,37 s ADPCM) brechen die Musik ab. music.py schreibt jetzt 2 KB auf einmal, hoechstens 6 KB vor der Echtzeit. Was am Proxy noetig ist: server/stream_tls_task.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| assets | ||
| doc | ||
| docs | ||
| esp32 | ||
| etc | ||
| firmware | ||
| ideen | ||
| lib | ||
| packages | ||
| server | ||
| tools | ||
| .gitignore | ||
| blue.py | ||
| boot.py | ||
| main.py | ||
| Makefile | ||
| README.md | ||
HAPNET OS
Kleines Betriebssystem in MicroPython für den Raspberry Pi Pico 2 (RP2350) mit VGA-Ausgang. Bootet mit dem HAPNET-Logo und startet danach ein Terminal mit Shell und Texteditor.
Hardware
- Raspberry Pi Pico 2 mit MicroPython 1.29
- VGA über das PicoVGA-Widerstandsnetz: GP0–1 Blau, GP2–4 Grün, GP5–7 Rot (RGB332), GP8 CSYNC → VGA-Pin 13
- Ausgabe 640×480 @ 60 Hz, Framebuffer 320×240 mit 256 Farben (PIO + DMA, keine CPU-Last)
Aufbau
main.py Startpunkt: Splash, danach Terminal und Shell
lib/ OS-Module (vga, term, shell, editor, …) und logo.bin
etc/hapnet.conf Standard-Konfiguration (wird nur angelegt, wenn sie auf dem Pico fehlt)
doc/ Dokumentation auf dem Gerät (view /doc/willkommen.md)
packages/ Programme (Pakete) für run, per make deploy oder pkg install: je ein Ordner mit main.py oder <name>.py (Funktion main(shell)) und description.txt
tools/ deploy.sh, logo2bin.py (Bildkonverter PNG → RGB332)
firmware/ optional: eigene Firmware für eine USB-Tastatur direkt am Pico (firmware/README.md)
docs/ROADMAP.md Plan für Erweiterungen
docs/BEWERTUNG.md Einschätzung, Bewertung und aktuelle Prioritäten
docs/programs.md Anleitung: eigene Programme schreiben (deploy legt sie als /doc/programs.md aufs Geraet)
Benutzung
python3 -m venv .venv && .venv/bin/pip install mpremote pillow mpy-cross==1.29.0.post2
make deploy # alles auf den Pico kopieren und neu starten
make term # Terminal mit Netz-Bruecke fuer den Pico (Ctrl-] beendet)
make repl # reine Terminal-Verbindung ueber mpremote (Ctrl-X beendet)
make test # jeden Befehl und jedes Programm einmal testen (Port muss frei sein)
make logo # assets/hapnet-logo.png nach lib/logo.bin konvertieren
make push # nach Forgejo pushen (Token aus .env: GIT_TOKEN=...)
Der Pico 2 hat kein WLAN. make term (tools/hapterm.py) ist deshalb nicht nur das Terminal,
sondern beantwortet auch Anfragen des Picos: run wiki holt darüber Wikipedia-Artikel, die der
PC in Markdown umwandelt. Mit HAPNET_WIKI=en make term kommen die Artikel aus der englischen
Wikipedia.
Für den Zugriff auf /dev/ttyACM0 ohne root:
echo 'SUBSYSTEM=="tty", ATTRS{idVendor}=="2e8a", MODE="0666"' | sudo tee /etc/udev/rules.d/99-pico.rules
In der Shell zeigt help alle Befehle. Eine Einführung auf dem Gerät: view /doc/willkommen.md.
Konfiguration
/etc/hapnet.conf auf dem Pico (ändern mit nano /etc/hapnet.conf, wirksam nach reboot):
Textfarbe, Splash-Dauer und -Text, Scanlines (splash/on/off), Boot-Log, Autostart-Skript.
make deploy überschreibt eine vorhandene Konfiguration nicht.