# Acceleration with Marlin

I expected that the movement of an axis would start slowly, become faster and then run at a constant speed when reaching the maximum speed, then slow down slowly and arrive at the target point at the lowest speed.

At my DIY machine, however, I achieve a constant, very low speed at the beginning, then jumpy change to the maximum speed, finally a also jumpy change to the low speed, which also happens at the beginning.

I've been working on the Marlin settings for days, but I haven't had the slightest success.

Why don't I get any rising and falling ramps, why the sudden change?

These are my current Marlin settings:

G21    ; Units in mm
M149 C ; Units in Celsius
Filament settings: Disabled
M200 D1.75
M200 T1 D1.75
M200 D0

Steps per unit:
M92 X800.00 Y640.00 Z800.00 E500.00

Maximum feedrates (units/s):
M203 X200.00 Y200.00 Z12.00 E25.00

Maximum Acceleration (units/s2):
M201 X5000 Y5000 Z1000 E10000

Acceleration (units/s2):
P<print_accel> R<retract_accel> T<travel_accel>
M204 P3000.00 R3000.00 T3000.00

Advanced: S<min_feedrate> T<min_travel_feedrate> B<min_segment_time_ms> X<max_xy_jerk> Z<max_z_jerk> E<max_e_jerk>
M205 S0.00 T1000.00 B20000 X10.00 Y10.00 Z1.00 E5.00


What's the secret of a beautiful ramp?

Your steps/mm settings are very high. Assuming you are running an ATMEGA based controller, like RAMPS, you will only be able to move at very slow feed rates (<20mm/s). There are also many hardware factors that influence your maximum speed at a given steps/mm (which is typically referred to a your maximum step rate):

• Supplied voltage. Using too high/low voltage can cause poor stepper performance or create unexpected faults at high/low step rates.
• Motor specifications. Stepper motors come in a dizzying number of models with varying specifications. This is because each one is tailored to a specific use case.
• Stepper Driver. There are a bunch of driver designs and manufacturers out there and none of them should be considered equal. It also matters how you setup the driver in terms of current/voltage limits, microstepping, decay modes, heat syncing, etc.
• Wiring. At high step rates the inductance of the wires between your controller and motors start to matter more, as does interference to/from other electrical devices.

If you aren't sure how to set/select/tune the things above it's best to just mimic what is done on common printers like the Prusa i3, which have robust designs.

In more direct regard to your Marlin settings, your acceleration and feedrate values are very high for an untested printer. It's best to start with conservative values (Accel ~500mm/s^2, Feedrate <10mm/s) and work your way up 10% at a time until you start having issues, then back off ~20% from there.

• You're absolutely right. Thanks for getting me on the right track. I use the ATMEGA with Toshiba drivers. The limitation seems to be in the ATMEGA. With 16 microsteps, it's overstrained. Even 8 micro steps still cause problems. I have now set the X and Y axis to 4 micro-steps and everything seems to be working fine. But the machine has become much louder. I'll have to live with that. But the movement of the two axes has become faster, even though I have halved the the maximum feedrates. I have a DUE board that I could use. But I only find an abandoned Marlin implementation for the DUE. Dec 2 '17 at 3:58
• You could look at the RepRapFirmware in Github. It is a pretty good printer firmware, usable with several different printer mechanisms, and it is set up for the DUE board. I am using it on a home-brew delta-style machine.
– cmm
Dec 2 '17 at 21:13