Duet3 6HC not deploying BL touch for mesh bed leveling
-
Hey fellow duet 3 users. I've run into an issue and I think I'm driving myself insane trying to solve it. My team and I recycled an old GigaBot frame to build a printer that can use E3D's new tool change system. We are using a Duet 3 6HC and a 3HC expansion board to drive everything.
Everything works as intended except for the following:- Mesh bed leveling via G28 does not deploy the BLTouch (v3.1). The BLTouch works great as a Z endstop and is recognized by the board. Homing Z, the printer moves to the correct X and Y location and deploys the probe. The bed comes up and touches off and the probe retracts. My macros for pin up, pin down, and self test all work as intended. When I try to mesh bed level the toolhead moves to the correct X and Y location and the BLTouch does not deploy. The bed moves up and I have to hit the estop in order to avoid a collision.
- Home all does not work as intended. My "c" axis (the toolhead coupler), X axis, and Y axis home correctly. When it reaches the Z axis stage the toolhead moves to the correct X and Y location and the BLTouch does not deploy. The bed moves up and I have to hit the estop in order to avoid a collision. Just homing Z with the button on the web control dashboard does not create any issues. I can home every axis individually without any problems, using the button for home all on the dashboard is what breaks it.
If anyone has any time to look at it, here is my code:
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Mar 05 2021 11:02:45 GMT-0600 (Central Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"GigaBot Nue 2" ; set printer name ; Network M552 P10.0.0.84 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.1 S0 ; physical drive 0.1 goes backwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.4 S0 ; physical drive 0.4 goes backwards M569 P0.0 S0 ; physical drive 0.0 goes backwards M569 P0.3 S0 ; physical drive 0.3 goes backwards M569 P0.5 S0 ; physical drive 0.5 goes backwards M569 P1.0 S1 ; physical drive 1.0 goes forwards M569 P1.1 S1 ; physical drive 1.1 goes forwards M584 X0.1 Y0.2:0.3 Z0.4:0.5 C0.0 E1.0:1.1 ; set drive mapping M350 X16 Y16 Z16 E16:16:16:16:16 I1 ; configure microstepping with interpolation M350 C8 I0 ; configure microstepping without interpolation M92 X59.162 Y59.25 Z2019.11 C100 E834.00:834.00 ; set steps per mm M566 X900.00 Y900.00 Z120.00 C2 E2.00:2.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z360.00 C5000 E1200.00:1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 C400.00 E250.00:250.00 ; set accelerations (mm/s^2) M906 X2300 Y2300 Z2300 C400 E1680:1680 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S120 ; Set idle timeout ; Axis Limits M208 X50 Y0 Z0 C0 S1 ; set axis minima M208 X550 Y550 Z550 C260 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!io1.in" ; configure active-high endstop for low end on X via pin !io1.in M574 Y1 S1 P"!io0.in" ; configure active-high endstop for low end on Y via pin !io0.in M574 Z1 S2 P"!io7.in" ; configure Z-probe endstop for low end on Z ; Stall detection for tool coupler M915 C S5 F0 H200 ; Z-Probe M950 S0 C"io7.out" ; create servo pin 0 for BLTouch M558 P9 C"^io7.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds M557 X100:400 Y100:400 S25:25 ; define mesh grid G31 P50 X-63 Y-61 Z2.5 ; set Z probe trigger value, offset and trigger height ; Heaters M308 S0 P"spi.cs0" Y"thermocouple-max31856" ; configure sensor 0 as thermocouple via CS pin spi.cs0 M950 H0 C"out1" T0 ; create bed heater output on out1 and map it to sensor 0 M307 H0 A84.5 C971.6 D2.8 S1.00 V0.0 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"temp3" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp3 M950 H1 C"out3" T1 ; create nozzle heater output on out3 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S275 ; set temperature limit for heater 1 to 275C M308 S2 P"temp2" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin temp2 M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H2 S275 ; set temperature limit for heater 2 to 275C ; Fans M950 F0 C"out8" Q500 ; create fan 0 on pin out8 and set its frequency M106 P0 S1 H1 T45 ; set fan 0 value. Thermostatic control is turned on M950 F1 C"out7" Q500 ; create fan 1 on pin out7 and set its frequency M106 P1 S1 H2 T45 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"1.out8" Q500 ; create fan 2 on pin 1.out8 and set its frequency M106 P2 S0 H-1 ; set fan 2 value. Thermostatic control is turned off M950 F3 C"1.out7" Q500 ; create fan 3 on pin 1.out7 and set its frequency M106 P3 S0 H-1 ; set fan 3 value. Thermostatic control is turned off ; Tools M563 P1 S"FDM1" D0 H1 F0:2 ; define tool 1 G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M563 P2 S"FDM2" D1 H2 F0:3 ; define tool 2 G10 P2 X0 Y0 Z0 ; set tool 2 axis offsets G10 P2 R0 S0 ; set initial tool 2 active and standby temperatures to 0C ; 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
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Mar 06 2021 11:26:02 GMT-0600 (Central Standard Time) M561 ; clear any bed transform M280 P0 S10 G29 ; probe the bed and enable compensation
; deployprobe.g ; called to deploy a physical Z probe ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Mar 06 2021 11:26:03 GMT-0600 (Central Standard Time) M280 P0 S10 ; deploy BLTouch
; retractprobe.g ; called to retract a physical Z probe ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Mar 06 2021 11:26:03 GMT-0600 (Central Standard Time) M280 P0 S90 ; retract BLTouch
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Mar 05 2021 11:02:45 GMT-0600 (Central Standard Time) M98 P"homec.g" ; Home C (ToolHead) M98 P"homex.g" ; Home X M98 P"homey.g" ; Home Y M98 P"homez.g" ; Home Z ;G91 ; relative positioning ;G1 H2 Z5 F6000 ; lift Z relative to current position ;G1 H1 X-505 Y-505 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) ;G1 H2 X5 Y5 F6000 ; go back a few mm ;G1 H1 X-505 Y-505 F360 ; move slowly to X and Y axis endstops once more (second pass) ;G90 ; absolute positioning ;G1 X163 Y161 F6000 ; go to first bed probe point and home Z ;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
The reason my home all script is kind of a mess is due to me trying things over and over. I'm out of ideas.
Thanks!
-
Hi,
Regards the command M574 Z1 S2 P"!io7.in"
From the docs for M574:
Snnn 1 = switch-type (eg microswitch) endstop input, 2 = Z probe (when used to home an axis other than Z), 3 = single motor load detection, 4 = multiple motor load detection (see Notes).
Given that you try to use io7.in twice I would not be surprised if the configuration of the Z probe is failing.
Do this for us please:
From the console execute M98 P"config.g" and check for any error messages.
Frederick
-
So before adding the P"io7.in" after the M574 command the bltouch would work for the initial home z but if I tried to home z again the probe would not deploy. The toolhead would go the the correct X and Y location and the bed would move without deploying the probe. The only way to "release" the probe would be to power cycle the machine. For some reason adding that P parameter fixed this issue. I agree it is unusual since it should just be M574 Z1 S2.
-
@autopilot-exe said in Duet3 6HC not deploying BL touch for mesh bed leveling:
For some reason adding that P parameter fixed this issue. I agree it is unusual since it should just be M574 Z1 S2.
Please read the docs again where it says:
2 = Z probe (when used to home an axis other than Z)
You should not have that command at all unless it is specifying a normal endstop sensor for Z.
Frederick
-
@autopilot-exe said in Duet3 6HC not deploying BL touch for mesh bed leveling:
M98 P"homec.g" ; Home C (ToolHead) M98 P"homex.g" ; Home X M98 P"homey.g" ; Home Y M98 P"homez.g" ; Home Z
Post these macros please.
-
@fcwilt wait...? are you saying it should just read M574 Z1? no s parameter or P parameter?
-
@autopilot-exe said in Duet3 6HC not deploying BL touch for mesh bed leveling:
@fcwilt wait...? are you saying it should just read M574 Z1? no s parameter or P parameter?
Hi,
A M574 is not needed for configuring a Z probe.
If you don't have a Z endstop sensor you would have M574 Z0.
If you do have a Z endstop sensor then you use M574 Z(1 or 2) S1 and specify the input pin name.
In your case your were trying to use the same input twice - which you cannot do.
Frederick
-
@fcwilt so I commented it out to test.
good news: the probe still deploys for homing Z.
Bad news: the probe macros are all non responsive now and the mesh bed leveling still fails to deploy the probe -
@autopilot-exe said in Duet3 6HC not deploying BL touch for mesh bed leveling:
@fcwilt so I commented it out to test.
good news: the probe still deploys for homing Z.
Bad news: the probe macros are all non responsive now and the mesh bed leveling still fails to deploy the probeJust FYI you don't have to post screen shots - you can copy and paste code right into a </> tag.
If the probe deploys for homing it should deploy everywhere - unless something is configured wrong.
Do M401 and M402 always work?
Frederick
-
; homex.g ; called to home the X axis ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Mar 05 2021 11:02:45 GMT-0600 (Central Standard Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-605 F1800 ; move quickly to X axis endstop and stop there (first pass) G1 H2 X5 F6000 ; go back a few mm G1 H1 X-605 F360 ; move slowly to X axis endstop once more (second pass) G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning
; homey.g ; called to home the Y axis ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Mar 05 2021 11:02:46 GMT-0600 (Central Standard Time) G91 ; relative positioning G1 H2 Z15 F6000 ; lift Z relative to current position G1 H1 Y-555 F1800 ; move quickly to Y axis endstop and stop there (first pass) G1 H2 Y5 F6000 ; go back a few mm G1 H1 Y-555 F360 ; move slowly to Y axis endstop once more (second pass) G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Mar 06 2021 11:26:03 GMT-0600 (Central Standard Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 X163 Y161 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
; homec.g ; called to home the C axis (coupler) ;crashc G92 C260 M913 C40 ; C MOTOR TO 40% CURRENT G1 C-260 F2400 ; drive the C-axis to the stop M913 C100 ; C MOTOR TO 100% CURRENT G1 C1 F50000 G92 C0 ;Open Coupler M98 P/macros/Coupler - Unlock
note: the homec.g file was directly copied from e3d's documentation.
-
According to the docs M98 requires double quotes around the file name in v3 firmware.
Frederick
-
@fcwilt the duet doesn't spit out any errors. I typed "m401" and I get a green notification, but nothing moves on the machine. I type "m402", same thing happens.
-
Can you confirm that your deploy and retract probe macros are in the /sys folder?
-
@fcwilt in my homeall.g there are quotes around the file names. Home C,X, and Y are all executed correctly. when it gets to home z, the probe still doesn't deploy. I just tried it after removing the M574 command earlier.
-
Can confirm.
-
@autopilot-exe said in Duet3 6HC not deploying BL touch for mesh bed leveling:
@fcwilt the duet doesn't spit out any errors. I typed "m401" and I get a green notification, but nothing moves on the machine. I type "m402", same thing happens.
Hmm...
At this point I suppose we should verify the contents of deployprobe.g and retractprobe.g.
Frederick
-
; deployprobe.g ; called to deploy a physical Z probe ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Mar 06 2021 11:26:03 GMT-0600 (Central Standard Time) M280 P0 S10 ; deploy BLTouch
; retractprobe.g ; called to retract a physical Z probe ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Mar 06 2021 11:26:03 GMT-0600 (Central Standard Time) M280 P0 S90 ; retract BLTouch
-
Thanks.
Does the probe run it's self-test routine when you power on the printer?
Did you verify that it is connected to the correct input and output pins?
Frederick
-
-
@autopilot-exe said in Duet3 6HC not deploying BL touch for mesh bed leveling:
@fcwilt the self test is working, I have it wired correctly according to the documentation. (3.3v: nothing, io7.in: white, GND: black and brown soldered together going to a single pin, io7.out: orange, 5 volt: red)
Running out of ideas.
I have a Duet 3 setup on my workbench and BLTouch units in inventory.
All boards (6HC, 3HC, 1LC) are running 3.2.2.
I will get a BLTouch out and connect and configure as you have.
Frederick