One of the wonderful items that came with the X-Controller was the Z-probe.
Tonight, I tested it. It worked fine --- and there were only two surprises.
The first was that the default units for the probing seem to be English units.
The second is that the probe's mount for the carriage is not thick enough to make it all the way through my 1/4 aluminum plates. I've updated my model so that the next time I mill a plate there will be a larger, 13mm 6.25mm deep hole for it. For now I can get along without it, because the plug is snug enough for zeroing the Z-axis.
Thursday, February 9, 2017
Tuesday, February 7, 2017
Latest GRBL settings
These are the GRBL settings The x steps are different than the Y because the X has a GT-3 belt, and a different microstep, than the Y axis. The Y axis has GT-2 belts.
X microstepping is set at 1/4 (on, off, off), Y microstepping is set at 1/8 (on, off, on) and Z microstepping is set at 1/2 (off, on, off).
$0 = 10 (step pulse, usec)
$1 = 255 (step idle delay, msec)
$2 = 0 (step port invert mask:00000000)
$3 = 6 (dir port invert mask:00000110)
$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.020 (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 = 3 (homing dir invert mask:00000011)
$24 = 25.000 (homing feed, mm/min)
$25 = 750.000 (homing seek, mm/min)
$26 = 250 (homing debounce, msec)
$27 = 1.000 (homing pull-off, mm)
$30 = 12000. (rpm max)
$31 = 0. (rpm min)
$100 = 11.111 (x, step/mm)
$101 = 40.000 (y, step/mm)
$102 = 320.000 (z, step/mm)
$110 = 8000.000 (x max rate, mm/min)
$111 = 8000.000 (y max rate, mm/min)
$112 = 500.000 (z max rate, mm/min)
$120 = 500.000 (x accel, mm/sec^2)
$121 = 500.000 (y accel, mm/sec^2)
$122 = 50.000 (z accel, mm/sec^2)
$130 = 740.000 (x max travel, mm)
$131 = 790.000 (y max travel, mm)
$132 = 100.000 (z max travel, mm)
X microstepping is set at 1/4 (on, off, off), Y microstepping is set at 1/8 (on, off, on) and Z microstepping is set at 1/2 (off, on, off).
$0 = 10 (step pulse, usec)
$1 = 255 (step idle delay, msec)
$2 = 0 (step port invert mask:00000000)
$3 = 6 (dir port invert mask:00000110)
$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.020 (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 = 3 (homing dir invert mask:00000011)
$24 = 25.000 (homing feed, mm/min)
$25 = 750.000 (homing seek, mm/min)
$26 = 250 (homing debounce, msec)
$27 = 1.000 (homing pull-off, mm)
$30 = 12000. (rpm max)
$31 = 0. (rpm min)
$100 = 11.111 (x, step/mm)
$101 = 40.000 (y, step/mm)
$102 = 320.000 (z, step/mm)
$110 = 8000.000 (x max rate, mm/min)
$111 = 8000.000 (y max rate, mm/min)
$112 = 500.000 (z max rate, mm/min)
$120 = 500.000 (x accel, mm/sec^2)
$121 = 500.000 (y accel, mm/sec^2)
$122 = 50.000 (z accel, mm/sec^2)
$130 = 740.000 (x max travel, mm)
$131 = 790.000 (y max travel, mm)
$132 = 100.000 (z max travel, mm)
Dovetail math
I want to get the math down for cutting half blind dovetails down in one place, so here we go.
First, the variables from the diagram
- h --- the height of our cut
- bw --- the width of our dovetail bit, at the bottom
- p --- how far apart we cut dovetails
- a --- the angle of our dovetail bit
- top width --- how much wood is left at the top
We need a few intermediate values, the first of which is the amount of wood the dovetail cuts.
d(h) = h * tan(a)
One quick sanity checks for the math is to see what happens with a straight bit: tan(a) = tan(0) = 0, which is what you'd expect. Another check is for a mythical 45 degree dovetail bit: tan(45) = 1, also as expected.
Now we need to figure out the top width, which is a function of h and p.
Setting the top width to be equal to the bit width we get:
Now we have to figure out how we want to round out the pins.
In this case it is just a matter of making two arcs of the same radius as the bit to get nicely rounded pins.
One quick sanity checks for the math is to see what happens with a straight bit: tan(a) = tan(0) = 0, which is what you'd expect. Another check is for a mythical 45 degree dovetail bit: tan(45) = 1, also as expected.
Now we need to figure out the top width, which is a function of h and p.
top width(h, p) = p - bw + (2 * d(h))Substituting for a straight bit we get the sensible value of p - bw.
top width(h, p) = p - bw + (2 * (h * tan(a)))
Setting the top width to be equal to the bit width we get:
bw = p - bw + (2*h*tan(a))
2bw - (2*h*tan(a)) = p
p = 2(bw - (h*tan(a)))
Now we have to figure out how we want to round out the pins.
In this case it is just a matter of making two arcs of the same radius as the bit to get nicely rounded pins.
Monday, December 19, 2016
Upgrades, mostly complete
Over the last weekend I've managed to install several new upgrades, centered around a new X-axis. The goal was to be able to run a dovetail bit through oak, and I'm happy to say it can.
![]() |
| X-Axis, front |
![]() |
| X-Axis, back |
To mount the new 25-5010 X-axis I've milled new plates for the X-axis and the Y-axis. The plates are made out of 1/4" aluminum, and are considerably larger than the steel Shapeoko 2 plates I started with. The Y-axis plates sprout three V-Wheels on top instead of two. Since I knew exactly where all of my screws were going to be before I started, I replaced all of the slots in the original Shapeoko 2 plates with simple holes so I wouldn't have to make any adjustments. The holes were also faster to mill than slots.
![]() |
| Y-Axis |
The X-Controller is driving the 13Nm NEMA 34 motor just fine, although the X-Controller can only put out 4 amps and the motor wants 5 amps. I'd rather have motors that can take down more current than the controller can put out than the other way around.
The design works pretty well, but the drag chain mounts remain a work in progress. I'd add a fourth wheel to the X-axis plates if I got a chance to mill them again. The X-Axis plates have holes to mount NEMA-34 motors, but I'll probably need the 4th wheels if I add the weight I'd get from two more NEMA-34 motors. My first attempt at mounting the X-axis ran into a collision between the screws holding the terminal block and the screws holding the OpenRails in place.
The only problem I've ran into so far was that I forgot to fully tighten the set screws for the X-axis, and debugging the backlash caused by the screw moving along the flat portion of the axel took a while.
The design works pretty well, but the drag chain mounts remain a work in progress. I'd add a fourth wheel to the X-axis plates if I got a chance to mill them again. The X-Axis plates have holes to mount NEMA-34 motors, but I'll probably need the 4th wheels if I add the weight I'd get from two more NEMA-34 motors. My first attempt at mounting the X-axis ran into a collision between the screws holding the terminal block and the screws holding the OpenRails in place.
The only problem I've ran into so far was that I forgot to fully tighten the set screws for the X-axis, and debugging the backlash caused by the screw moving along the flat portion of the axel took a while.
![]() |
| X-Axis acrylic tabs |
Sunday, October 23, 2016
New milling strategy
Tonight I tried a new milling strategy for the final contour cut of my aluminum plate.
Instead of cutting the entire plate with .2mm depth cuts, I cut first 2mm at .2mm depth cuts, and then switched the depth cuts to .25mm
The cutting feed speed was set to 330mm/minute, but I suspect that GRBL is gating the feed speed.
Instead of cutting the entire plate with .2mm depth cuts, I cut first 2mm at .2mm depth cuts, and then switched the depth cuts to .25mm
The cutting feed speed was set to 330mm/minute, but I suspect that GRBL is gating the feed speed.
Sunday, October 16, 2016
Third successful aluminum run
This run was the first aluminum run with the X-Controller.
Monday, October 3, 2016
Upgrading to X-controller, GRBL values dump
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=3 (dir port invert mask:00000011)
$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=40.000 (x, step/mm)
$101=40.000 (y, step/mm)
$102=320.000 (z, step/mm)
$110=2000.000 (x max rate, mm/min)
$111=1000.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=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)
The jumper for the Z-axis is set to 2x microstepping.
You'd think I'd know by now to dump the values before switching to the X-controller, instead of looking them up after figuring out what my Z movement was wrong.
Nope.
You'd think I'd know by now to dump the values before switching to the X-controller, instead of looking them up after figuring out what my Z movement was wrong.
Nope.
Subscribe to:
Posts (Atom)








