af0815 hat geschrieben:Ich habe gesehen auch das Display wird angesteuert, laut config. Es sit also das es grundlegend auch eine Anzeige am Gerät gibt und ev. ein wenig von den Tasten arbeiten.
Ja, es gibt eine konfigurierbare Status-Anzeige und ein konfigurierbares Menü. Ich bin noch nicht ganz zufrieden damit, hauptsächlich weil es auf unserem recht kleinen Display Probleme mit zu langen Zeilen gibt. Da alles aber konfigurierbar ist, sollte sich das relativ leicht beheben lassen. Für die Status-Anzeige gibt es eine vorgefertigte Konfiguration für 16x4er Displays, für das Menü aber nicht.
af0815 hat geschrieben:Ich habe mit Python leider (noch) keine Erfahrung. Wie ist der Workflow wenn du etwas schreibst und testest am RF 1000. Logikfehler sind klar, aber wie geht Syntaxprüfen nur über das Kompilieren mit Klipper ?
Python ist eine interpretierte Sprache, d.h. da wird nichts kompiliert (jedenfalls nicht spürpar, es gibt einen "just in time" compiler, der beim Laden der Datei kompiliert, das ist aber nur eine Geschwindigkeitsoptimierung und passiert komplett automatisch im Hintergrund). Entsprechend fallen Fehler auch erst auf, wenn der fehlerhafte Code benutzt wird.
Das ist manchmal etwas nergiv. Aber im Vergleich mit Microcontroller-Code ist es immer noch 1000 mal angenehmer. Man kann zum Debuggen beliebig Text ins Log schreiben, dann kann man leicht sehen welcher Code in welcher Reihenfolge abgearbeitet wird und was da für Werte berechnet/gemessen werden. Das geht zwar irgendwie auch mit der Microcontroller-Repetier-Firmware, aber nicht an zeitkritischen Stellen (weil die serielle Schnittstelle viel zu langsam ist). Außerdem ist jede Änderung am Klipper-Code durch ein einfaches Neustarten von Klipper sofort aktiv. Da muss ich nicht erst eine Minute oder so warten, bis der Microcontroller programmiert ist.
Ganz zu schweigen natürlich davon, dass man sich einen ganz anderen Programmierstil leisten kann. Im Atmega verbieten sich schon Integer-Divisionen an zeitkritischen Stellen, weil sie einfach zu lange dauern. Selbst ein vergleichsweise langsamer Raspberry Pi ist nahezu unendlich viel schneller, da macht man sich über Floatingpoint-Divisionen oder auch komplexere Operationen wie Wurzelziehen erstmal keine Gedanken.
Python ist eine sehr anfängerfreundliche Sprache. Der Klipper-Code ist natürlich schon recht komplex und auch nicht unbedingt sehr gut dokumentiert. Aber es gibt eine Dokumentation, die einem eine Übersicht verschafft, was wo im Code passiert, das hilft schon mal enorm. Der Code ist sehr modular, so dass man nicht in fremdem Code rumwerkeln muss. Man schreibt einfach neue Module, die man per Konfiguration einschalten kann. Das Erleichtert die Arbeit auch enorm, und erhöht auch die Chancen, dass man den Anschluss an den Hauptentwicklungszweig nicht verliert, selbst wenn man den Code nicht zeitnah dort integriert bekommt.