Duet3/Raspi CNC G29 at WCS Zero
-
Hi,
I'm trying to mill PCBs and I anticipate that the small and inevitable variations in material thickness and bed levelness will make it difficult to achieve a decent result without some bed level compensation. I'm familiar with this process on a 3D printer where the offsets are usually constant assuming the probe is attached to the extruder.
However when using the G29 command with the CNC, the machine appears to use the M557 mesh coordinates as absolute values from Machine zero, rather than the WCS Zero. Hopefully that makes sense. I'm relatively new to the language of CNC!
I wonder if anyone could kindly clarify whether it's possible to:
- Zero the machine to its limits as usual
- Set the WCS Zero at stock top (or appropriate reference point)
- Issue Mesh bed probe G29
- Machine probes coordinates set in M557 relative to the WCS offset
- Machine uses mesh for bed compensation during milling operation.
I've tried a couple of times and narrowly avoided certain death of my end-mill diving into the spoil board at Machine X0Y0. Just wondering if there's a solution to this that doesn't involve hard-coding offsets in the config files?
Config.g below for reference.
Any help appreciated, thank you. Jason
; Configuration file for Duet 3 Mini 5+ (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Thu Feb 17 2022 16:48:19 GMT+0000 (Greenwich Mean Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Duet 3" ; set printer name ; Drives M569 P0.0 S0 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S0 ; physical drive 0.3 goes forwards M569 P0.4 S1 ; physical drive 0.4 goes forwards M584 X0.0:0.1 Y0.2:0.3 Z0.4 ; set drive mapping M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 ; set accelerations (mm/s^2) M906 X1200 Y1200 Z1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X600 Y330 Z81 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!io0.in+!io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in M574 Y1 S1 P"!io2.in+!io3.in" ; M574 Y1 S4 ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in ;M574 Z1 S1 P"!io4.in" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io4.in ; M915 X Y R0 F0 ; CNC Specific M950 R0 C"OUT_0" L12000 ; Create spindle index 0, with PWM pin on heater 3 and 12000 RPM achieved at full PWM M563 P1 S"Spindle 1" R0 ; Create tool 1 with spindle 0 and call it "Spindle 1" M453 ; Z-Probe M558 P5 C"!io4.in" H5 F120 T3000 ; set Z probe type to switch and the dive height + speeds G31 P500 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height M557 X5:100 Y5:100 S10 ; Define mesh grid ; Heaters M140 H-1 ; disable heated bed (overrides default heater mapping) ; Fans M950 F0 C"out3" Q500 ; create fan 0 on pin out3 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency M106 P1 S1 H T45 ; set fan 1 value. Thermostatic control is turned on ; Tools ; Custom settings are not defined