Plotter
Messdatenschreiber
Controller
Es wurde ein ST Nucleo Devboard mit STM32F429ZI eingebaut. Dessen Stromversorgung hängt nicht am Messdatenschreiber so dass man auch weiterhin Firmware Updates per USB tätigen kann. Deshalb muss auch das USB-Kabel mit 5V versorgt werden. Es genügt also ein Ladegerät.
Anforderungen
Infrage kommende Hardware muss für die Steuerung des Messdatenschreibers über folgendes I/O verfügen:
- 2 DAC für X- und Y-Achsen
- 1 GPIO für Pen-down
- 1 externer Daten-Input:
- Entweder Ethernet mit TCP/IP (aktuell)
- Serial Port über USB würde den Plotter direkt aus Inkscape steuerbar machen. Aber dann müsste immer ein Computer angeschlossen sein.
Firmware
In Rust, parsed HPGL, fährt zur Geschwindigkeitskontrolle Linien mit Bresenham's Algorithmus ab.
Code: https://gitea.c3d2.de/astro/plotter
HPGL erzeugen
Inkscape
Inkscape kann dieses Format manuell abspeichern. Es dauert lang und crashed gern, produziert dabei aber trotzdem etwas Output.
vpype
vpype könnte SVG-Bilder in HPGL umwandeln und dabei noch smarte Optimierungen vornehmen. Leider produziert es leere Ausgaben (Stand: Dezember 2024).
Weitere Repositories
Code der Plotter bei Art&Play auf dem 38c3: https://github.com/schwittlick/cursor
Benutzung
Für die verwendeten 12-Bit-DACs müssen sowohl X als auch Y in den Koordinaten im Wertebereich 0..4095 sein. Die Firmware hat nie dein komplettes Bild im Speicher und kann deshalb auch nicht automatisch skalieren. Überprüfe deine Datei darauf und drehe gegebenenfalls an den DPI-Einstellungen beim Abspeichern in Inkscape.
Beim Übertragen per TCP bestätigt die Firmware nur die aktuell verarbeiteten Daten. Das bedeuten dass man den Backpressure zur Fortschrittsanzeige z.B. mittels pipeview nutzen kann:
pv -bep < datei.hpgl | nc plotter.c3d2.zentralwerk.org graphics
foo im HQ
Plotter ist Teil vom HQ. Mit der hier verwendeten Vorlage:foo im HQ sollst du eine Übersicht über andere wichtige Gegenstände im HQ bekommen.