Does M906 set RMS or peak current?
-
As the title already says, what do I set with
M906
?Example: I do have 900mA motors. If I set
M906 X450
does it mean this motor will under no circumstances get more than 450mA (is such a strikt limit even possible?) or will this be 450mA RMS meaning it can go up to about 630mA peak? -
It sets peak current. The maximum ratings and the formulae for driver current setting for A4982, A4988, DRV8825 and other older chips were described in terms of peak current on the data sheet; so it has become usual in 3D printing to refer to peak stepper motor current, not RMS current.
Please note, current setting on the Duet 2 series is done in steps of 100mA. If you ask for 450mA it will be rounded down to 400mA.
-
@dc42 said in Does M906 set RMS or peak current?:
It sets peak current. The maximum ratings and the formulae for driver current setting for A4982, A4988, DRV8825 and other older chips were described in terms of peak current on the data sheet; so it has become usual in 3D printing to refer to peak stepper motor current, not RMS current.
I was asking because the driver setup for TCM2130/2208 in Marlin wants RMS current to be set, so that might be an exception.
Please note, current setting on the Duet 2 series is done in steps of 100mA. If you ask for 450mA it will be rounded down to 400mA.
Good to know - it was probably never meant to be used with such low-current steppers when having drivers that can put out 2400mA.
Interesting though that my motors can still keep up with only ~45% of their torque - I would never have expected that.
EDIT: I am planning to enable coolStep in the future (after tuning stallGuard is finished). Would I then set
M906
to the rated current of the motor and let coolStep handle the reduction so it can make use of the full torque if necessary or would I still set this to something around 50-85% of the rated current then?
When we are at motors already, I am looking for replacement motors and so far I found the following candidates for X/Y:
- 17HS16-2004S1
- JK42HS40-1704
- 42BYGHW609
I will switch to Titan or similarly geared extruder in the near future but I am struggling to select a good motor for it that is rather light (as it will be used as direct drive) but powerful enough. Any suggestions here?
Also not sure what to select for my two Z motors as Z never needs to be fast but switch from 1.8° to 0.9° would double my precision here (currently 400 steps/mm) - but I am not if I even would need that precision except I would only have to remember that I increment layer heights in 0.02mm instead of 0.04mm.
-
For a Titan i suggest a stepper motor with around 15 to 25Ncm of torque at rated current. I use https://www.omc-stepperonline.com/nema-17-stepper-motor/nema-17-bipolar-18deg-22ncm-31ozin-133a-28v-42x42x34mm-4-wires-17hs13-1334s.html but my extruder isn't direct drive so the weight wasn't an issue. Possibly https://www.omc-stepperonline.com/nema-17-stepper-motor/nema-17-bipolar-18deg-18ncm-255ozin-07a-29v-42x42x25mm-4-wires-17hs10-0704s.html would be suitable, although I would prefer to see higher current and lower inductance.
-
@dc42 I think your first recommendation (17HS13-1334S) is still lighter then what I currently have (I will have to weigh it because online sources on this cheapo-motor are varying between 280 and 310g). So that already would be an improvement.
What I have a hart time with is to determine what speed my extruder motor needs to reach. I can input all the specs into EMF calculator and see the speed at which torque starts to drop (and thereby skipped step detection will no longer work, as we discussed in another thread) but what speed do I need to reach? I know this depends on a lot of factors but it there some ball-park-number I could go with?
Gonna repeat my inline-edit from above as it is too easy to miss:
I am planning to enable coolStep in the future (after tuning stallGuard is finished). Would I then set M906 to the rated current of the motor and let coolStep handle the reduction so it can make use of the full torque if necessary or would I still set this to something around 50-85% of the rated current then?
-
I reckon on reaching 60mm/sec retraction speed, however that's for a Bowden extruder. With a direct drive extruder you will use much less retraction, so you don't need such high retraction speeds.
How you use coolStep is up to you, it depends on how much torque you need.
-
I use the 17hs08-1004s on my titans (direct drive) without any issue.
-
@dc42 said in Does M906 set RMS or peak current?:
I reckon on reaching 60mm/sec retraction speed, however that's for a Bowden extruder. With a direct drive extruder you will use much less retraction, so you don't need such high retraction speeds.
Yeah, retraction speed... I never thought of that part. Always ever thought of "how much mm/s will I ever need while pushing out filament when printing". That is great reminder and probably the one point where the extruder is fastest. Thanks!
How you use coolStep is up to you, it depends on how much torque you need.
My though here was: let the driver decide how much torque is needed because it will probably be better in sensing required torque then I could ever calculate/estimate it.
There is a video from Trinamic that explains stallGuard and coolStep where they even let the driver go up to 150% of the rated current for a short period of time. I do not currently plan on pushing the steppers that far but could I do that by just settingM906
to 150% of the rated current (I assume yes). -
@whosrdaddy Thanks for your input. I was struggling a bit to use such a "weak" stepper because according to https://duet3d.dozuki.com/Wiki/Choosing_an_extruder_drive one should aim for at least 10N and with a 3:1 gearing it would require at least 17Ncm.
Speaking of which: I commented on that page that I assume the formula for 0.9° steppers is missing another zero to be correct. Am I right in that assumption?
-
@wilriker : You are aware that E3D sells a 0.9deg pancake stepper that only has 12Ncm? I have one on my P3Steel and is a bit weaker than the OMC's on my CoreXY....
-
@whosrdaddy Yeah, I know but at least it is not the one they sell in the bundle (anymore?!) and say something like "hey, look here, we have a stepper that has a lot of power but still is lighter than the regular ones without beeing a total weak-o".
I am not long enough into 3D printing to have an educated meaning on E3D but I know (and probably everyone does) that sometimes sellers just sell things out of customer's demand and not because it is the best product/combination, so I have trusted the wiki here a little more than the wide product range of E3D.
Is a 0.9° stepper on a geared extruder really an additional improvement, I am wondering?
-
The minimum extrusion force that I give in the wiki page is set at a value that makes it unlikely that you will be short of extruder force. I am not saying that you can't extrude with lower force but it depends on your hot end, filament, print speed and print temperature (including how much the extruder temperature drops when the print cooling fan turns on). For a directly coupled extruder such as the Titan Aero it would certainly be worth trying a lighter pancake motor that provides less than 10N force in order to reduce weight, but preferably make sure your print head design will accommodate a slightly longer motor too in case it proves inadequate.
-
@dc42 Thanks for clarifying. I now ordered a Titan (actually I have to admit it is a clone) and the included motor has 12 Ncm with slightly better values for resistance and inductance than the short pancake that @whosrdaddy has. This will through the gearing already give me about 2N more force than my current extruder which is ungeared.
My extruder carriage is not restricting motor size, so I could upgrade to a larger/stronger one later.
Oh, and thanks for fixing the formula on the wiki page.
-
I found the e3d pancake getting very hot, so I switched to the e3d compact one which works better for me. Direct drive normally printing at 70mm/s and .4 nozzle, .2 layer height
-
One question that came to my mind: will any one or a combination of the factors rated current, resistance and inductance have an effect on the noise level of a motor?
My final goal is to modify my printer to be the most silent as possible at a given speed. The TMC2660 already do a great job in reducing noise level (I know that TMC2130/2208 would have been even more silent using stealthChop but I could not resist adding the very best board out there to one of the most low-end printers available ) but can a specific selection of motor specs also reduce the noise level even further?
-
@wilriker said in Does M906 set RMS or peak current?:
One question that came to my mind: will any one or a combination of the factors rated current, resistance and inductance have an effect on the noise level of a motor?
The answer is yes, but I don't yet know what the best choice is. Also we may be able to reduce the noise level for particular motors by adjusting the chopper configuration register settings.
-
@dc42 said in Does M906 set RMS or peak current?:
Also we may be able to reduce the noise level for particular motors by adjusting the chopper configuration register settings.
Is there something I can do to help testing this out?
-
@wilriker said in Does M906 set RMS or peak current?:
@dc42 said in Does M906 set RMS or peak current?:
Also we may be able to reduce the noise level for particular motors by adjusting the chopper configuration register settings.
Is there something I can do to help testing this out?
Yes! See section 2 of https://www.trinamic.com/fileadmin/assets/Support/Appnotes/AN001-spreadCycle.pdf for guidance on tuning the chopper configuration register settings. You can change the value of the chopper configuration register in firmware 2.0RC5 using the C parameter of the M569 command.
PS - the default chopper configuration register value is:
// Chopper control register defaults
// 0x901B4 as per datasheet example
// CHM bit not set, so uses spread cycle mode
const uint32_t defaultChopConfReg =
TMC_REG_CHOPCONF
| TMC_CHOPCONF_TBL(2) // blanking time 36 clocks which is about 2.4us typical (should maybe use 16 or 24 instead?)
| TMC_CHOPCONF_HDEC(0) // no hysteresis decrement
| TMC_CHOPCONF_HEND(3) // HEND = 0
| TMC_CHOPCONF_HSTRT(3) // HSTRT = 4
| TMC_CHOPCONF_TOFF(4); // TOFF = 9.2usOnly the lowest 17 bits of the value you give in the M569 command are used.
-
@dc42 I will look at the documentation and see what I can do. My biggest problem here might be that the real inductance of the motors I currently still have is unknown (stock Anet A8 motors - you already researched a bit about them and guessed they would be aroun 8-10mH). Should I wait until I replaced the motors with something where all specs are known for sure or can I already go with the estimated inductance?
Also, is there any simple way to measure the inductance? I guess not, but still want to ask.
-
@dc42 said in Does M906 set RMS or peak current?:
PS - the default chopper configuration register value is:
// Chopper control register defaults
// 0x901B4 as per datasheet example
// CHM bit not set, so uses spread cycle mode
const uint32_t defaultChopConfReg =
TMC_REG_CHOPCONF
| TMC_CHOPCONF_TBL(2) // blanking time 36 clocks which is about 2.4us typical (should maybe use 16 or 24 instead?)
| TMC_CHOPCONF_HDEC(0) // no hysteresis decrement
| TMC_CHOPCONF_HEND(3) // HEND = 0
| TMC_CHOPCONF_HSTRT(3) // HSTRT = 4
| TMC_CHOPCONF_TOFF(4); // TOFF = 9.2usDo the drivers use their internal clock at 15Mhz or is an external clock used as recommended in section 13 of the datasheet for TMC2660? And if the latter is the case what frequency does it have?