MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.23k stars 19.22k forks source link

How to Disable Microstepping?/Motors make loud noise upon disabling #6378

Closed kcheeeung closed 7 years ago

kcheeeung commented 7 years ago

Hey guys, I have a problem with the firmware that you may be able to help me solve. On the Azteeg X3 Pro board, I have 1/16 stepping set with the settings found on my Git. https://github.com/kcheeeung/MarlinRC8git

When I disable all microstepping by removing all the jumpers SD6128 drivers (for 1 full step), the motors make a really loud noise. I have Nema 17 17HS16 2004S1 motors. Is there something in the firmware that I must change in order to have no microstepping on the extruders? I tried setting the jumpers on 1/2 steps and it also didn't work.

http://www.omc-stepperonline.com/3d-printer-nema-17-stepper-motor-2a-45ncm64ozin-17hs162004s-p-16.html

Roxy-3D commented 7 years ago

You probably need to change the number of steps per unit of movement. But really... Micro-steps are a good thing.

kcheeeung commented 7 years ago

@Roxy-3D For my purpose, I do not want microstepping. This is to increase the overall max torque. We are using to an extrusion system that requires high torque.

Roxy-3D commented 7 years ago

OK! Thank you for explaining! That makes sense!

Back to your problem... There is not much in the firmware concerning micro-stepping. If your electronics has the stepper driver chips connected up to the AVR chip, it can control the micro-stepping. But that is very unusual. Usually there are jumpers on the controller board that control the number of micro steps. Looking at: http://files.panucatt.com/datasheets/x3pro_wiring.pdf It would seem like your board is controlled with jumpers.

So if you jumper it not to have any micro-steps, you probably need to divide the number of steps per unit of travel by 16 in your Configuration.h file. But free advice is worth what you pay for it!

fiveangle commented 7 years ago

When I disable all microstepping by removing all the jumpers SD6128 drivers (for 1 full step), the motors make a really loud noise.

Correct ! :)

Bob-the-Kuhn commented 7 years ago

With microstepping you trade off noise vs. power.

If you want low noise and power then you'll need to go to motors that have more power than you need and use microstepping.

What voltage are you using on your steppers? If you're using 12V then I'd seriously look at going to 24V. Your steppers and the controller can handle 24V.

I didn't find anything saying your 6128 drivers were anything special when it came to motor noise other than it had a true 128 microstep mode. What little I could find on the decay mode was that the mixed mode seems to be preferred and the fast mode is noisiest.

kcheeeung commented 7 years ago

Hey guys. Thanks for the replies. I figured out that reducing the acceleration helps a bit.

Also how would I calculate the steps/mm for a planetary gear box? I am confused about the proper way to do this. I have a 14:1 Nema 17 planetary gearbox.

https://www.amazon.com/gp/product/B00QA8XUGC/ref=ox_sc_act_title_1?ie=UTF8&psc=1&smid=AWQBCGWISS7BL

Bob-the-Kuhn commented 7 years ago

The best/easiest way is to command a movement, measure the actual movement and use that ratio to adjust your steps per unit. Start out with a small movement (one you know is safe) & repeat until you can accurately move 90% of the travel limit.

thinkyhead commented 7 years ago

Also how would I calculate the steps/mm for a planetary gear box?

@kcheeeung Let the compiler do the work for you.

// Your extruder parts:
#define NEMA17_FULL_STEPS 200.0   // 1.8 degrees per whole step
#define NEMA17_MICROSTEPS 1.0     // Usually 16.0
#define GEAR_REDUCTION 14.0       // Planetary Gearbox
#define DRIVE_DIAMETER 12.0       // The wheel that pushes the filament

// Don't edit these:
#define DRIVE_CIRC         (M_PI * DRIVE_DIAMETER)
#define E_STEPS            (NEMA17_FULL_STEPS * NEMA17_MICROSTEPS * GEAR_REDUCTION / DRIVE_CIRC)

// Use for your E steps:
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, E_STEPS }
kcheeeung commented 7 years ago

Thanks so much everyone! I figured it out :)

github-actions[bot] commented 2 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.