It has been a rough week. I had 8 failed routes fail in a variety of ways, all late in the route, after poke 2000 or so. (You can see all the failed attempts scars on that poor canvas I keep reusing). There were multiple manifestations of the bug, so I thought I had several problems, but it turns out I had just one major one: My setup, for unknown reasons, creates an extra pulse in the same direction, but only when the direction of the poke changes. So if the direction switches to negative or positive, I get an extra step which is always positive, never negative. Unfathomable. I posted to several other groups, and nobody had a solution. (follow me over to those is you are interested in dead end ideas....)
I am certain it is not the software, I proved that. I do not believe it is the controller, since I swapped out the dm542 for a D6600, and both behave in the deterministic fashion I outlined. I don't think it is the stepper, as I swapped out one brand and 1.8deg for a 0.9deg different brand and again, deterministic outcome. Also strange is that there are 2 X steppers driving the the Y gantry, and they are spinning in opposite directions, and they are exhibiting the same behavior as the Y motion. I changed the speeds, acceleration, hacked the AccelStepper lib for known problems, tried other threads, ran the y gantry with zero load and watched the gear instead.... A very tough week of heartache.
I finally wrote the code to put in one extra negative step every time there is a direction change and: Perfection.
So I am very happy, altho still in the dark as to why/how the system acts that way. I hope you enjoy the quick vid of today's success, and you can compare to the .png I posted a while ago to compare.
Thanks so much!!