Welcome! Log In Create A New Profile


Fix for Skipping Steps

Posted by trampas 
Fix for Skipping Steps
December 01, 2016 05:13PM
Having faced the problem of slowing down my printer to keep from skipping steps I finally gave up and added a rotary encoder to my steppers such that I never miss a step again, see [misfittech.net]

Basically you glue a magnet on the back of the stepper motor shaft and then attach the PCB, see [misfittech.net]
The PCB has a built in driver, thus you remove your step sticks. I have noticed my stepper motors are much quieter and do not get as hot with the NZS (Nano Zero Stepper). Additionally the NZS comes with 16x microstepping by default, and because of the feedback loop I have noticed I can run motors faster with the NZS when it is closed loop mode, than when running open loop. That is the control algorithm will dynamically adjust the step size to minimize error, hence at high speeds it can run in full stepping mode to minimize error.

I am still working on firmware and would like to get it where I can do automatic bed leveling by setting motor force low and then running head into bed, however I am not there yet.

Since I am still working on the firmware I only have made a limited production run of PCBs, so if you want one keep in mind that the firmware is still under development.

Re: Fix for Skipping Steps
December 01, 2016 09:24PM
Did you try reducing acceleration and jerk?

Son of MegaMax 3D printer: [www.instructables.com]
Ultra MegaMax Dominator 3D printer: [drmrehorst.blogspot.com]
Re: Fix for Skipping Steps
December 02, 2016 07:35AM
The NZS does not try and reduce acceleration and jerk, but does fix missed steps if you do accelerate or jerk too high.

The issue with acceleration and jerk is that it is a multiple axis problem. For example if I am moving in a diagonal line and the two axis involved in the diagonal movement have different accelerations then you do not get a diagonal line. Hence acceleration has to be controller by a controller that controls all the axis involved, ie must be done in Marlin.

The NZS however does have the ability to flag an error for Marlin to use. For example if the acceleration is too high then what happens is the motor can not keep it's positional accuracy, the NZS will do everything in its power to make sure this does not happen and will fix the positional error when movement slows back down. However during the fast acceleration where there was error the NZS can assert an "Error" pin to alert host controller (Marlin) that the motor can not keep up. This Error output then could be read by Marlin to dynamically adjust acceleration to be maximum for all axis. For example if the X axis can accelerate faster than Y axis, then you want to limit X's acceleration to that of the Y axis. Note that the feature of reading error pin is not in Marlin firmware that I know of.

So basically the NZS will do everything in it's power to make sure when you tell motor to move it will move the exact amount you told it with as quickly as it can while minimizing the error.

Back to the original question, no the NZS does not directly control acceleration or jerk. If you send it move commands faster than the mechanics can keep up it will flag a position error, and do it's best to move as directed (as fast as mechanics allow). When the acceleration commands drop below the mechanical limits of the machine the NZS will fix the positional errors to make sure it gets to the right x,y and z point.

I should also point out that my experience is that I can accelerate faster using the NZS than without. This is because of two things, first with the NZS I can set maximum current during movement higher than the hold current which minimizes the heat but increases motor's drive torque during moves. Second the NZS will move in full steps if the error gets larger than a full step, this allows the microstepping current "wind up" to happen faster again providing more torque (and acceleration) than without the NZS.

Re: Fix for Skipping Steps
December 02, 2016 08:24AM
Every question I can think of ultimately comes down to two things: what does a closed loop stepper driver do in a 3D printer that makes it worth the trouble and expense? How is this an improvement over turning down the acceleration and jerk so the machine behaves properly?

Son of MegaMax 3D printer: [www.instructables.com]
Ultra MegaMax Dominator 3D printer: [drmrehorst.blogspot.com]
Re: Fix for Skipping Steps
December 02, 2016 10:43AM
So the advantages come down to few things:

1. Faster prints - turning down acceleration, jerk and speed to keep from missing steps means slower print times.
2. Increased reliability - external items like bumping machine in operation will have less effect, or extruder hitting bump in work piece causing missed step ,etc.
3. Improved print accuracy - see below
4. Less heat and noise from steppers
5. Eventually, I would like to remove limit switches and improved bed leveling capability

If you are microstepping a 1.8 degree motor at 16x you do not have 0.1125 accuracy, see [www.google.com]
Note I did some testing of some step sticks see [misfittech.net], the DVR8825 accuracy of 16x microstepping is really bad. The A4988 was much better, however this accuracy was for an unloaded motor, and results will vary with a load on the motor.
What the controller does is gives you improved accuracy through the feedback. Now of course if you upgraded to a 0.9 degree stepper motor you can get improved accuracy too, but here again the controller will improve this even further with feedback.

For myself the main reason I created the controller was because I often run large jobs over night and I would check in the morning and find that the motors had missed a step and ended up with a rats nest of plastic. What I wanted is a means to detect missing steps and fix, and eventually if something bad did happen shut down the print job if it could not be fixed, hence the error pin.
I did turn down acceleration, jerk and speed to very low settings to get better results, even with this I noticed the extruder would often put extra glob of plastic and cause a bump that would then bind head on next layer and miss a step. I Also noticed that the accuracy of the prints were not a good as I like, and the motors hummed and generated lots of heat. Right now I am going to build me a larger printer and fix a lot of the mechanical mistakes I learned on this first printer. For example I will use Hiwin slides, 0.9 degree steppers, smoothie controller, and NZSs.

Of course nothing is going to magically fix a bad mechanical system, and if you have a good mechanical design and are happy with your results there is no need to add the NZS to your machine.

Stay in control of your stepper motors - [misfittech.net]
Hanging step motor
December 02, 2016 09:20PM
Hi.when I start one of axis motor the motor give one step and then hang .its happen for all of motors.why?

Edited 1 time(s). Last edit at 12/02/2016 09:23PM by mohamadsanati.
Re: Hanging step motor
December 02, 2016 09:21PM
Its happen for all of motors
Re: Fix for Skipping Steps
July 23, 2019 08:51AM
were you able to implement this? Give some details.
Re: Fix for Skipping Steps
July 23, 2019 09:31AM
Yeap, over the last 3 year I have improved the Smart Steppers such they work really well.

They do a really good job of preventing missed steps and turns stepper motors into closed loop servos.

The real value is in large prints that take a long time. Specifically if your prints are short and mess up you can just reprint. If you have prints that run 12 hours or more and they mess then you loose a day to reprint which is costly. Thus saving that one or two prints will save the cost of the smart steppers.

Of course I also have found that people are using them for other applications, like robotic arms, and industrial machines.

Re: Fix for Skipping Steps
July 30, 2019 11:47AM
Misfit 404

Re: Fix for Skipping Steps
July 30, 2019 12:55PM
try again, I had issue with domain register.
Sorry, only registered users may post in this forum.

Click here to login