Independent idle current settings for each toolboard?
-
Hi devs,
I asked for this feature before, but now I have a real weird mix of NEMA23 and small NEMA17 motors in mind.
I'd really like to set holding current for each motor, but having different idle current setting per toolboard would work too.
I'm sure not the only one who mixes HC and LC driver boards?Independent idle current would also be a nice feature for @gloomyandy 's team, maybe they could implement it and start a pull-request for the mainstream?
Maybe have different setting for SPI vs. UART drivers? -
@o_lampe Do you have a link to any previous discussion of this feature?
-
This post is deleted! -
@gloomyandy
Not sure if it was an official FW-request or just a short discussion with David. But at that time it wasn't possible.@Arnold_R_Clark
I'm lagging a bit behind, still running RRF3.3. If it's possible to set idle current per axis now, I'm more than happy with it!
Have to look into RRF3.4 I guess? -
Quoted from the M906 wiki description, so my request is still valid.
Note that the idle current is applied globally for all motors and cannot be set per axis.
-
@o_lampe It would probably help if you define what you mean by "holding current" and a description of why the existing mechanisms do not meet your requirements? Do you need to be able to set different values per axis or per motor driver (these may not always be the same)?
Looking at the existing gcode commands it seems that M906 sets the "idle current", my understanding is that "idle current" is a value that "the motor currents should be reduced to when the printer becomes idle" and that (according to the text for M917) "The idle current needs only to be high enough to hold the motor position well enough so that when the current is restored to normal, the position is the same as it was before the current was reduced to idle". My take on that is that it is only used when all motion (on all axes) has stopped.
M917 sets the "current reduction to be applied when the motor is at standstill or moving slowly".. In this case the current " must be high enough to produce accurate motion at low speeds". My take is that this can be used when a particular motor is moving slowly or has stopped, but other motors may still be active.
So we already have two different cases. M917 can be set per axis, but M906 applies to all motors. However in both cases the value is a percentage of the actual motor current set for that motor. So if the actual current setting for the motors is different (perhaps larger for the bigger motors) then the corresponding idle current will also be different for both motors.
-
@gloomyandy
This M917 command already exists so long, but I wasn't aware of it. Shame on me.
Thanks for pointing it out -
-
-
@o_lampe the ability to set different idle currents per axis and extruder is on the firmware wishlist too. It is likely to be implemented in RRF 3.5.
-
Maybe I should instead request adding a note to the M906 wiki, pointing to the related M917 topic?
-
@dc42 That's cool, since my request was about idle extruder motors and their parking axis' motors. IDEXYUV, like my hashprinter
-
This post is deleted!