Max / optimal step rate for CoreXY

  • I’m sure this question has been asked to death but I can’t find a clear answer. My understanding is the maximum step rate of the duet is 360kHz but that is only for a single motor at a time.

    I’m running a CoreXY setup with 4 motors running continuously: A, B, Z, and E. My printer has a belt loop between the motor and the actual CoreXY belt paths so I can adjust the two pulleys on that loop to adjust a gearing ratio between the motor and CoreXY system and I’m looking to tune that.

    What would be the maximum step rate the duet can output in this setup? Is it as simple as dividing max step rate (360kHz) by 4?

    And what would be the optimal step rate? I don’t want to be running on the limit all the time so is there a value (I’ve heard 50kHz thrown around) that would be an optimal step rate for each motor?

    Thanks for any help!

  • administrators

    @edchamberlain its approximately 120Khz. see:
    for example

    Assuming you are using the internal drivers I would seperate the requirements for step rate into 3 groups:

    For XY use 16 microsteps with interpolation that way you will be able to achieve a high step rate with the advantages of quiet running from the interpolation to 256 microsteps.

    For Z most setups work great with 16ms with interpolation however if you have an unusual Z setup this should work well here as well.

    For E this depends on what extruder, especially gearing you are using. Using a "standard" geared extruder (like Titan) or even a highly geared cable drive extruder I have no issues with 16ms with interpolation. If you are using a mixing hotend or something different you may need to go to something different.

    A generalisation again but most people hit the volumetric extrusion limit imposed by their hotend before the axis step limits.

  • To add some maths to what @T3P3Tony said above.

    Assuming 1.8 degree motors and 20 tooth pulleys we have:

    120,000 steps per second limit.

    Full steps per rev @1.8 deg per step =200.
    So using 16X micro-stepping we have (200x16) = 3200 micro steps per rev.
    So dividing the pulse limit by the steps per rev we get (120,000/3200) = 37.5 revs/second
    A 20 tooth pulley using 2mm pitch belts gives us (20x2) = 40mm of belt movement.
    So maximum belt speed becomes (40 x 37.5) = 1500 mm/second.
    But belt travel does not correspond to axis travel on a coreXY - I'm a little rusty here but I believe it's a factor of 1.4(ish) so max axis speed would be (1500/1,4) = 1,071 mm/sec.

    So somewhere around 1,000 mm/sec axis speed but anything which increases the steps per mm will reduce this. e.g. 0.9 degree motors will halve it and 16 tooth pulleys instead of 20 will reduce it by about 20%. Worse case 0.9 degree motors and 16 tooth pulleys comes out at about 600/1.4 = 428mm/sec axis speed at 16x micro-stepping.

    Edit. Going back to the OP and the question of gearing:
    If it helps I'm throwing around about 1.5Kgs on each of my XY gantries without any gearing. I use 1,000mm/s^2 accelerations but can go higher and my default non-print move speed is 350mm/sec. So unless the motors are very small and/or the moving mass is more than 1.5Kgs, it is unlikely that gearing would be necessary or advantageous.


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