Chiron+Duet3+BlTouch
-
@razrudy said in Chiron+Duet3+BlTouch:
G28 ; must be homed first G30 ; Perform a single probe to establish Z=0 (should already be at center because of home)
This is a pretty ambiguous combination because we can't see what the homeall is doing to home the Z axis, and we have no idea what XY location the G30 is being done in.
The important thing to remember is that the Z0 position is set in the same XY position whenever you set it. Your homeall, homez, and any other time you use G30 must be in the same position before and after G29 is used to create or load the height map. This is because the shape of the bed may give you a different z height depending on the XY location.
-
In my case homeall.g looks like this (homez sets to the same position) ... But I think you also answered one of the ambiguities in the documentation i.e. what coordinate (XY) is the bed height relative to. Seems the answer is "Wherever you set your Z-home"? EDIT: which needs be the same as your Z=0 datum.?
G91 ; relative mode G0 H2 Z10 F200 ; raise head above Z probe trigger height G0 H1 X-240 Y-240 F3000 ; move up to 240mm in the -X and -Y directions until the homing switches are triggered G0 H2 X5 Y5 F600; move slowly 5mm in +X and +Y directions G0 H1 X-10 Y-10 ; move up to 10mm in the -X and -Y directions until the homing switches are triggered G90 ; back to absolute mode G1 X110 Y110 F2000 ; put head over the center of the bed, or wherever you want to probe G30 ; lower head, stop when probe triggered and set Z to trigger height
-
Yes I made sure that every mesh starts from the same point....
Looking at the DWC now before I run this macro my home position was X-12 and Y-14 instead of the real X-6 Y-7 so I had something doubled in my steps. Now everything is normal only by running that macro.
I suspect there was something related to baby steps but I never went more then 3mm up/down during printing and it's just strange how it was exactly double compared with the original values.
Also tried to manually delete the heightmap , any mesh level maps I had saved and using G29 S2 with no resultNow I am trying to figure out how I can do a mesh level starting from the centre of the bed instead of the home position because my centre bed is the lowest point.
G28
M98 P"move_probe_center _bed.g"
G29 S0
will work or how it will be the best?
Making specific points for probing on the bed.g will work?Thinking that the lowest point will be under Z0 and I may not get the nozzle down enough...or it will compensate below Z0?
-
I am back on the same situation....tried to do a print and there was no mesh compensation applied. after I cancelled the print I did a G29 and my height map is back "in air" with ~1mm......time to reset everything and start from scratch
-
Maybe reshare all your gcode files including start gcode
-
........and now my home position is again at Z-12 Y-16 instead of X-6 Y-7 but visual is where it should be.
I have no idea why this is happening......I will keep the same config for couple more days maybe there is a bug or something.......; bed.g ; called to perform automatic bed compensation via G32 M561 ; clear any bed transform G29 ; probe the bed and enable compensation ;G30 P0 X42 Y0 Z-99999 ; probe near a leadscrew ;G30 P1 X358 Y0 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors ; config-override.g file generated in response to M500 at 2020-12-31 13:29 ;nothing on here ; Configuration file for Duet 3 (firmware version 3) ; Configuration for Chiron+Titan Aero+Volcano+BlTouch+ SBC Pi4 ; executed by the firmware on start-up ; General preferences G21 ; works in mm G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Chiron" ; set printer name ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards X M569 P0.1 S0 ; physical drive 0.1 goes backwards Y M569 P0.2 S0 ; physical drive 0.2 goes bacwards ZL M569 P0.3 S0 ; physical drive 0.3 goes backwards ZR M569 P0.4 S1 D2 ; physical drive 0.4 goes forwards E M584 X0 Y1 Z2:3 E4 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80 Y100 Z400 E407.5 ; set steps per mm M566 X1200 Y1200 Z12 E120 ; set maximum instantaneous speed changes (mm/min) M203 X9000 Y9000 Z180 E1200 ; set maximum speeds (mm/min) M201 X1000 Y800 Z250 E250 ; set accelerations (mm/s^2) M906 X1100 Y1100 Z1100 E1100 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X-6.0 Y-9.0 Z-20 S1 ; set axis minima M208 X400 Y400 Z445 S0 ; set axis maxima-need to remeasure this M671 X-40:440 Y200:200 ; leadscrews position at right and left of the X axis ; Endstops M574 X1 S1 P"!io0.in" ; configure active-high endstop for low end on X via pin io0.in M574 Y1 S1 P"!io1.in" ; configure active-high endstop for low end on Y via pin io1.in ;M574 Z1 S1 P"io2.in+io3.in" ; configure active-high endstop for low end on Z via pin-for original endstop's M574 Z1 S2 ; endstop set to z-probe ;Stall Detection ;M915 P0 S-5 F0 H200 R0 ; P=drive motor , S= sensitivite , H=motorstep/sec ( check home file) ; Z-Probe M950 S0 C"io5.out" ; create servo pin 0 for BLTouch M558 P9 C"^io5.in" H5 F60 T6000 R0.2 A10 ; set Z probe type to bltouch and the dive height + speeds G31 P25 X41.13 Y2.69 Z0 ; set Z probe trigger value, offset and trigger height M557 X42:380 Y0:400 P3 ; define mesh grid ; Piezo Z-probe ;M558 P8 C"io5.in" I1 R0.4 F300 X0 Y0 Z1 ;new piezo ;G31 X0 Y0 Z-0.1 P100 ;new piezo ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 A110.3 C842.7 D1.1 S0.5 V23.8 B0 ; disable 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"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 A373.1 C420.1 D3.0 S0.5 V24.1 B0 ; disable bang-bang mode for heater and set PWM limit M143 H1 S285 ; set temperature limit for heater 1 to 285C ; Fans M950 F0 C"out4" Q25000 ; create fan 0 on pin out4 and set its frequency M106 P0 S0 H1 T45 ; set fan 0 value. Thermostatic control is turned on M950 F1 C"out5" Q25000 ; create fan 1 on pin out5 and set its frequency M106 P1 S0 H1 T45 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"out7" Q25000 ; create fan 2 on pin out7 and set its frequency M106 P2 S0 H-1 ; set fan 2 value. Thermostatic control is turned off ;M950 F3 C"out8" Q500 ; create fan 3 on pin out8 and set its frequency ;M106 P3 S0 H-1 ; set fan 3 value. Thermostatic control is turned off ; Tools M563 P0 D0 H1 F0:2 ; 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 ; homeall.g ; called to home all axes G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z 10mm relative to current positio M280 P0 S90 ; retract probe pin , just in case it is deployed after emergency stop ; first move/home Y axis G1 H1 Y-415 F1800 ; move quickly to Y axis endstops and stop there G91 ; relative positioning P4 P500 ; wait 500ms G1 Y5 F6000 ; go back 5mm G4 P500 ; wait 500ms G1 H1 Y-415 F360 ; move slowly to Y axis endstop once more (second pass) G4 P500 ; wait 500ms ;second move/home X axis G1 H1 X-405 F1800 ; move quickly to X axis endstops and stop there G91 ; relative positioning G4 P500 ; wait 500ms G1 X5 F1800 ; go back 5mm G4 P500 ; wait 500ms G1 H1 X-405 F360 ; move slowly to X axis endstop once more (second pass) G4 P500 ; wait 500ms ;third move/home Z axis G30 H1 Z-455 F360 ; move Z down stopping at the endstop -for BLT ;G1 H1 Z-455 F360 ; move Z down stopping at the endstop -for original enstops G91 ; relative positioning G4 P500 ; wait 500ms ;G1 Z5 F100 ; lift Z relative to current position 5mm G90 ; absolute positioning ;G92 Z5 ; set Z position to axis minimum (you may want to adjust this) ; homex.g ;For stall detection/sensorless homing ;M201 X500 ; lower motor ascceleration to 500mm/m ;G91 ; relative positioning ;G1 H2 X0.5 F10000 ; energise motor ;M400 ; wait to make sure every command has been executed ;G4 P100 ; wait 1ms ;M913 X50 ; reduce motor current to half G91 ; relative positioning G1 Z5 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 H1 X-405 F1800 ; move quickly to X axis endstop and stop there (first pass) G91 ; relative positioning G4 P500 ; wait 500ms G1 X5 F1800 ; go back 5mm G4 P500 ; wait 500ms G1 H1 X-405 F360 ; move slowly to X axis endstop once more (second pass) G4 P500 ; wait 500ms G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning ;For stall detection/sensorless homing ;M400 ;G4 P100 ;M913 X100 ; motor current back to initial ;M210 X1000 ; motor acceleration back to initial ; homey.g G91 ; relative positioning G1 Z5 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 H1 Y-415 F1800 ; move quickly to Y axis endstop and stop there (first pass) G91 ; relative positioning P4 P500 ; wait 500ms G1 H2 Y5 F6000 ; go back a few mm G4 P500 ; wait 500ms G1 H1 Y-415 F360 ; move slowly to Y axis endstop once more (second pass) G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning ; homez.g G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G90 ; absolute positioning G30 H1 Z-455 F1800 ; move Z down until the endstop is triggered-for BLT ;G1 H1 Z-455 F1800 ; move Z down until the endstop is triggered - for original endstops ;G91 ; relative positioning ;G4 P500 ; wait 500ms ;G1 Z5 F100 ; lift Z 5mm relative to current position ;G90 ; absolute positioning ;G92 Z5 ; set Z position to axis minimum (you may want to adjust this) +5mm ; Custom settings are not defined ; Miscellaneous ;M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss ;M564 H0 ; moving axes before/without homing ;M591 P1 C"io4.in" S1 D0 ; filament run out sensor - work in progress ; deployprobe.g ; called to deploy a physical Z probe ; ; generated by RepRapFirmware Configuration Tool v3.1.10 on Wed Dec 16 2020 15:18:40 GMT+0000 (Greenwich Mean Time) M280 P0 S10 ; deploy BLTouch ; retractprobe.g ; called to retract a physical Z probe ; ; generated by RepRapFirmware Configuration Tool v3.1.10 on Wed Dec 16 2020 15:18:40 GMT+0000 (Greenwich Mean Time) M280 P0 S90 ; retract BLTouch M98 P"homeall.g" ; run home all command G30 P0 X42 Y0 Z-99999 ; probe near a leadscrew , the left one G30 P1 X400 Y0 Z-99999 S2 ; probe near oposite leadscrew and calibrate 2 motors ; stop.g ; called when M0 (Stop) is run (e.g. when a print from SD card is cancelled) ; ; generated by RepRapFirmware Configuration Tool v3.1.10 on Wed Dec 16 2020 15:18:41 GMT+0000 (Greenwich Mean Time) M83 ; relative extruder moves G1 E-10 F3600 ; retract 10mm of filament G91 ; relative positioning G1 Z5 F360 ; lift Z by 5mm G90 ; absolute positioning G1 X0 Y405 F6000 ; go to X=0 Y=405
Hope I didn't forget something
-
There are some problems in there. I'll reply again when I'm back at my PC later.
-
It's a bit hard to tell from your copy and paste which files are which. It looks like the homing files got pasted into the config.g portion? And that all might be in the middle of bed.g?
M98 P"homeall.g" ; run home all command G30 P0 X42 Y0 Z-99999 ; probe near a leadscrew , the left one G30 P1 X400 Y0 Z-99999 S2 ; probe near oposite leadscrew and calibrate 2 motors
Where is that from?
In homeall.g don't use M280 P0 S90 to retract the pin. Use M402 instead. That way the firmware is made aware of the pin retraction.
Also in homeall and homez,
G30 H1 Z-455 F360
is not a valid way to use G30. It's just G30 by itself. The speed is set by the M558 command in your config.g. The H1 etc etc will be ignored probably. -
@Phaedrux said in Chiron+Duet3+BlTouch:
It's a bit hard to tell from your copy and paste which files are which. It looks like the homing files got pasted into the config.g portion? And that all might be in the middle of bed.g?
M98 P"homeall.g" ; run home all command G30 P0 X42 Y0 Z-99999 ; probe near a leadscrew , the left one G30 P1 X400 Y0 Z-99999 S2 ; probe near oposite leadscrew and calibrate 2 motors
Where is that from?
This is just a macro I am using to home all and level the gantry. My plan is/was to use this and after that to run G32 or just a single probe and load height map. I level the bed with the stock endstops because I know they are in the same spot always and to make sure the things are as square as possible. After I am doing this I disable the stock end stops and use only the BLT......because the stock endstops are about 7-9mm above bed surface...still trying to figure out how can I use them always and use the BLT only for mesh compensation
In homeall.g don't use M280 P0 S90 to retract the pin. Use M402 instead. That way the firmware is made aware of the pin retraction.
Ok I will change this.....
Also in homeall and homez,
G30 H1 Z-455 F360
is not a valid way to use G30. It's just G30 by itself. The speed is set by the M558 command in your config.g. The H1 etc etc will be ignored probably.Yes everything is ignored after G30....just copied the normal end stops and changed G1 to G30
bed.g
config.g
config-override.g
deployprobe.g
homeall.g
homex.g
homey.g
homez.g
level_gantry.g
pause.g
resume.g
retractprobe.g
sleep.g stop.g -
This post is deleted! -
In homex: The G1 Z5 should have H2, otherwise it will complain if Z isn't homed first. Also remove the G90 and second G91. You just need to be in relative mode for those moves. Also, if you're using stall detection on X and Y, it's pointless to do a back off and second homing pass. A single fast homing pass is all you need.
;homex.g G91 ; relative positioning G1 Z5 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 H1 X-405 F1800 ; move quickly to X axis endstop and stop there (first pass) G91 ; relative positioning
In homeY the same thing goes for the G1 Z5 move needing H2. And the removal of the G90 and second G91 for the same reason. Also here if you are using stall detection, only ne pass is needed. If you are using an endstop switch, then the back off move should NOT have H2.
;homey.g G91 ; relative positioning G1 Z5 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 H1 Y-415 F1800 ; move quickly to Y axis endstop and stop there (first pass) G91 ; relative positioning P4 P500 ; wait 500ms G1 H2 Y5 F6000 ; go back a few mm G4 P500 ; wait 500ms G1 H1 Y-415 F360 ; move slowly to Y axis endstop once more (second pass) G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning
In your homeall and homez you should be positioning your probe at the center of the bed before sending G30.
You don't need all of the G4 pause commands in there either.
Your bed.g and level gantry macro could be the same thing. And I would leave G29 as a separate command rather than using it in G32 (bed.g)
; bed.g ; called to perform automatic bed compensation via G32 M561 ; clear any bed transform G28 ; home all G30 P0 X42 Y0 Z-99999 ; probe near a leadscrew G30 P1 X358 Y0 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors G28 Z ; home z again to reset Z0
; homeall.g ; called to home all axes G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z 10mm relative to current positio M402 ; retrack probe in case it's deployed ; first move/home Y axis G1 H1 Y-415 F1800 ; move quickly to Y axis endstops and stop there G1 Y5 F6000 ; go back 5mm G1 H1 Y-415 F360 ; move slowly to Y axis endstop once more (second pass) ;second move/home X axis G1 H1 X-405 F1800 ; move quickly to X axis endstops and stop there G1 X5 F1800 ; go back 5mm G1 H1 X-405 F360 ; move slowly to X axis endstop once more (second pass) ;third move/home Z axis G90 ; absolute positioning G1 X150 Y150 ; move probe to bed center G30 ; move Z down stopping at the endstop -for BLT G1 X0 Y0 Z10 ; move to parking position
; homex.g G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-405 F1800 ; move quickly to X axis endstop and stop there (first pass) G1 X5 F1800 ; go back 5mm G1 H1 X-405 F360 ; move slowly to X axis endstop once more (second pass) G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning
; homey.g G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 Y-415 F1800 ; move quickly to Y axis endstop and stop there (first pass) G1 Y5 F6000 ; go back a few mm G1 H1 Y-415 F360 ; move slowly to Y axis endstop once more (second pass) G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning
; homez.g G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 X150 Y150 ; position probe at center of the bed G30 ; move Z down until the endstop is triggered-for BLT
I cleaned up your files a bit.
-
Thanks....I will upload the new files and see how it's working. I will do 2 separate sd cards....I will use them in a fresh install and on the old one . Just testing to see if this will fix the map height thing.
-
Above - you said " If you are using an endstop switch, then the back off move should NOT have H2."
Can you explain that please. I'm trying to better understand the documentation. I can see that H0 could be used for the backoff move since we now have a "home" for the axis. The documentation for H2 says
"H2 Individual motor mode. X refers to the X motor, Y refers to the Y motor, and so on. Normally used with relative motor coordinates (see G91).is used for a single"
This description would seem to apply to this situation - albeit may be redundant in the context of a backoff move. Basically - you said "NOT" and I'm seeking to understand if there is a negative here.One last thing (may be related) - is it "good practice" to issue a G90 at the end to avoid any potential, accidental issues with subsequent positioning commands ? Or does the homing move H1 automatically revert the printer to absolute positioning ?
-
@stuartofmt H2 is intended to allow movement for an unhomed axis or to isolate a single motor move on a corexy. Using it for the backoff move would prevent any error messages from being thrown in cases where the initial homing move actually failed. In normal working operation this may not matter, but when doing your initial testing, missing that error can lead to a lot of confusion. (Ex: I press home but it move in the wrong direction a few mm, I don't know why so I start changing homing direction or motor direction or endstop position, etc and make things much much worse, when the actual problem was that the initial homing either failed with a false positive or false negative and the H2 allowed the back off move to work anyway)
H2 in homing files is really only appropriate for the Z axis to allow an unhomed z axis to raise a few mm just to ensure clearance for moving the X and Y axis.
Unfortunately the web configurator tool has been generating XY back off moves that use H2 for a while, so it's pretty common to see now. But it really shouldn't be the case and I believe it's now fixed there.
Best practice for G90/G91 is to always declare it before you need it. Partly to ensure the moves happen the way you intend them, and to make the readability of the macro more clear because it declares the intention of the following moves.
As for whether the G90/G91 is persistent after the macro exits I'm not actually sure. It my return to whatever was set previously.
-
Thanks - makes sense.
I note that the documentation says that macros implicitly call a M120 Push at the start. But M121 Pop does not state that it is applied at the end of a Macro call. I suspect that logically - it must otherwise the stack would just grow ....
Would be great if there was some clarification on that.
Implicit in the above is that it's perhaps not a bad idea (although in practice likely irrelevant) to have a G90 in config.g before any macro calls so that the default state is absolute.
-
@stuartofmt said in Chiron+Duet3+BlTouch:
to have a G90 in config.g
this is the default produced by the config tool.
-
I've loaded your files and now I am start testing but so far looks good.
A small problem is that when I am moving to bed centre the speed is very slow.....after X and Y homing the move to the bed centre is very slow.....but after gantry level when is doing the second G30 the speed is normal.
The start.g code is executed first when the board is powered or before any print starts? I need to ad a delay , probe reset and self test for BLT because in 95% of the cases after "emergency stop" or when I power up the board is in error mode.
Can't wait to finish with this and move to piezo probe..... -
@Phaedrux said in Chiron+Duet3+BlTouch:
G1 H1 X-405 F360 ; move slowly to X axis endstop once more (second pass) ;third move/home Z axis G90 ; absolute positioning G1 X150 Y150 ; move probe to bed center
The move to center is slow because the last feed rate set was only F360. Add a new fast feed rate to the G1 X150 Y150 F6000 move.
@razrudy said in Chiron+Duet3+BlTouch:
The start.g code is executed first when the board is powered or before any print starts?
start.g is run as soon as a print starts.
@razrudy said in Chiron+Duet3+BlTouch:
I need to ad a delay , probe reset and self test for BLT because in 95% of the cases after "emergency stop" or when I power up the board is in error mode.
Add those reset commands to the start of homeall.g and homez.g and the end of config.g just to make sure the BLTouch is ready to go.
M280 P0 S160 ; Clear any alarms M402 ; retract pin just in case
-
This post is deleted! -
Can we use now M205 in mm/s instead of M566 in mm/min for better compatibility with the slicers? Any advantage in one over the other? From @dc42 post , about 1 year ago , the M205 is supported since RRF 2.0.1 for XYZ or other axis. this includes the E jerk too?