6040 cnc 4th axis setup


Hey guys I am trying to setup my 4th axis on my 6040 cnc. I try to set up but having a hard time getting the the chuck to make the one revolution in the 360deg. Please see photo below.

Gear ratio 50:1

Driver set to 1600 step per revolution

1.8 deg per step (200 deg revolution)



Please let me know if I am going in the right direction with my math.


  • 20191120_200508.jpg
    1.5 MB · Views: 17
  • 20191120_200526.jpg
    2.3 MB · Views: 15
  • 20191120_200623.jpg
    2.4 MB · Views: 16
  • 20191120_200654.jpg
    2 MB · Views: 13
  • 20191120_200701.jpg
    1.7 MB · Views: 18


Hi @kbcnc

so 1600 pulses X 50 = 80,000 pulses for 360degree ( 1 ) revolution of the chuck.

Motor degrees per revolution would be 360 divided by 50 = 7.2 degrees

im thinking just changing the motor degrees per rev to 7.2 makes sense to me, then it knows it can do 7.2 degrees with 1600 pulses. Might be an idea to look at the soft limits and maybe add a few more degrees plus and minus so it can do a full revolution without soft limiting out.



MASSO Support
Staff member
Hi @kbcnc

Keep things as simple as possible. It is just maths but if you try and work out the actual degrees the chuck will move per motor revolution you will probably end up with some awful recurring number which will be impossible to use accurately. The method below will always give you whole numbers.

First enter 360 degrees into the degrees per revolution.

Steps x ratio =pulses per revolution

Now the maths is easy 1600 x 50= 80000 pulses per revolution

Lastly crank your maximum feed rate up to something decent like 100000 degrees per minute which is less than 280rpm you may need to fiddle around with this but keep the maximum pulse rate well under 100Khz and closer to 50khz to 65khz. You can as low as you want but going too high will overwhelm Masso computational ability causing it to stop. Also that high a resolutions you are moving about a millionth of a degree per step which is ridiculous to say the least. You could easily reduce the microstepping on your drives an still have decent resolution. Your current resolution is 0.0045 degrees per step.

I have attached my settings below which may help.




  • A-axis.bmp
    769.1 KB · Views: 18


Ok, I try 7.2 degree looks like it's working.

I home the machine and MDI command G00 A360 ( turn foward one completely revolution)

G00 A-360 (reverse but turn two complete revolution).

Also is counterclockwise moving in the positive direction for the chuck.

Below I have the A -Axis screen and video showing backwards and foward movement. I also think I can increase the speed too.



  • 20191121_063250.jpg
    2.8 MB · Views: 15


the two turns back to G00 A-360 is correct in G90 absolute mode , if you want G00 A-360 to return to zero you can use G91 incremental mode or just stay in G90 absolute mode and program G00 A0


Thank you.

So how about feedrate and acceleration.

I can increase the feedrate and keep it under 50khz as Peter said. Acceleration is the stop and start.


Yes you can raise the feederate as Peter suggested. If it doesn't go fast enough at the desired hertz then you can change the driver to 800 ppr and change the setting from 1600 to 800 in the motor set up page. That way you will be able to increase speed even more if needed. The accel and decel is more of an expirimental thing I like to set it so that it is quite abrupt and then adjust it so that it doesn't clunk when it stops. That sort of gives it a good response without being too hard on it mechanically. By the way with your old setting was the chuck turning 90 degrees when asked to go 360?



Hey I can't remember because I was changing so much setting.

I cannot go faster that 400.000 feedrate. Any faster and the motor stalls.

See setting below.


  • 20191121_181934.jpg
    2.2 MB · Views: 11


I think it might be using too many pulses here's why,

in your video of the rotary turning 360 deg it takes approximately 10 seconds so you are doing 6 rev/min, and that was at the 100 ipm setting

6 x50 = 300. Stepper motor revolutions per min

300 X 1600 pulses per rev = 480,000 pulses per min

now you are going 400 ipm which is 4 times faster so

4 X 480,000 = 1,920,000 pulses per min. "Approximately"

im not sure what the setting Means for the maximum feed rate as its in inches per min and you are doing degrees. I don't think it is telling the hertz you are using reliably



I had to disable softlimits, because A Axis is give a A axis softlimit error. Also I changed step from 1600 to 800. I was able to machine a part using the 4th axis.


  • 20191123_134356.jpg
    2 MB · Views: 12
  • 20191123_134347.jpg
    2 MB · Views: 11
  • 20191123_132719.jpg
    1.6 MB · Views: 12


Staff member
Quote from kbcnc on November 23, 2019, 6:49 pm

I had to disable softlimits, because A Axis is give a A axis softlimit error.

If you increase the Min & Max travel values you won't hit soft limits on the A axis.

Are there any hard stops on the A axis? If not then you could set the values to any number revolutions in both directions. MASSO only throws a soft limit error if it calculates that the move will take it past the Max / Min settings. So if you throw an extra zero into your travel values you can do 10 revolutions before a soft limit error is thrown. Then you can reinstate soft limits because the enable/disable is global.




Go it working now, I put 3600 in the A axis now.

Thank guys


  • 20191124_140026.jpg
    1.6 MB · Views: 15
  • 20191124_124136.jpg
    1.7 MB · Views: 16