Jump to content
Ultimaker Community of 3D Printing Experts
anon4321

NEW PART DAY: SILENT STEPPER MOTORS

Recommended Posts

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.

 

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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!

 

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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 :D 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.

 

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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).

 

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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...

 

Share this post


Link to post
Share on other sites

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.

 

Share this post


Link to post
Share on other sites

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. :p

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Terms of Use Privacy Policy