No description
Find a file
vincent ed4efe7bdf Server: Tonstrom in 2-KB-Stuecken etwa in Echtzeit, Aufgabe fuer kleine TLS-Pakete
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>
2026-10-24 01:49:07 +02:00
assets HAPNET OS: VGA-Treiber, Terminal, Shell, nano, Deploy-Skript 2026-10-17 22:34:15 +02:00
doc miniMail: Nachrichten, Bugreports und Ideen (#40, #41) 2026-10-22 00:48:17 +02:00
docs Doku: Dev-Builds nach etwa 60 s 2026-10-21 22:41:40 +02:00
esp32 ESP32 per update aktualisieren (#20) 2026-10-21 08:28:48 +02:00
etc Start: 2 s schwarzes Bild, dann 2 s Startbild, dann die Pruefungen 2026-10-21 22:38:24 +02:00
firmware Firmware-Variante fuer das PSRAM-Board (#13) 2026-10-21 08:30:57 +02:00
ideen Ideen: Zielbild der Grafikkarte (1024x768, Bilder 512x384 in 2x2) 2026-10-21 18:28:30 +02:00
lib miniMail: Nachrichten, Bugreports und Ideen (#40, #41) 2026-10-22 00:48:17 +02:00
packages miniMail: Liste ohne [Pico]-Vorsatz im Titel (#42) 2026-10-22 11:39:23 +02:00
server Server: Tonstrom in 2-KB-Stuecken etwa in Echtzeit, Aufgabe fuer kleine TLS-Pakete 2026-10-24 01:49:07 +02:00
tools Programme auf Englisch (#18) 2026-10-21 08:21:21 +02:00
.gitignore Signierte Pakete und Updates pruefen (#12) 2026-10-21 08:06:38 +02:00
blue.py HAPNET OS: VGA-Treiber, Terminal, Shell, nano, Deploy-Skript 2026-10-17 22:34:15 +02:00
boot.py pkg und update (OTA) auf dem Pico, mit Rollback 2026-10-19 23:03:36 +02:00
main.py Start mit echten Pruefungen und abgesichertem Modus (0.3.3) 2026-10-20 20:19:19 +02:00
Makefile pkg und update (OTA) auf dem Pico, mit Rollback 2026-10-19 23:03:36 +02:00
README.md pkg behaelt Datendateien und uebernimmt alte Programme, deploy aus packages/ 2026-10-19 23:41:15 +02:00

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.