TMC driver question, does it do any calculation?
-
Hello
just a short Q:a 0.9 motor got 400 steps per rev.
Using 1/16th Microstepping its turned into 6400 steps per revDoes the stepper driver itself do any calculations to offload the CPU on the motherboard, or does it only take the steps from the board and send it to the motors?
Thus a 6400 step/rev servo motor (full step) will have an equal load on the motherboard as a 0.9 motor with 1/16th microstepping?
best regards
John Henrik Bergene -
Yes and no. When setting 1/16th microstepping you will (usually) also enable interpolation on the driver. With this set the TMC driver will take the 1/16 step commands but will actually issue 256 microsteps per full step to the motor (usually giving smoother motion). So to answer your load question the load on the rrf mcu for the step commands will be the same. However depending upon what the server motor is doing the motion may or may not be the same as with a TMC driver (operating with interpolation) the steps seen by the motor will actually be 102400 steps per revolution.
The actual overall load on the mcu could be lower with the servo motor setup, as in theory RRF will no longer need to communicate with the TMC driver to check the status etc. However I'm not sure if with any of the duet boards it is easy/possible to turn off this communication.
-
@gloomyandy Yeah that is true
The quality produced is beyond excellent with steppers. And the speed can also be quite high. so no issue there
There are however 2 things I Want to solve (while keeping quality and high speed) and that is Feedback and noise.
Servo motors are closed loop, so should anything happend it will never get layer shifts.
They are also silent.
I havent seen a Closed loop stepper-addon that can go above 100mm/s atm.
-
@jbergene I guess another concern with something like a servo/close loop stepper is how faithfully they reproduce the timing of the step output from RRF. I'm thinking in particular here of things like input shaping which attempts to remove things like resonance issues in the printer system. I've no idea how well this will work when using "more intelligent" drivers between the step stream and the motor. Though of course the servo (or whatever) may well have capabilities to do something similar built in and separately tunable (which may or may not be seen as a good thing).
My understanding is that the Duet team are working on some sort of closed loop stepper, so maybe that will have the best of both worlds? It will certainly be interesting to see what they come up with. It would for instance probably make a lot of sense for it to take Can based commands rather than generating step pulses and then having the controller try to interpret what the step pulses actually mean.
-
@gloomyandy
Reason im asking is because im using Clearpath Servos on my Ballscrew printer today and they are great.
But they dont produce the same quality as my Duet controlled Corexy belt printer.
So I wanted to make another Corexy using the clearpath servos.If the Duet team manage to make a feedback system so the steppers doesnt lose steps, that will blow everything out of the water to be honest.
And using servos will no way be worth it. its like 750$ vs 80$ for 2 good steppers.I could fix the sound issue other ways like some proper stepper dampers too.
-
@jbergene said in TMC driver question, does it do any calculation?:
Servo motors are closed loop, so should anything happend it will never get layer shifts.
That is only true if the cause of any layer shift is solely due to missed steps. Even then, the cause of missed steps can be due to mechanical binding or interference which itself restricts motor movement.
Most layer shift issues are due to some mechanical defect. For example a loose pulley on the motor shaft, backlash in screw driven systems, the build surface moving on the build plate, etc. Closed loop motor control will not help in any of those scenarios because all it will do is ensure that the motor shaft has reached the demand position, and has no influence on the actual position of the print head.
The only way that closed loop control can be effective is if separate linear encoders are used to give feedback on the actual position of the print head/gantry, rather than the position of the motor shaft.
-
@deckingman @deckingman all of the layer shifts that I have experienced are because of crashes in Blob-buildups from PETG.
It's the only material that it happens on for me. And at the same time it's a great material, especially with carbon fiber as it's very strong, rigid etc for the price.
I have never experienced layer shift die to failed mechanical breaks (yet).
I know they will come eventually.
Having encoder on the shaft is a very welcome improvement over nothing
-
@jbergene said in TMC driver question, does it do any calculation?:
@deckingman @deckingman all of the layer shifts that I have experienced are because of crashes in Blob-buildups from PETG.
So what is that if not a mechanical issue? How do you think a closed loop stepper motor would improve print quality under those circumstances?
-
@jbergene have you considered tuning stall detection (assuming you aren't using a Maestro)? might not be perfect, but could get you part way there without spending anything
https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing#Section_Configuring_Stall_Detection -
@deckingman I dont think it will work, i know it already did. Thank you very much
-
@engikeneer No. Honestly I didnt know this existed.
Will definitively have to try this on my corexy printer thank you -
Even with closed loop on the X and Y, what about the extrusion? Every time I see closed loop brought up as a solution to skipped steps and being able to correct itself extrusion is never mentioned. This isn't like a CNC cutter where the tool head is just removing material and if it misses steps it can just go back to where it should have been and the spindle keeps spinning and keeps cutting where it should have. But in an extrusion system, presumably the extruder will continue to extrude as if the positional error never happened and you'll have the extruder go out of sync with XY position. If the firmware is monitoring feedback for positional errors, I suppose it could do something about the extruder position and keep it back in sync with where it should be, but you'd still have some extrusion artifacts from the overshoot.
The same problem exists for stall detection. If a stall is detected during a print you're given the option of either pausing the print and waiting for the user to evaluate the error before deciding to continue, or just saying YOLO and continuing automatically after rehoming and hope for the best.
-
@phaedrux That is true. I havent tried these stall detections yet but have to give it a try it seems.
on the PRusa i3, it works flawlessly and you can barely see it on the print.
My experience with skipped steps have come from nozzle crashing into blobs that have fallen of the nozzle during printing (generally PETG).