Hi!
I use Duet 2 Wifi in a small CNC machine to mill PCBs, in order to compensate for board uneven height I use a mesh compensation. Z-endstop is configured as a normally open contact between the PCB copper layer and a carving bit.
Now the procedure looks like this:
- I put the PCB board in place
- Switch the machine to absolute coordinates (G54)
- Set up the PCB size (M557 X12.5:42.5 Y50:75.5 S10, note: absolute coordinates),
- Z-home the carving bit to the surface of the PCB and set global z=0
- Run grid compensation (G29), produce a mesh compensation file so I can load it in gcode file afterward with G29 S1.
-- - Switch to work coordinates (G55)
- Home everything again, this time in local coordinates, to set a work zero properly
- Start milling
I'm wondering is it possible to somehow shave some of these steps? Like, being able to set M557 in local (work) coordinates and successfully run a G29 etc?
Ideally I would see the process like this:
- Put the board in place
- Jog to the side of the board, set work coordinates x=0, y=0
- Z-home the carving bit to the surface setting work z=0
- Inform firmware about the size of the board using something like M557 X0:10 Y0:20 S10
- Run G29
- Start carving using G29 S1 at the beginning of the g-code