Speed limit and motor jam

  • Hey,

    I'm running a test that involves fast speed movement of the bed (Y).
    its a modified cr10 with the duet 2 wifi.
    I only need a fast Y axis move without extruding anything.

    My desired speed is 25,000 min/s (500mm/s) - which is a lot I know.

    I'm able to reach around 20,000 min/s with this current config:

    M350 X32 Y32 Z16:16 I1 ; Configure microstepping with interpolation
    M350 E16 I0 ;microstepping without interpolation
    M92 X157.63 Y158.96 Z400:400 E315:315:115 ; Set steps per mm
    M566 X1200 Y1200 Z24:24 E800 ; Set maximum instantaneous speed changes (mm/min)
    M203 X30000 Y30000 Z600:600 E8000 ; Set maximum speeds (mm/min)
    M201 X500 Y500 Z100:100 E6000 ; Set accelerations (mm/s^2)
    M906 X800 Y800 Z800:800 E800:800:2000 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    the max speed and acc. are suited for the cr10.

    If I go faster than 20,000 min/s the motor jams. it starts to accelerate then jams up and stops...

    Is it possible to go higher with a firmware setting or am I limited due the original step motors that the printer came with ?


  • @cj-bravo I'm having a job working out what speed you are trying to achieve. "min/s" doesn't make sense because it's minutes per second. Assuming you mean mm/minute then we we have 25,000 (500mm/sec) which doesn't make sense either because 25,000 mm/minute is 416.7 mm/sec.

    But regardless, the limit as far as the firmware and board are concerned is the maximum step pulse frequency. I'm not exactly sure what this is right now but it used to be 200kHz. I think it may have been lowered so lets take a worse case scenario of 120 kHz. That's 120,000 pulse per second. If we round up you steps per mm from 155.96 to 160 to keep the maths simple then we can say that the maximum speed is (120,000/160) = 750 mm/sec or 45,000 mm/minute.

    From that it's reasonable to deduce that the the limitation isn't due to the board or firmware but must be the motors. If they have high inductance, then the torque will drop more as you increase speed. So better low inductance motors and/or running at higher current would be the thing to do I'd suggest.

  • yeah my bad- I mixed the numbers.

    like you wrote, I'm aiming to 25,000 mm/min = 416.7 mm/sec.

    even prefer faster.

    Duet can reach 750 mm/sec.

    So if I'm into changing the stock motors, my best bet would be to increase the current ?

    another thing I noticed is that the motor jams/stalls only in one direction - the Y goes fast forwards but stalls when trying to go backwards. can see anything mechanically wrong, is it motor-related?

    what are your thoughts about the jerk/acceleration settings ?

  • Check out the EMF calculator with your motor specs and see what it thinks your max speed could be


    And you could use this for finding your potential max acceleration, because to get up to speed fast enough to matter you will need high acceleration.


  • @cj-bravo
    If motion is smooth in one direction but not smooth when the direction of travel is reversed, then that would indicate a mechanical problem.

    Regarding speed and acceleration, it takes very little effort to keep a mass moving at a constant velocity (in fact, no effort at all in space with zero gravity) but it takes a great deal of effort to accelerate that mass. This is where you need the motor torque. The speed you reach will depend on the acceleration you use and the distance over which you can accelerate it. The longer the travel distance, the higher the speed you will be able to attain before you have to start slowing down again.

    You can calculate the maximum speed by using the formula velocity = sqrt(2*acceleration/Y axis length/2). So with your settings, assuming your Y axis is 200mm, the the maximum speed you can attain before you have to decelerate to a standstill will be 316 mm/sec or about 19,000 mm/minute (which is close to what you say you can get). If your Y axis was 400mm so you accelerate for 200mm then decelerate for 200mm, then the maximum speed you would reach would 447 mm/sec or 26,000 mm/minute. Or sticking with 200mm axis length (so 100mm accelerating and 100mm decelerating), if you double the acceleration rate from 500 to 1,000 mm/sec^2 then the maximum speed you can would also be 447 mm/sec^2.

    Note that unless you have a very large build area and do very long moves, when you try to move at high speed, most of the the time the thing that you are moving will be either accelerating or decelerating.

  • Also worth noting is that you have set your micro stepping to 32 for X and Y so these will not get interpolated and also doubles the amount of steps pulses you need.

    Also are you sure you want to sling the bed around at those sort of speeds normaly the quicker printers are fixed bed ones (Delta or CoreXY).

  • The CR10 is a 12V system. If you want higher speed you should think about converting to 24V.
    The CR10 Stepper Motors are 1.5A. consider running your steppers at 70%-80% of the rated current.

  • @deckingman

    it's a cr10- s5 - bed is 500mm.

    I'm just experimenting speed levels withouth extruding , basically just using the printers setup for unrelated test - unrelated o 3dprinting.

  • @dougal1957

    you suggest to un-intrerpolate or just reduce to 16 microsteps ?

  • @cj-bravo You should probably use x16 with interpolation.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.