The CNC has always been a birds nest of wiring, despite best efforts. Loose connections and getting things plugged in the wrong way is a common problem which has lead to wasted time and broken equipment. As the Arduino/CNC shield in not in a case or fixed to anything it would often get dragged about by the Y axis. This is clearly bad and so time for a box. I had an old aluminium case that used to have a multimeter in it and fitted the four stepper motor connectors I bought previously. This meant drilling a 16mm hole for which I used a step drill bit, which are great for drilling larger holes of a specific diameter. The next job is to provide connectors for the end stops and add a couple of switches for emergency stop, pause and resume. Lack of an e-stop was a big problem when using the machine with RAMPS as hitting cancel in printerface would often take several seconds to kick in. Brown trouser time!

End stops

Picking up from last week I wanted to get the homing mechanism working. This means hooking up the limit switches on the X & Y axis of the machine. We currently do not have a limit switch for the Z axis. The limit switches are just little micro switches mounted to the carriages in such a way that they are depressed just before the carriage hits the end of the slide. You have two switches for each axis that tell the Arduino/GRBL to stop or that the axis is at home position.

The end stops are labeled Y-, Y+, X- and X+ and wire into the CNC shield. To test them I send the Y off on a 10 cm journey and pressed the Y+ limit switch. Y just kept on truckin’. Something is wrong, so I try the homing procedure in Universal Gcode sender and it says that feature is disabled. Clearly there are some GRBL settings that need to be applied. I didn’t have time to research the setting on Monday but have done since and found this Limit Switches page on the Shapeoko wiki. It says to enable hard limits and homing cycle:

 $21=1 (hard limits, bool) $22=1 (homing cycle, bool) 

So next week I shall try out these GRBL settings and hopefully we shall take it to the limit


We were eager to do some actual cutting and I wanted to see how far off we were on the GRBL settings. I created 20mm circle and set it to cut 10mm deep in 2mm increments. What came out was roughly the right diameter but only about 2-3mm deep. They X & Y aren’t too far off but the Z is way off. I think this is mostly because we have full microstepping enabled on Z when often it is disabled.

To get accurate cuts, GRBL needs to know how many step pluses to send to the motors to move a certain distance. This is set as steps per mm and is calculated from how many steps the motor takes to rotate 360, number of teeth in drive pulley and the belt pitch. You also have to factor in any microstepping settings. For the Z axis you need to know the lead screw TPI (turns per inch). Again the Shapeoko Wiki has details on the Grbl configuration which also includes a handy Grbl settings calculator
Using the calculator it produced these settings:

$0=39.37007874015748 $1=39.37007874015748 $2=1280 $3=30 $4=500 $5=500 $6=0.1 $7=0 $8=9.8 $9=0.05 

Next time I shall input these settings and see what improvements we can make to the cuts

Posted in Projects on Nov 18, 2015


Please sign in to comment!