Da mir so manche Details der Schrittmotor-Algorithmen schon immer ein wenig suspekt waren, habe ich mich mal ein bisschen mit ATmega-Simulatoren beschäftigt und ein Verfahren ausgetüftelt, wie man jeden einzelnen Motorschritt zusammen mit seiner genauen Zeit aufzeichnen kann. Genauigkeit: ein einzelner Takt des ATmegas, also 0,05 Microsekunden.
Nach einigen Wochen werkeln kam jetzt das dabei heraus (für's Erste mal nur X und Y aufgezeichnet, jeweils oben Step, unten Dir):
Das war ein G1 X20 Y10 F400. Man sieht Schrittchen für Schrittchen, was sich abspielt. Die X-Achse, bei der die Schritte immer schneller kommen, die also beschleunigt. Die Y-Achse, die sich um einen halben Schritt vertuddelt (Rundungsfehler) und dann genau folgt.
Genauso kann man jetzt mit dem Debugger an die Firmware ran gehen. Ding anhalten, Variablen prüfen, Ding weiter laufen lassen. Ohne dabei die Schrittmotoren aus dem Takt zu bringen.
Anleitung: [
reprap.org]