My "2 Wifi" is un-baby-stepping
-
I apply baby-steps during a print, with no bed compensation what-so-ever, and this is what happens. I've even placed my fingers on the coupler and fought the motor trying to turn it back. It's not a slip. I can feel the pulses.
-
Is that a pancake stepper?
Can you include some more information?
https://forum.duet3d.com/topic/5909/guide-for-posting-requests-for-help -
@phaedrux Yah...
They are pancake motors, They're on the weak side, but with the right config, they work. What's funny is, what I'm printing out in that video is a gearing system to make them stronger and give me more Z height by taking the motors out from beneath the lead screw.
- Duet 2 Wifi
- CoreXY
- Dual Z motor
- 0_1550455467026_config.g
- start gcode...
G28 M561 ;Clear the mesh level info (will load below) M109 S[first_layer_temperature_0] M190 S[bed_temperature] ;Intro Line Near Right G1 X0 Y0 Z20 F2000 ; move to left front edge G1 X0 Y0 Z.3 E20 F3000 G92 E0 ; zero extruder G1 Y100 E35 F750 ; intro line G1 Y125 F3000 ; ooze it out buddy G1 Y150 F5000 ; wipe off the ooze G1 Z.1 G1 Y175 Z0 F7500 ; scrape off the crap G1 Y200 F7500 G1 Y210 Z0 F7500 G1 Y240 F15000 G1 Z1 G92 E0 ;zero extruder M117 Ready to Print
repro:
All I did was start a print and after it was not at the right offset, I click baby-step (-). I click it multiple times, no matter how many times, same thing happens.It does NOT happen when the print is not executing. So, if I pause the print and click baby-step (+/-), it moves and stays. Once the print starts again, it will rewind the baby steps I entered while paused.
-
M350 X64 Y64 E256:256 I0 ; Configure microstepping without interpolation
M350 Z4;M92 X2536.087 Y2536.087 Z6405.819 E185.69:185.69 ; Set steps per mm
M92 X639.4571 Y639.4571 Z198.8 E2941.62:2941.62 ; Set steps per mmM566 X1500.00 Y1500.00 Z750.00 E5000.00:5000.00 ; Set maximum instantaneous speed changes (mm/min)
M203 X36000.00 Y36000.00 Z1000.00 E36000.00:36000.00 ; Set maximum speeds (mm/min)
M201 X3000.00 Y3000.00 Z50.00 E9000.00:9000.00 ; Set accelerations (mm/s^2)
M906 X1800.00 Y1800.00 E1680.00:1680.00 I60 ; Set motor currents (mA) and motor idle factor in per cent
M906 Z2600.00 I80
M84 S30 ; Set idle timeoutYou've got some kinda crazy values in here for the z axis.
Crazy high steps per mmwith only 4 microstepping. Maximum current to a pancake motor. Very aggressiveaccelerationand jerk values. I'm not surprised it's behaviour is weird.Sorry, was on mobile and didn't see the semi colon on the high M92 and misread the acceleration line. But the rest still stands.
I'm curious if you run an M122 after it's done this do you see any hiccups reported?
-
So I had a chance to take a look at your config on a proper screen now, and I still think there are some things that could definitely be causing you issues.
M350 X64 Y64 E256:256 I0 ; high enough microstepping to cause hiccups M350 Z4 ; Low microstepping on z axis M566 Z750 ; high jerk for z axis M203 Z1000 ; high max speed for z axis M906 Z2600 ; max motor current into a tiny pancake motor
Combined with all of your quoted commanded Z moves would be requesting the full max z speed.
I think you might have best results with x16 microsteps across the board with interpolation to 256. Possibly higher for the extruder if it results in less than 400 steps per mm. I wouldn't be surprised if your microstepping settings are high enough to trigger hiccups and possibly missed steps.
Reduce the max Z speed to 300mm/min.
Reduce Z jerk to 50mm/minIt's not clear to me if you are using the Za and Zb motor connectors, or if you're using independent drivers for your Z axis. either way you may want to revisit your current settings to see what the motors are actually receiving, as your M906 Z2600 would seem very high at first glance.
-
@phaedrux I am using the a&b setup on the same driver. The reason for the settings like that are because the pancakes are not strong. So the larger the microstep the more torque it can handle.
Also, the current is high because there are 2 motors. As far as I understand, if you double the motors on a circuit, you double the current to compensate. Is that correct.?
-
Sure, I get what you're trying to do with the low microsteps but the high feed rate and jerk settings are kind of working against you. Lowering those might help reduce the initial torque required to get moving. You've already got a nice low acceleration value.
Things can also behave strangely at low microstep values like that. Things like motor direction flipping from what would be expected.
Maybe try x8 microstepping. The amount of torque lost won't be as much as you'd think.
If you have a free driver, why not give each motor its own? Keep in mind that the Za and Zb connectors are internally wired in series, not parallel, so they should be getting the full current each, not half. At least that's my understanding. Maybe I have it backwards, but I think that's why the Duet has them wired that way internally in the first place.
A stepper motor may be wired in either series or parallel, depending on the needs of the application. A series-wired motor will deliver more stall torque, but torque drops quickly as velocity increases. A parallel-wired motor typically maintains its (lower-than-series) torque to a higher velocity.
Do you have the specs on the motor? Someone more versed in stepper motors than I could probably tell you whether they would be better used in series or parallel.
-
Yeah, the jerk can change, the feed rate being that high isn't ever used.
The problem I'm experience isn't an effect though. It's definitely being executed. I've converted the Z to a 3-to-1 gearing, so it's much more visible because the motor has to spin further to get the same distance. I've tried pretty much every different microstepping setting.
I don't think I have a free driver?? X, Y, Zab, E0, E1
-
Yeah if you're using both extruders then no free driver.
I still think 2600ma is overboard considering they are rated at 1700ma Have you tried 1200ma? Or even 1700ma? Are the motors getting hot?
Especially if you're using 3:1 gearing now.Other than that I'm out of ideas. Definitely odd behaviour.
-
@phaedrux Yeah, they're getting hot. They're undergeared, 20 teeth on the motor, 60 teeth on the lead screw.
-
If you are using Za and Zb for motors, than they are wired in series, that means you must NOT double current. Double current is needed when motors are wired in parallel.
-
@gnydick said in My "2 Wifi" is un-baby-stepping:
............... I've tried pretty much every different microstepping setting...............
That must have been a pain because the way you have things configured, each time you change the micro stepping, you have to re-calculate and enter the the steps per mm for that micro stepping. So here is a little tip. Set the steps per mm for 16X in M92 but put that line before the M350 micro stepping line. Then you can change the micro-stepping in M350 and the firmware will automatically re-calculate the steps per mm.
As others have said, if you set micro-stepping too high, especially with the gearing you have, then you'll run the risk of hitting the step pulse frequency limit which is about 200KHz. So I'd suggest you start with 16X with interpolation which should be fine.
-
@gnydick said in My "2 Wifi" is un-baby-stepping:
@phaedrux Yeah, they're getting hot.
Depending on how long you have already run them at 171% of their rated current (1.4A according to the linked datasheet and 2.4A maximum current that the drivers on the Duet will put out - even if you command higher values) they might already have gotten to a temperature where their internal magnets have suffered and thus even further reducing their torque. So I would not count on them still being able to provide 13N.cm of torque anyway.
-
OOOOOOHhhhhhh. That's a great tip for ordering the commands. Yes, it was a pain, because even though it was powers of 2, it never worked out exactly and I had to measure every time. Luckily, I have a spreadsheet where I just plug in the settings and the measurement and it tells me the new setting to put in to fix it.
But, there seems to be a chicken and egg problem. Are you saying that the default is 16x and that's what I'm measuring if I were to not even specify microstepping?
-
@phaedrux I switched my extruder to x16 + 256 interp, and now the surface of my prints are pretty poor. They're rippled along the entirety of the path, not just beginning or end.
-
@gnydick said in My "2 Wifi" is un-baby-stepping:
OOOOOOHhhhhhh. That's a great tip for ordering the commands. Yes, it was a pain, because even though it was powers of 2, it never worked out exactly and I had to measure every time. Luckily, I have a spreadsheet where I just plug in the settings and the measurement and it tells me the new setting to put in to fix it.
But, there seems to be a chicken and egg problem. Are you saying that the default is 16x and that's what I'm measuring if I were to not even specify microstepping?
To save me typing - check this out - https://duet3d.dozuki.com/Wiki/GCode#Section_M350_Set_microstepping_mode
-
@gnydick said in My "2 Wifi" is un-baby-stepping:
@phaedrux I switched my extruder to x16 + 256 interp, and now the surface of my prints are pretty poor. They're rippled along the entirety of the path, not just beginning or end.
With your other axis at x16 you have open budget to increase the extruder micro steps. It's recommended to get your extruder steps per mm value in the 400 to 1000 range. Try x64 microsteps.
You can use this tool to determine what your max retraction speed with your microstep settings can be before getting skipped steps.
-
@phaedrux gotcha. Thanks!
-
So, it's still happening. It looks as though rapid baby-stepping is undone, but slow, infrequent baby-stepping isn't
-
Can you provide a GCode file and a sequence of steps to reproduce this?