Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

Aktueller Stand

Der aktuelle Stand is wild and chaotic.

Aktuell existiert ein funktionierendes C-Programm, das einen Buffer für Pixeldaten bereitstellt, einen TCP-Server öffnet und die Pixel aus dem Buffer direkt an den VGA-Ausgang schickt.

Der TCP-Server nimmt Pixeldaten als rohe bytes aus Paketen entgegen und speichert diese direkt in den Buffer.

Da der Buffer durchgängig über VGA gerendert wird, kann man so durch gehend das aktuelle Bild sehen.

Der code hängt von irgendwelchen Bibliotheken ab, bin unsicher welche gerade. In den pico-examples und den pico-extras findet man aber Code, der sehr ähnlich ist. Die Build-Pipeline war immer sehr wackelig und ich hab nicht ganz verstanden was da passierte...

Rewrite in Rust

Ich würde gerne Rust lernen, das ist eine Sprache etwa auf der gleichen Abstraktionsebene wie C++. Mit Rust könnte die Build-Pipeline etwas einfacher/ordentlicher werden. Da nerven keine Makefiles und man muss nich wissen was nen Headerfile is, omg C ist SO ALT.

Die Roadmap dafür ist aktuell:

  • Blinky: on board LED blinken lassen mit Rust Programm
  • Netzwerk: mit dem Netzwerk-Chip kommunizieren
  • VGA: pixeldaten über das VGA-Board an den Anschluss senden, noch keine Bild-Generierungs-Logik, nur erstmal schauen, obs klappt
  • SD-Karte: schauen wie daten auf die Karte geschrieben / von der Karte gelesen werden

Ressourcen und Notizen

Der Chip auf dem Pico ist ein RP2040.

"rust runs on EVERYTHING (no operating system, just Rust)" von Low Level Kleine Anleitung Blinky in Rust auf den R-Pi Pico zu übersetzen. Benutzt rp2040_hal https://www.youtube.com/watch?v=Yi0WRF5WPFw

rp2040_hal: Der Hardware Abstraction Layer ist eine Rust-Bibliothek (Crate), die die Kommunikation mti dem rp2040-Chip vereinfacht/ermöglicht. https://docs.rs/rp2040-hal/latest/rp2040_hal/

Embassy: Ein Framework für Microcontroller. Hier gibt es einiges um mit der Netzwerk-Hardware zu arbeiten. Das könnte sehr gut sein. Außerdem zielen die drauf ab parallele Ausführung (async) zu verwenden. Was wichtig werden könnte. Wie sich Embassy mit dem R-Pi verhält weiß ich noch nicht. https://embassy.dev/

Ziele für die kommende Version

  • Steuerprogramm für den Show-Rechner/Kontroll-Rechner
  • Mehrere Bilder auf der SD-Karte speichern
  • Uhr auf dem Pi
  • Bilder nach Uhrzeit anzeigen