request for help with cnc XYZ probe
-
Hello all
Im running a duet3 6hc on my cartesian cnc, I'm trying to use an openbuilds xyz probe (not probe plus) to set a stock zero point with the following macro I've found on the forum, i'm hoping someone will look at my config.g and touch probe macro and let me know what I'm doing wrong. I get an error listed below,
I also get the "no tool selected" error if I try to run M675 X R8 F100 from the command line. I guess i'm not exactly sure how I select a tool/my probe.
thanks; Display message without time-out and allow to position the bit M291 T-1 S3 X1 Y1 Z1 P"Make sure the bit is positioned in the hole of the touch probe well beneath the top surface" R"Touch probe" ; Find center of cavity M675 X R8 F100 ; Find center in X axis M675 Y R8 F100 ; Find center in Y axis ; Set bit above center of probe G0 Z15 ; rapid move Z axis 15 mm G0 X27 Y27 ; rapid move X and Y axis to middle of probe ; Probe Z component G38.2 Z-25 F100 ; seek until the probe circuit is closed Z-axis -15 mm ; Return bit to center of hole G0 Z15 ; rapid move Z axis 15 mm G0 X-27 Y-27 ; rapid move X and Y axis to center of cavity G0 Z-15 ; rapid move Z axis -15 mm G10 P0 L20 X0 Y0 Z10 ; store relative probe offset for coordinates system 0
when I run the macro I get:
errorM675: no tool selected!My config.g
; Configuration file for Duet WiFi (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.4.1 on Thu Feb 08 2024 16:31:44 GMT+1100 (Australian Eastern Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Doms CNC" ; set printer name M453 ; Network ;M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S0 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S0 ; physical drive 3 goes forwards ;M584 X0.0 Y0.1:0.2 U0.2 Z0.3 ; set drive mapping ;dual y M584 X0.0 Y0.1:0.2 Z0.3 M350 X16 Y16 U16 Z16 E16 I1 ; configure microstepping with interpolation M92 X400.00 Y400.00 U400.00 Z400.00 ; set steps per mm M566 X900.00 Y900.00 U900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 U6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 U500.00 Z20.00 ; set accelerations (mm/s^2) M906 X1200 Y1200 U1200 Z1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X-10 Y0 U0 Z0 S1 ; set axis minima M208 X420 Y410 U410 Z242 S0 ; set axis maxima ; Endstops M574 X2 S1 P"!io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin xstop M574 Y2 S1 P"!io1.in+!io6.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin ystop M574 Z2 S1 P"!io2.in" ; configure Z-probe endstop for high end on Z ;M574 U2 S1 P"!io6.in" ; auto squaring pin ; Z-Probe M558 K0 P8 C"!io5.in" H10 F120 T3000 ; set Z probe type to unmodulated and the dive height + speeds G31 Z10 ; set Z probe trigger value, offset and trigger height ;M557 X15:215 Y15:195 S20 ; define mesh grid ; Heaters ;M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp ;M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 ;M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit ;M140 H0 ; map heated bed to heater 0 ;;M143 H0 S120 ; set temperature limit for heater 0 to 120C ;M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp ;M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 ;M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ;M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans ;M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency ;M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off ;M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency ;M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools ;M563 P0 D0 F0 ; define tool 0 ;G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets ;G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined M564 S1 H0 ; Enable jog commands when not homed
-
@Chased_bydogs said in request for help with cnc XYZ probe:
You currently have no tools defined in your config.g:
; Tools
;M563 P0 D0 F0 ; define tool 0
;G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
;G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0CRepRapFirmware expects at least one tool, but you don't need to assign any drives, heater, fans or even your CNC spindle; I can't see it defined in config.g, so I assume you control the spindle manually? Defining a tool does need something, but just a name will do, eg:
M563 P0 S"CNC tool" ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
You can then use tool offsets and coordinate systems, which the macro is using. To activate the tool at startup, add this line at the end of config.g:
T0 ; activate tool 0
For the actual probing move with M675, make sure you understand what this is going to do. See https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m675-find-center-of-cavity
Currently the commands you are using, egM675 X R8 F100
, will cause cause it to probe until the X axis endstop is triggered. I guess your really want to use the probe defined in the 'Z-Probe' section of your config.g, so you will probably need to change the M675 command. If the hole diameter less the endmill diameter is less than 8mm, you probably want to reduce the R parameter too; 1mm backoff should be fine. e.g.M675 X R1 F100 P0 ; Find center in X axis M675 Y R1 F100 P0 ; Find center in Y axis
RRF also support the more usual probing Gcodes of G38.2 through to G38.5, see https://docs.duet3d.com/en/User_manual/Reference/Gcodes#g382-straight-probe
I have recently updated this wiki page with more info for configuring CNC machines: https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_CNC
Ian
-
@droftarts Thanks for your help Ian,
Yes I manually turn on my router. I've added the M563 lines as suggested (makes sense now, and I realize I had a ;tools section in my config.g just commented out and not defined).Now when I run the macro it moves to the bit to touch the side of the cavity in the X direction then then the Y direction but sometimes fails, i think depending on the starting location of the 5mm bit in the 15mm hole. I then get "error:G0/G1: target position out of machine limits" Is this due to the G0 Z15 line in the macro? if I enter this at the command line it sends the bit down into the stock.
I've looked at the wikki for configuring CNC machines, would be great if it had a section on setting up touch probes. I tried to start with using a G38.2 to set my Z zero but couldn't figure it out. My method was to enter G38,2 Z F100 and I assumed the spindle/bit would descend until the bit and plate made contact. Instead the bit descends a couple of mm and stops, am I missing something here?