Dim3nsioneer 558
I think to remember Daid having tested a driver like this one and having mentioned the far future of Ultimaker...
I think to remember Daid having tested a driver like this one and having mentioned the far future of Ultimaker...
I think to remember Daid having tested a driver like this one and having mentioned the far future of Ultimaker...
Yes, the TMC260 (I think) is pretty silent, due to it's 256 microstepping. Which puts the frequencies it generates out of hearing range.
If you watch the videos, there are two unique things, one of which is useless for 3D printers (stealthchop) . But the other (spreadCycle) and the 16->256 microstepping interpolation quiets the movement (but not as well as the other mode) while providing good torque with less motor heating.
See this video:
The super quiet feature is noted as useless for 3d printers due to the lack of holding power.
64 micro stepping is incredibly quiet. I've heard it in person. It's not silent but it's... hmm... maybe 100X quieter? It's pretty impressive. What's that, like 40db quieter I guess.
This is about stepper motor drivers, right, not stepper motors? Either I am confusing something or the Hackaday article uses the two terms somewhat loosely. I do understand that different stepper drivers mean more quiet motors.
Yes, it's about drivers not the motors. The title would be better as "Silencing stepper motors". Again, the primary marketecture that almost completely silences the steppers isn't useful to 3D printing due to the lost of torque. However, the better current management of the spreadCycle feature seems to help quiet the motors while allowing them to run cooler too.
There's two technologies to make the motors quieter. This new technology I don't understand but it makes them weaker also. The older technology of using 32 or 64 microsteps instead of the 16 we use today on UM does not make the motor weaker. It might make a single 1/64 step weaker than a 1/16 step but if you do 4 micro steps (4/64) it's just as strong and moves the same distance as a 1/16 step. But more quietly.
Basically there are 2 sine waves going through the two coils. The substep is the phase difference between the two sine waves.
The problem with just swapping pololu drivers is that the top speed for the Ultimaker with the arduino is around 300mm/sec. With 1/64 microstepping you now have a top speed of 75mm/sec. So really you need a faster board. I've seen some of the new faster technologies that use much faster computers in the printer. They are amazingly quiet. I've seen 2 technologies - one was being worked on a while back by Eric Zalm. I don't know what's up with that. The other is by TinyG. You can buy his boards and put one inside an ultimaker. Very quiet!
Note: ms=microstep not millisecond.
GR5, these are 16 microstep drivers but somehow they interpolate to ***256*** microsteps.... Maybe this means when going from one ms to the other, instead of immedately switching the current pattern to move to the next ms, it makes 16 incremental changes instead.
So from the arduino standpoint, the step rate is still the same as 16 ms but the ms to ms transition is smoother.
https://github.com/watterott/SilentStepStick/blob/master/pcb/SilentStepStick_v10.pdf?raw=true
The function that fails for 3d printers is the "stealhchop" mode which would be virtually silent operating apparently in a constant voltage mode much like a brushless motor controller.
However, some noise reduction can be had using the 16->256 interpolation and the "spreadCycle" modes.
Even 75 mm/s seems acceptable, as 50 mm/s is pretty much top speed for me. It is getting to the point where I wonder what parts of the Ultimaker will remain original after all the upgrades though Pretty much every part is getting updated or replaced.
I never really considered noise a huge issue, but reducing it while improving other factors is a nice bonus.
instead of immedately switching the current pattern to move to the next ms, it makes 16 incremental changes instead.
Yes. Very cool technology. It has to look at the previous two steps, measure the time between them and then step 16X faster hoping the next step comes soon after. If the next step comes sooner it advances the schedule I guess. Kind of reminds me of a phase lock loop except on a wave that speeds up and slows down often and dramatically.
Yes. Very cool technology. It has to look at the previous two steps, measure the time between them and then step 16X faster hoping the next step comes soon after. If the next step comes sooner it advances the schedule I guess. Kind of reminds me of a phase lock loop except on a wave that speeds up and slows down often and dramatically.
It could also always lag by a step. Then it will know what the spacing will be. Perhaps it would also have a time out, in case the next step wasn't going to come. This seems perhaps problematic, but each step is so small, the user might never notice if one motor stepped slightly out of order.
Alternatively, they could just know that going through the pattern in a certain length of time would have the desired effect of reducing noise, and just program it to always do that.
I have been using a Trinamic motor with integrated driver for a science project, and as you say it gets extremely smooth and silent at 256 microsteps.
However, another option that I have been tempted to try is five phase stepper motors: http://www.orientalmotor.com/technology/articles/2phase-v-5phase.html
Those are more rare and more expensive and I am not sure if there are compatible driver boards for the arduino.
Five phase steppers are incredibly smooth and silent though and should still potentially have both better performance and higher resolution.
We use these a lot on scientific instruments, so I have certainly seen what they can do.
I imagine the arduino is just sending out a pulse for each step and another line for direction. Seems like there ought to be a controller for any type of stepper motor that would accept that.
I have been tempted to try is five phase stepper motors
I am just guessing but I would think they are much heavier because I assume they need many more windings for the same amount of power. Not a huge deal for a desktop printer but would really suck for a stepper mounted on the print head (e.g. makerbot).
I've taken a look at the TMC260 stepper driver as well (prototype is coming some time in the distant future...). It's a huge step forwards compared to the allegro / DRV8825 drivers. But in order to get the most out of these drivers, there are lots of changes necessary in the firmware and hardware architecture.
For example, the TMC260 needs a serial communication interface to the MCU so that the MCU can program the driver. That's why I didn't bother making a "TMC260 for Marlin boards". The TMC2100 may be different in that aspect, but the TMC260 is the most suitable driver currently available from Trinamic.
TMC2100 is more like the polulo driver in that they are still driven with dir/step pins. The MS1-MS3 functionality isn't the same neither is the fact the TMC2100 has diag out pins that aren't compatible with the typical polulo socket pinout.
However, you can apparently make them work in a polulo type socket but NOT soldering certain header pins on.
http://www.trinamic.com/products/integrated-circuits/stepper-power-driver
Click "Download the TRINAMIC Product Guide (PDF)"
All the important information about their drivers is there. The TMC2100 is a simplified product - much like the DRV8825 and Allegro drivers (but with more sophisticated features).
The TMC260 is a more advanced part that has more parameters you can set, for example the slope control. It also has the StallGuard2 function which is one of the most important advantages over the DRV8825.
What's also nice is that you can change the microstep setting at any time you like. You can do slow, super-precise movement using actual 1/256 microstep resolution, then speed up going for half-stepping or even full stepping mode. But that means you need to adapt the controller side as well...
What's also nice is that you can change the microstep setting at any time you like.
Very cool. An arduino might actually be able to handle that (there's still a few bytes left in code space). But really we should move to more powerful controllers - it's way over due.
Maybe we could move to controllers that support curved paths. Then Daid can have all sorts of fun trying to figure out how to take advantage of that. Of course we would also probably want to move away from STL files at the same time.
I feel like we are currently in a stalemate, where we don't need faster controllers because the current software doesn't need it, and people aren't writing code to handle more advanced kinematics because the current controllers can't handle it. It doesn't help that a lot of printers' output quality seems more limited by relatively poor hardware design than what the controller can do.
50 euros/60 dollar for a full set and a spare seems reasonable enough. What would be needed to make this work? I see some soldering work is needed. Anything else? Do you need a firmware upgrade or adapt the electronics?
Recommended Posts
Top Posters In This Topic
33
31
19
8
Popular Days
Jan 30
13
Jan 26
11
Jan 25
7
Feb 7
7
Top Posters In This Topic
aviphysics 33 posts
anon4321 31 posts
jonnybischof 19 posts
zumfab 8 posts
Popular Days
Jan 30 2015
13 posts
Jan 26 2015
11 posts
Jan 25 2015
7 posts
Feb 7 2015
7 posts
IRobertI 521
But not really for 3d printers as I understood it. The silent mode of the driver has significantly less torque and can't keep up with the fast movements of a 3d printer.
Link to post
Share on other sites