I have this Arduino UNO CNC Shield A4988x2 set up with old dvd drive frames & motors which seems to be quite popular.
Ive managed to make the cnc move using x & y buttons on universal g-code sender app, which is to say when I click on X+ one of the motors moves in one direction and X- moves in opposite direction. Likewise with Y, so I know that much works.
I downloaded a circle.nc program which has this code:
G17 G20 G90 G94 G54 G0 Z0.25 X-0.5 Y0. Z0.1 G01 Z0. F5. G02 X0. Y0.5 I0.5 J0. F2.5 X0.5 Y0. I0. J-0.5 X0. Y-0.5 I-0.5 J0. X-0.5 Y0. I0. J0.5 G01 Z0.1 F5. G00 X0. Y0. Z0.25
My config for the cnc & gcode sender is this. Originally it had 200 for x,y & z max travel at the bottom, and it did the same thing it does now, so I changed it to 10 each thinking that would make the motors not want to overshoot their max, but that didnt work:
$0 = 10 (step pulse, usec) $1 = 25 (step idle delay, msec) $2 = 0 (step port invert mask:00000000) $3 = 0 (dir port invert mask:00000000) $4 = 0 (step enable invert, bool) $5 = 0 (limit pins invert, bool) $6 = 0 (probe pin invert, bool) $10 = 3 (status report mask:00000011) $11 = 0.010 (junction deviation, mm) $12 = 0.002 (arc tolerance, mm) $13 = 0 (report inches, bool) $20 = 0 (soft limits, bool) $21 = 0 (hard limits, bool) $22 = 0 (homing cycle, bool) $23 = 0 (homing dir invert mask:00000000) $24 = 25.000 (homing feed, mm/min) $25 = 500.000 (homing seek, mm/min) $26 = 250 (homing debounce, msec) $27 = 1.000 (homing pull-off, mm) $100 = 250.000 (x, step/mm) $101 = 250.000 (y, step/mm) $102 = 250.000 (z, step/mm) $110 = 500.000 (x max rate, mm/min) $111 = 500.000 (y max rate, mm/min) $112 = 500.000 (z max rate, mm/min) $120 = 10.000 (x accel, mm/sec^2) $121 = 10.000 (y accel, mm/sec^2) $122 = 10.000 (z accel, mm/sec^2) $130 = 20.000 (x max travel, mm) $131 = 20.000 (y max travel, mm) $132 = 20.000 (z max travel, mm)
Here is a video of what it does. The issue is that it seems to want to overshoot its max and mins as evidenced by the clicking once it cant go any further in a particular direction: