add 4th / 5th axis

edited March 2017 in Questions & Answers

is there a simple way to add more axis ?

For CNC/ Laser it would be nice to have some rotating axis.

can you please guide me the way to go?



  • It's not difficult in the way of complicated. It is just that the arrays are used in many places. On teh other hand I already got that request a few times for different reasons. Currently we have 4 axis (cartesian) or 5 axis (nonlinear) arrays for X,Y, Z, E and VrutalAxis(nonlinear). So adding motors A, B, C is essentially increasing the array sizes, initalizing them and fill them. In Bresenham it is straight forward and if you check how xyz is handled. 

    Biggest question is how to handle jerks. I guess you would take them as independent motors for jerk.

    So what I would do is compute an array length that is used in all loops. This gets computed from
    #define HAS_A_AXIS 1
    #define HAS_B_AXIS 1
    #define HAS_C_AXIS 1
    and from this compute
    A_AXIS_IDX / B_AXIS_IDX for the conditionals where they are used.
    That way it would be flexible to use up to 3 more axis and make users happy.

    Oh forgot endstops. Guess that would also require endstop handling.

    So you see not difficult, just many changes here and there.
  • seems to get a lot of typing :-)

    so i´ll give it a try

  • Yes it is and at a lot of places. But if it works I would merge it to main version for those needing it.
  • Hi, RAyWB, have you done any progress in the 4th/5th axis case? I am having the same necessity for my 4 axis cnc. I will use E0 for the 4th axis, but the homing is a great question..
  • Well I´m "playing" with the V2 now , but i didn´t continue with the 4th/5th axis as I´m busy on other projects.

Sign In or Register to comment.