$$ time, everybody. What are your GRBL settings?

$$ time, everybody.

What are your GRBL settings? And why did you set them that way?

Well each machine has it’s own specific settings based on drive system type. Ball screws vs. lead screws vs. belt drive vs. R $ P vs. etc… Then you have your cutting area, and it’s limitations. So lets start off with what each setting does, and what it means.

Settings and sample values Description
$0=10 Step pulse, microseconds
$1=25 Step idle delay, milliseconds
$2=0 Step port invert, mask
$3=0 Direction port invert, mask
$4=0 Step enable invert, boolean
$5=0 Limit pins invert, boolean
$6=0 Probe pin invert, boolean
$10=1 Status report, mask
$11=0.010 Junction deviation, mm
$12=0.002 Arc tolerance, mm
$13=0 Report inches, boolean
$20=0 Soft limits, boolean
$21=0 Hard limits, boolean
$22=1 Homing cycle, boolean
$23=0 Homing dir invert, mask
$24=25.000 Homing feed, mm/min
$25=500.000 Homing seek, mm/min
$26=250 Homing debounce, milliseconds
$27=1.000 Homing pull-off, mm
$30=1000. Max spindle speed, RPM
$31=0. Min spindle speed, RPM
$32=0 Laser mode, boolean
$100=250.000 X steps/mm
$101=250.000 Y steps/mm
$102=250.000 Z steps/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 Acceleration, mm/sec^2
$121=10.000 Y Acceleration, mm/sec^2
$122=10.000 Z Acceleration, mm/sec^2
$130=200.000 X Max travel, mm
$131=200.000 Y Max travel, mm
$132=200.000 Z Max travel, mm

We can take these values and tweak them for our rate of travel, motor speeds, acceleration, direction, and limits.

Setting $3= in combination with one of the following masks will invert the direction of 1, some or all motor directions

Setting Value Mask Invert X Invert Y Invert Z
0 00000000 N N N
1 00000001 Y N N
2 00000010 N Y N
3 00000011 Y Y N
4 00000100 N N Y
5 00000101 Y N Y
6 00000110 N Y Y
7 00000111 Y Y Y

So everyone’s settings are going to be different depending on the specific needs of the machines mechanical make up, and the electronics controlling it.

These are my settings because they work with my machine.

$0=10
$1=255
$2=0
$3=3
$4=0
$5=0
$6=0
$10=3
$11=0.010
$12=0.002
$13=1
$20=1
$21=0
$22=1
$23=0
$24=50.000
$25=1000.000
$26=250
$27=2.000
$30=12000
$31=4000
$32=0
$100=53.357
$101=53.357
$102=397.870
$110=7500.000
$111=7500.000
$112=7500.000
$120=100.000
$121=100.000
$122=100.000
$130=1390.000
$131=1390.000
$132=60.000

The first time I used $1=255, the noise made me fear for motor heat / driver heat, but I find I can’t run (without slip) without it. The steppers don’t seem warm, but I don’t knkow about the driver cards…

An interesting issue I ran into with bCNC: I had some Gcode stall on a G3 command (G3 X-5.0123Y-10.4567I1.0300J0.0006) because (I think) the J0.0006 was too small and threw a 33Error when looking at the arc tolerance value at $12=0.004.
I rewrote the line with J0.004, and it ran just fine.

Here’s mine at the moment…
$0=10
$1=255 (during ops, 250 during dry runs)
$2=0
$3=3
$=0
$5=0
$6=0
$10=3
$11=.010
$12=0.004
$13=1
$20=1
$21=0
$22=1
$23=0
$24=50
$25=300
$26=250
$27=3.000
$30=12000
$31=4000
$32=0
$100=53.375
$101=53.375
$102=396
$110=7500.000
$111=7500.000
$112=500.000
$120=100.000
$121=100.000
$122=10.000
$130=1290.000
$131=1262.000
$132=68
ok

I’m using hobby-fab plates that don’t let me move the motor up and down to adjust belt tension, which also means I can’t use double-stack belts. Finally, it was clear that my belts stretched a bit under tension, which wouldn’t happen with double-stack belts. I tensioned twice, the second time after the belts had stretched a little. I apparently didn’t get the tension exactly the same on X and Y because they are slightly different steps per mm.

To calibrate, I clamped a scrap of extrusion to the gantry for Y, and the spindle mounts for X, and indexed it to a measuring tape fixed to the spoilboard. Start at zero, move most of the way across the board, see how far off it is, move back to zero, adjust $100 or $101, then test whether I got it right by repeating.

I haven’t even hooked up limit switches or spindle control yet.

$$ < $0=10
$1=255
$2=0
$3=1
$4=0
$5=0
$6=0
$10=1
$11=0.010
$12=0.002
$13=0
$20=0
$21=0
$22=0
$23=2
$24=200.000
$25=2000.000
$26=250
$27=10.000
$30=1000
$31=0
$32=0
$100=53.270
$101=53.240
$102=400.000
$110=10000.000
$111=8000.000
$112=3000.000
$120=100.000
$121=100.000
$122=40.000
$130=860.000
$131=1480.000
$132=100.000
ok
1 Like

Just a hint: Since Grbl v1.0 $10=3 is not supported anymore! Only 0,1 or 2.

1 Like

I have upgraded to double (tooth-to-tooth) belt. This changes how much the top belt stretches because it is engaged with the bottom belt that is glued into the channel.

I measured Y over 1000mm using an engraving bit and a metal meterstick.

I measured X over 200mm using a 300mm caliper clamped to the gantry as a poor man’s DRO. I might look for a way to use the caliper to re-measure Y next.

I also replaced the 4-start lead screw that back-drives easily with 1-start lead screw that does not back drive, quadrupling steps/mm for Z. This has required a substantial reduction in max Z rate and acceleration.

I now have changed:

$100=53.375
$101=53.32
$102=1600
$112=500.000
$122=20.000

My current $$ dump is:

$$ < $0=10
$1=255
$2=0
$3=1
$4=0
$5=0
$6=0
$10=1
$11=0.010
$12=0.002
$13=0
$20=0
$21=0
$22=1
$23=3
$24=200.000
$25=2000.000
$26=250
$27=10.000
$30=1000
$31=0
$32=0
$100=53.375
$101=53.320
$102=1600.000
$110=10000.000
$111=8000.000
$112=500.000
$120=100.000
$121=100.000
$122=20.000
$130=780.000
$131=1280.000
$132=100.000

I also hooked up the limit switches and enabled homing to X0, Y0.

3 Likes