High number of hiccups during basic moves
-
Is the problem the high number of hiccups or something else? I guess what I'm asking is if you were experiencing high hiccups before the other issues came up, or if you never checked before the other issues came up.
While printing, I easily see 10-20 hiccups every second on my own printer (also a ultibots d300vs+, also with microstepping set to 64 on the three delta towers with a 0.9 degree steppers.) I don't think the high hiccup rate is unusual for this printer. It's disturbing to see, and I also wonder if it's normal. Perhaps @dc42 could pop in and tell us if it's normal, something we should ignore, or something we should try to resolve.
Rather than going to back to 2.01, try going all the way back to firmware version 1.19 and check. (Does 1.19 report hiccups?) That's something that I've been meaning to try one day, but never seem to get around to it. (The reason for going all the way back to 1.19 is twofold: First, because it's what Brad at ultibots provides. Second, because version 1.19 is pre-RTOS...)
Anyway, I know you've said that you checked the belts, etc, but there still might be something not quite right. There's a script that David Crocker posted a while back that checks for backlash. It's posted here (https://forum.duet3d.com/topic/7934/smart-effector-consistency-query/3) and I also posted a copy of it on the ultibots facebook group a couple weeks ago. If you find that you're getting a lot of backlash, it might relate to your other symptoms.
-
Older firmware versions reported MaxReps instead of the hiccup count, but the cause was the same: the processor becoming overloaded because it had to generate steps at a very high rate. They don't necessarily cause a problem unless the hiccup rate gets extremely high. To reduce the hiccup count you will need to reduce the step pulse rate, which can most easily be done by reducing microstepping or by reducing travel speed.
-
It seems odd though that the OP reported that the printer has always run at 64x without any problems until a week ago. According to my very quick "back of envelope" calculations, if we assume a maximum pulse frequency of 200,000 Hz, then 800 steps per mm should allow speeds of 250mm/sec. Of course, I know nothing about how Deltas work so maybe this is not a valid calculation.
-
@deckingman, on a delta when doing radial moves near the edges of the bed, the carriages move faster than the XY movement speed by a factor of up to about 3.
It's time I re-measured the maximum step rate of a Duet+RRF because there have been a lot of firmware changes since I did the original measurements. In particular, the firmware no longer does double/quad/octal stepping, because step-servo drives don't like it.
-
@dc42 Thanks for the explanation - Delta's are very strange beasts which are beyond my comprehension
And yes, it would be good to know what the max step rate is now. Would you expect it to be higher or lower than 200kHz?
-
@Phaedrux I can certainly try this for testing purposes and I'm sure it will work. I would be curious to know from others what the recommendation is for a delta. Is it better to run at x16 with interpolation or run at x32/x64 without?
@jacobf1 The only change that I did was that I got a new glass bed and installed a buildtak flex-plate system onto it. Of course I thought this might be the cause of my problems because the timing fits but after swapping the flex-plate system out for another just glass bed, my problems still exist. So either the flex-plate system caused a permanent change to the printer that I haven't been able to undo or it's something else. I analyzed the strength of the magnetic field under the glass bed, aluminum heat spreader, and kapton heater that I have on my bed and it was barely strong enough to hold a paperclip; the duet sits about 1.5in underneath this assembly. It is a 16 tooth pulley assembly as you indicated.
@garyd9 I'm assuming the problem is based on the number of hiccups because I've tried a lot other stuff to troubleshoot so far and this is all that I have left to go on; I never checked to see what number of hiccups the system was detecting before these issues started occuring. That's fascinating that your d300vs is also experiencing a high number of hiccups per second. I'll look into rolling back to the 1.19 firmware as you suggested and report back; as I recall going back that far requires more work than a usual update because of changes done in 1.19 and 1.20. I've been meaning to run that backlash script since it was posted on the facebook group but I haven't done so yet; I'll run it before trying any firmware changes.
@deckingman I concur that it is weird that I am only now experiencing these issues.
-
I've just done some tests on my delta. A step pulse rate of 120kHz to each of 3 motors moving simultaneously gives a small but acceptable hiccup rate (less than 50 over 200mm). If I increase it to 150kHz then the hiccup rate goes up by a factor of 10. So I recommend not more than 120kHz. When only 1 drive is moving, higher rates are possible - I'm guessing around 200kHz. On non-delta machines the maximum rates may be a little higher because the calculations are simpler.
This applies to stepper motors connected to the Duet's own drivers. For external stepper drivers the maximum rate will be lower because of the longer step pulse time and minimum step pulse interval. For machines using step-servo drives, the maximum step rate should be reduced further, because hiccups disrupt the smooth pulse train and that has a negative impact on the ability of a step-servo drive to predict what is coming next.
-
@garyd9 I'm getting about 0.04mm difference in mean on that backlash test. That seems to indicate to me that I do have somewhat of a backlash issue, but I need some context to know how severe it is. This doesn't really surprise me since I just re-tensioned the belts and I probably went a little further than I should have. I know David's post in the thread that you mentioned had a difference in means of 0.009mm.
-
@dc42 That explains my high number of hiccups since between the defaults for my config and the speeds I was requesting of the printer I would have needed a step pulse rate greater than 150kHz for pretty much all of my tests. I've put my config to x16 with interpolation and during basic calibrations I am producing no hiccups as expected. This was a good issue to get resolved, but I'm not convinced that this was the cause of my print issues since the print issues just started happening. I mentioned in a reply earlier that I recently installed a buildtak magnetic flexplate system onto my printer that I have since removed to do this testing. Can you think of anything that would be problematic about installing that system in the way I described? I was thinking about whether it could cause some level of emi, but that seems unlikely to me based on my tests and observations.
-
@mrsteve920 said in High number of hiccups during basic moves:
I'll look into rolling back to the 1.19 firmware as you suggested and report back; as I recall going back that far requires more work than a usual update because of changes done in 1.19 and 1.20.
If/when you do that, according to dc42, the hiccups might be reported as MaxReps. PLEASE let us know what happens..
@dc42 said in High number of hiccups during basic moves:
I've just done some tests on my delta. A step pulse rate of 120kHz to each of 3 motors moving simultaneously gives a small but acceptable hiccup rate (less than 50 over 200mm). If I increase it to 150kHz then the hiccup rate goes up by a factor of 10. So I recommend not more than 120kHz.
To clarify: 120kHz to EACH of the motors for an overall rate of 360kHz?
While I realize that the nature of a delta's movement makes giving exact numbers difficult, could you please translate that to a suggested max steps/mm (M203) for X/Y/Z on a delta using 800 steps/mm?
(That leads to the question of if M203 parameters apply to the delta X/Y/Z carriage movement or to the X/Y/Z of cartesian movement. )
Thank you
Gary -
@garyd9 said in High number of hiccups during basic moves:
To clarify: 120kHz to EACH of the motors for an overall rate of 360kHz?
Correct, although that doesn't mean you could drive a single motor at 360kHz without getting a high hiccup rate. Maybe 200kHz or a bit higher.
While I realize that the nature of a delta's movement makes giving exact numbers difficult, could you please translate that to a suggested max steps/mm (M203) for X/Y/Z on a delta using 800 steps/mm?
Only if you tell me the maximum travel speed that you want to use, and the angle between the rod and the horizontal when the effector is at the edge of the bed opposite the tower that the rod is attached to.
(That leads to the question of if M203 parameters apply to the delta X/Y/Z carriage movement or to the X/Y/Z of cartesian movement. )
To the Cartesian XYZ movement.
-
@dc42 said in High number of hiccups during basic moves:
Only if you tell me the maximum travel speed that you want to use, and the angle between the rod and the horizontal when the effector is at the edge of the bed opposite the tower that the rod is attached to.
I got an angle of 14.5deg assuming his printer uses 375mm rods and using the delta radius from my last calibration with a 300mm diameter bed. Let's use a max travel speed of 175mm/s.
-
@dc42 said in High number of hiccups during basic moves:
@garyd9 said in High number of hiccups during basic moves:
To clarify: 120kHz to EACH of the motors for an overall rate of 360kHz?
Correct, although that doesn't mean you could drive a single motor at 360kHz without getting a high hiccup rate. Maybe 200kHz or a bit higher.
...and "120kHz" translates to "120,000 steps (per motor) per second"?
Trying to put that into physical movement... With the driver configured for 800 steps per mm, that would result in 120kHz allowing 150mm/sec (for carriage movement.)
While I realize that the nature of a delta's movement makes giving exact numbers difficult, could you please translate that to a suggested max steps/mm (M203) for X/Y/Z on a delta using 800 steps/mm?
Only if you tell me the maximum travel speed that you want to use, and the angle between the rod and the horizontal when the effector is at the edge of the bed opposite the tower that the rod is attached to.
The max travel speed I ever use is around 120-150mm/sec, but max of 175 is also a good number just to get an idea.
I just measured 22.7 (+/- .2) degrees from horizontal (see image below.) It's possible that my "printable area" is smaller than @MrSteve920. This was after homing the printer and running "G1 Z250 Y-999."
If it matters, my delta arms are labeled as 375mm, but I'm using a slightly higher value. Here's the output of M665:
Diagonal 379.530, delta radius 208.700, homed height 411.472, bed radius 140.0, X 0.406°, Y 0.200°, Z 0.000°
Here's the image of the measurement
-
For a worst-case radial move close to the edge of the bed with the arm in that position, the ratio of carriage speed to XY speed is tan(90-22.7) = 2.4. So at 175mm/sec XY speed the carriage speed is 420mm/sec. Dividing 120kHz by 420mm/sec we get 285 microsteps/mm. So assuming you are using 16, 18 or 20 tooth 2mm pitch pulleys, if you are using 0.9deg motors then x16 microstepping with interpolation is the best choice. With 1.8deg motors you could use either x16 with interpolation, or x32.
-
@dc42 said in High number of hiccups during basic moves:
For a worst-case radial move close to the edge of the bed with the arm in that position, the ratio of carriage speed to XY speed is tan(90-22.7) = 2.4. So at 175mm/sec XY speed the carriage speed is 420mm/sec. Dividing 120kHz by 420mm/sec we get 285 microsteps/mm. So assuming you are using 16, 18 or 20 tooth 2mm pitch pulleys, if you are using 0.9deg motors then x16 microstepping with interpolation is the best choice. With 1.8deg motors you could use either x16 with interpolation, or x32.
That's really interesting and I can plug different numbers into that to look at different scenarios. Thank you. Less speed gives more microsteps...
My only problem now is understanding what it actually means in terms of actual quality. I typically print 0.1mm layers, but I don't know if "hiccups" are really impacting quality or if they are just a statistic that I can ignore. As well, while I understand the mechanics of a "microstep", I'm not sure that I understand what they mean in terms of actual print quality. If I use 32 microsteps, that's 400 steps/mm (or 0.0025mm/step.) Multiplying the 2.4 ratio, it is still 0.006mm/step.I'll take this to a new thread, as I think others might also be unsure of what some of this stuff actually means in terms of print quality... (https://forum.duet3d.com/topic/8688/stepper-movement-hiccups-and-microstepping)
-
Thanks for the help everyone. It appears that changing my microstep values to something more appropriate for a delta with my components was the solution to my problems. I am now back to printing completely normal prints. I ended up using x16 with interpolation as suggested. It is still unclear to me as to why I only recently started having issues, but from this discussion it's clear that using x64 microstepping was not a recommended setting regardless of if I was having issues or not. Thanks again.
-
@mrsteve920 do you notice any print quality change? Noise change?
-
@phaedrux Lack of layer shifts aside, I would say that the print quality is as good if not slightly better than it was before. I have only run a couple of small calibration prints so far but I do intend on printing a Sir Layers-A-Lot with a filament sample tonight or tomorrow.