Euclid facility
-
@sgk instructions are here https://euclidprobe.github.io/
-
@r4ffers Hello OK thank you I'll go look at the documentation
-
@r4ffers I don't understand I have to do a retract and deploy file I can't understand and in addition it doesn't give how to put the m558 line on their site it's for a duet 2 and I have a duet 3.
-
@sgk Hi, this is my M558 line.
M558 K0 P8 C"^121.io2.in" T18000 F600:180 H5 A10 S0.03
You'll also need a G31 line.
Please make sure to check Duet docs, don't just add stuff to your config as all machines are different. -
@r4ffers I understand but it's hard for me I'm a novice so there are a lot of things that I have trouble understanding. Thanks for line 558.
-
@sgk have a look in duet docs at M558 and G31 so you know what each element does. Also look at the Euclid link I posted earlier which will take you through the commissioning side of it. Pretty sure there's macro examples for deploy and retract posted there too.
-
@r4ffers Yes thank you indeed I have already configured everything on config bed home z but when I launch home The bed does not go up and the probe does not stop the bed going up.
-
bed
M561 ; clear any bed transform
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G90 ; absolute positioning
G28 ; home all
G30 P0 X10 Y175 Z-99999 ; probe near a leadscrew, half way along Y axis
G30 P1 X330 Y175 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
G29 S0 ; probe the bed and enable compensation
M291 P"Leveling finished !" R"Probing.." S1 T2; ***********************************************************
; Euclid Probe Independant Screw Leveling Macro
; RRF3.X Firmware Example
; saveas system/bed4point.g
; could save it as conventional bed.g but for illustration purposes
; the name is purposefully altered
; comments and echo statements throughout are provided for convenience
; ***********************************************************
; probe is -16.4 in X -29.4 in Y bed is 290 in X 325 in Y
; locations of probe points are at
; (18, 285) (270,285)
;
; (18,65) (270,65)
;
; adjust coords so that probe hits symmetric points on the bed and avoids dock
;
; echo "Running bed4point.g"
M558 F60 A3 ; fix probe speed to 1mm/s
G90
G4 P250G30 P0 X18.0 Y65.0 F9000.0 Z-99999 ; probe front left PEI
G30 P1 X18.0 Y285.0 F9000.0 Z-99999 ; probe back left PEI
G30 P2 X270.0 Y285.0 F9000.0 Z-99999 ; probe back right PEI
G30 P3 X270.0 Y65.0 F9000.0 Z-99999 S3 ; probe near front right leadscrew and calibrate 3 motors PEI
; echo "bed4point.g complete"
-
config
M208 X-3.50 Y0 Z0 S1 ; Set axis minima
M208 X330 Y320 Z350 S0 ; Set axis maxima; ================ Endstops =======================
M574 X1 S1 P"io0.in" ; configure active-high endstop for low end on X via pin io0.in
M574 Y2 S1 P"io1.in" ; configure active-high endstop for low end on Y via pin io1.in
M574 Z1 S2 ; configure Z-probe endstop for low end on Z; ================ Z-Probe ========================
;M558 P8 C"io2.in" A5 H5 F120 T15000 ; set Z probe type to unmodulated and the dive height + speeds (for Mini IR sensor M558 P8 C"io2.in" A2 H5 F120 T15000)
M558 K0 P5 C"io8.in" H8 F300 T9000 A3 S0.01
; K0 for probe 0, P5 for NC switch, C for input pin,
; ^ for enabling the native pullup resistor on Duet 2
; hardware running RRF3
; H dive height of 8mm, F300 probing speed 6mm/sec,
; T9000 travel speed 150mm/sec,
; A3 number of probes 1, S0.01 max tolerance of 0.01
;G31 P50 X-1 Y-20 Z1.444 ; Set Z probe trigger value, offset and trigger height
G31 K0 P500 X-27.955 Y-18.716 Z1.033 ; CHECK for LOOSE things first! set Z probe trigger
; value, offset and trigger height. Higher numbers
; makes nozzle closer to bed
; switch plunger is 16.4mm to the LEFT and 29.27mm in
; FRONT of the nozzle. Switch triggers 0.9mm BELOW nozzle
; https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe#Secti
M556 S50 X0 Y0 Z0 ; set orthogonal axis compensation parametersM557 X20:270 Y20:270 P3 ; Define mesh grid
-
deploy
; ***********************************************************
; Euclid Probe Fixed Dock M401 Deploy Probe Macro
; RRF3.X Firmware Example
; saveas system/deployprobe.g
; comments and echo statements throughout are provided for convenience
; ***********************************************************
; __________________________________________________________________________
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | * Probe Ready Position |
; | X150 Y150 |
; | |
; | |
; | * Dock staging position |
; | X0 Y70 |
; | |
; | |
; | * Dock Exit Position |
; | X0 Y40 |
; | |
; | |
; | |
; | |
; | |
; | X0 Y0 X30 Y0 X100 Y0 |
; | * Dock * Dock Side * Dock Preflight |
; |________________________________________________________________________|
;
; Above is example 300x300 bed to coorelate with macros and movements below.
; This example is for a fixed dock, fixed gantry/carraige and moving bed motion system.
; RailCore, Ender5, V-Core3, etc...
; coordinates are re-written below above the macrosecho "Running deployprobe.g"
if !move.axes[0].homed || !move.axes[1].homed ; If the printer hasn't been homed, home it
M98 P"0:/sys/homexy.g"; uncomment next line to echo the probe deploy state
; echo "Object Model Deployuser token =" ^sensors.probes[0].deployedByUserM564 H1 S0 ; Allow movement BEYOND axes boundaries (for Y to reach probe dock)
G91 ; relative positioning
echo "Lift Z in advance of deploy"
G0 H2 Z15 F3000 ; move Z 15 for clearance above dock.
; ; need to figure out some safety check on this
G90 ; absolute positioning; uncomment next line to echo the probe value
; echo "Probe Value =" ^sensors.probes[0].value[0]if sensors.probes[0].value[0]!=1000 ; if sensor is value other than 1000 do this
; uncomment next line to echo the probe deploy state
; echo "deployuser token = " ^sensors.probes[0].deployedByUser
; echo "Probe State = " ^sensors.probes[0].value[0]
abort "deployprobe start value Probe already picked up. Manually return probe to the dock"; if we're here we know it's becasue the above is true which I assume is because you have an NC switch as a probe.
; echo "Passed first logic test to deploy probe";Preflight position is X100 Y8.5
;Dock Side position is at X30 Y8.5
;Docked probe postion is at X0 Y8.5
;Dock exit point is at X0 Y40
;Dock Re-Entry Staging Position is at X0 Y70
;Probe Ready Position X150 Y150; echo "Probe Pickup macro running"
G0 X100 Y8.5 F6000 ; move to Preflight Position
M400 ; wait for moves to finishG0 X30 Y8.5 F6000 ; move to Dock Side dock location
M400 ; wait for moves to finish; uncomment next line to echo the probe deplot state
; echo "Object Model Deployuser token (before while loop) = " ^sensors.probes[0].deployedByUserG0 X0 Y8.5 F3000 ; move over Dock
G4 P500 ; pause 0.5 seconds
M400 ; wait for moves to finish; uncomment next line to echo the probe value
; echo "Probe Value =" ^sensors.probes[0].value[0]G0 X0 Y40 F300 ; slide probe out of dock - slowly
G0 X170 Y170 F3000 ; move to re-entry position
M400 ; wait for moves to finishecho "Probe Pickup complete"
; uncomment to echo the probe deploy state
; echo "Object Model Deployuser token (after while loop) = " ^sensors.probes[0].deployedByUserG90 ; absolute positioning
G0 X170 Y170 G3000 ; move to the center of the bed
M400 ; wait for moves to finishif sensors.probes[0].value[0]!=0
; uncomment to echo the probe deploy state
echo "Object Model Deployuser token (in abort if section)= " ^sensors.probes[0].deployedByUser
abort "Deployprobe endvalue not 0 Probe not picked up! Deployt cancelled."M564 H1 S1 ; Restrict movement to within axes boundaries (for normal Y movement)
echo "Macro deployprobe.g complete"
-
retract
; ***********************************************************
; Euclid Probe Fixed Dock Retract Probe Macro M402
; RRF3.x Firmware Example
; saveas system/retractprobe.g
; comments and echo statements throughout are provided for convenience
; ***********************************************************
; __________________________________________________________________________
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | * Probe Ready Position |
; | X150 Y150 |
; | |
; | |
; | * Dock Re-entry staging position |
; | X0 Y70 |
; | |
; | |
; | * Dock Exit Position |
; | X0 Y40 |
; | |
; | |
; | |
; | |
; | |
; | X0 Y0 X30 Y0 X100 Y0 |
; | * Dock * Dock Side * Dock Preflight |
; |________________________________________________________________________|
;
; Above is example 300x300 bed to coorelate with macros and movements below.
; This example is for a fixed dock, fixed gantry/carraige and moving bed motion system.
; RailCore, Ender5, V-Core3, etc...
; coordinates are re-written below above the macrosecho "running retractprobe.g macro"
; uncomment next line to echo the probe deploy state
; echo "Object Model Deployuser token =" ^sensors.probes[0].deployedByUser; Preflight position is X100 Y0
; Dock Side position is at X30 Y0
; Docked probe postion is at X0 Y0
; Dock exit point is at X65 Y0
; Dock Re-Entry Staging Position is at X0 Y70
; Probe Ready Position X150 Y150G90 ; absolute positioning
M564 S0 ; allow beyond limit axis to print area
if sensors.probes[0].value[0]!= 0
echo "Probe Value =" ^sensors.probes[0].value[0]
echo "Object Model Deployuser token =" ^sensors.probes[0].deployedByUser
abort "retractprobe: Probe not currently picked up!"; echo "pass first logic loop"
; uncomment next line to echo the probe value and probe deploy state
; echo "Probe Value =" ^sensors.probes[0].value[0]
; echo "Object Model Deployuser token =" ^sensors.probes[0].deployedByUserG0 X0 Y70 F3000 ; move to ready position
M400 ; wait for moves to finishG0 X0 Y30 F3000 ; move to the entry position for the dock
M400 ; wait for moves to finishG0 X0 Y8.5 F300 ; move into the dock position
M400 ; wait for moves to finish
G4 P250 ; pause 250 usecsG0 X30 Y8.5 F6000 ; move to the side adjacent to the dock swiping the probe off
G0 X100 Y8.5 F3000 ; move to the side adjacent to the dock swiping the probe off
M400 ; wait for moves to finish; uncomment next line to echo the probe value and probe deploy state
; echo "Probe Value =" ^sensors.probes[0].value[0]
; echo "Object Model Deployuser token =" ^sensors.probes[0].deployedByUserG0 X170.0 Y170.0 F6000 ; move to the center of the bed
M400 ; wait for moves to finishM564 S1 ; limit axis to print area
; echo "complete movement commands"
if sensors.probes[0].value[0]!= 1000
; echo "Probe Value =" ^sensors.probes[0].value[0]
; echo "Object Model Deployuser token =" ^sensors.probes[0].deployedByUser
abort "retractprobe.g Probe not correctly dropped off in dock!"M564 H1 S1 ; Restrict movement to within axes boundaries (for normal Y movement)
echo "Macro retractprobe.g complete"
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-
homez
G91 ; relative positioning
G1 H2 Z5 F6000 S2 ; lift Z relative to current position
G90 ; absolute positioning
G1 X152 Y166.4 F6000 ; go to first probe point
G30 ; home Z by probing the bed; Uncomment the following lines to lift Z after probing
;G91 ; relative positioning
;G1 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioning; ***********************************************************
; Euclid Probe homez.g Example Macro
; RRF3.X Firmware Example
; saveas system/homez.g
; comments and echo statements throughout are provided for convenience
; ***********************************************************if !move.axes[0].homed || !move.axes[1].homed ; If the printer hasn't been homed, home it
M98 P"0:/sys/homexy.g"
M561 ; clear any bed transform
M290 S0 R0 ; clear baby steps
G91 ; relative positioning
G1 H2 Z6 F6000 ; lift Z relative to current position to clear any obstructions
M400
G90 ; absolute positioning
; echo "Call deployprobe.g macro"
M401 P0 ; This runs macro file deployprobe
; echo "Return"
G1 X145 Y162.5 F9000 ; go to center of bed in advance of probe that point
M400
; echo "G30 Command"
G30 ; Probe the bed at the current XY position. When the probe is triggered,
; adjust the Z offset of the current tool to make the current position Z=0.
G1 Z10 ; raise Z=10
M400
G4 P500
; echo "Call bed4point.g macro"
M98 P"0:/sys/bed4point.g" ; tram bed
; echo "Return"
G1 X145 Y162.5 F9000 ; go back to the first probe point and reprobe 0 in case it moved
G30
; echo "Call retractprobe.g macro"
M402 P0 ; retract probe
; echo "Return"
G1 Z10 F600 ; lift Z relative to current position
G90 ; absolute positioning
M564 S1 H0 ; reset the bounding limits
; G1 X150 Y0 F9000 ; move carraige to center front -
homeall
G91 ; relative positioning
G1 H2 Z5 F6000 S2 ; lift Z relative to current position
G1 H1 X-355 Y355 F6000 ; move quickly to X or Y endstop and stop there (first pass)
G1 H1 X-355 ; home X axis
G1 H1 Y355 ; home Y axis
G1 X5 Y-5 F6000 ; go back a few mm
G1 H1 X-355 F400 ; move slowly to X axis endstop once more (second pass)
G1 H1 Y355 ; then move slowly to Y axis endstop
G90 ; absolute positioning
G1 X170 Y180 F6000 ; go to first probe point X11.5 Y65.8 Z0 The coordinate put the Z sensor in the center of the bed.
G30 ; Probe; Uncomment the following lines to lift Z after probing
;G91 ; relative positioning
;G1 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioning -
m401
-
Firstly I would make sure the probe works correctly.
Get the EndStops Monitor plugin from Here
Click the 'Plugins' button on left toolbar
Then click
Select the file you just downloaded, and install it.When it is installed, you need to enable it by clicking the green 'Start' button
Press 'F5' on your keyboard to refresh the printers webpage.
go here
Click the 'Endstops' tab and it will display the status of your endstops
With the Euclid NOT connected it should say 'Yes' under triggered
With the Euclid connected and the switch NOT activated your screen should look like this.
Also note the 'Z-Probe' field in the 'Status' box at the top of the screen
When the Euclid is connected and the switch is NOT depressed it should read 0
When Euclid not connected it should read 1000 and be high lighted in RED
If this is not the case, add a '^' to this line, like mine.
M558 K0 P8 C"^io0.in" H8 F300 60 T9000 A3 S0.01
Let us know how you get on.
Regards,
Paul. -
@paulhew
no it did not work when the bed goes up and it coughs the probe sensor the bed does not stop -
-
-
but i get this error when i do home
10/09/2022 10:07:04 G28
Error: Probe already triggered at start of probing move
Error: Probe already triggered at start of probing move -
@sgk why are you using 2 io's?
Please post your config.g, not just bits of it.
Also a picture like below, WITHOUT the Euclid connected.
P.