BLTouch w/ DUet 3 mini 5+ Wifi (Ender 3 Pro)
-
Hello,
I need some help. I feel like I've read every forum post in reference to this issue and still have yet to be able to solve my problem.
I'm using my old Ender 3 Pro and I'm trying to set it up on a Duet 3 Mini 5+ (Wifi) but cannot get the BLTouch to work properly. I've been through the RepRap Config Tool and even used the config.json from this link to see if it would solve my problem. (https://s-ln.in/wiring-ender-3-to-duet-3-mini-wifi/). No luck. I still get the error message: "Z probe already triggered at start of move error". I'll post my config below for review. I have also followed all the info on this link but still cannot find a fix. I'm not sure if this may be the issue or not but I do NOT have the Z axis end stop/pin. I removed it from the Ender 3 years ago and would solely use the BLTouch. (https://duet3d.dozuki.com/Guide/Ender+3+Pro+and+Duet+Mini+5++Guide+Part+2:+Configuration/88)
Can anyone help he here? It would be greatly appreciated as I've been trying to get this to work for several weeks without resolution. My current config.g is below:
I am using the x and y axis end stop pins provided with the Ender 3 just to get it to work then I will tackle sensorless homing. Again, no Z axis end stop.
; generated by RepRapFirmware Configuration Tool v3.3.10
; General preferences
M575 P1 S1 B57600 ; enable support for PanelDue
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Prender" ; set printer name
M918 P1 E4 F2000000 ; configure direct-connect display; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0.0 S0 ; physical drive 0.0 goes backwards
M569 P0.1 S0 ; physical drive 0.1 goes backwards
M569 P0.2 S1 ; physical drive 0.2 goes forwards
M569 P0.3 S0 ; physical drive 0.3 goes backwards
M584 X0.0 Y0.1 Z0.2 E0.3 ; set drive mapping
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z400.00 E93.00 ; set steps per mm
M566 X1200.00 Y1200.00 Z24.00 E300.00 ; set maximum instantaneous speed changes (mm/min)
M203 X9000.00 Y9000.00 Z180.00 E6000.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z100.00 E5000.00 ; set accelerations (mm/s^2)
M906 X800 Y800 Z800 E1000 I50 ; 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 X235 Y235 Z235 S0 ; set axis maxima; Endstops
M574 X1 S1 P"io5.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io5.in
M574 Y1 S1 P"io6.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io6.in
M574 Z1 S2 ; configure Z-probe endstop for low end on Z; Z-Probe
M558 P1 C"io3.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds
G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height
M557 X15:215 Y15:195 S20 ; define mesh grid; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4092 ; 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 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S150 ; set temperature limit for heater 0 to 150C
M308 S1 P"temp1" Y"thermistor" T100000 B4092 ; 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 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S275 ; set temperature limit for heater 1 to 275C; Fans
M950 F0 C"out5" Q500 ; create fan 0 on pin out5 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out6" Q500 ; create fan 1 on pin out6 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 D0 H1 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
; 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 -
@teachmedavis747
HelloFirst of all, ditch this row:
M574 Z1 S2 ; configure Z-probe endstop for low end on Z
Then add a M950 to define your servo pin (to something like in this example):
; Z-Probe M950 S0 C"io3.out" ; Duet 3 Mini 5+ M558 P9 C"io3.in" H5 F300:120 A3 T6000 ; Duet 3 Mini 5+ G31 P500 X37.1 Y9.25 Z4.370 ; set Z probe trigger value, offset and trigger height
Also in your M558 P1 C"io3.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds
Use P9 type instead.
And see what happens. But take it easy, as you will probably have to change your homeall.g and your homez.g as well.
Btw. Here you have a pretty good write-up of how to configure and connect the BLTouch
https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe -
Thanks for the fast response. Are these the changes you suggest I make?
; Endstops M574 X1 S1 P"io5.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io5.in M574 Y1 S1 P"io6.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io6.in M950 S0 C"io3.out" ; Duet 3 Mini 5+
; Z-Probe M558 P9 C"io3.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid
Here are my current homez.g and homeall.g - I had read through that article before but did not want to make changes to the files that were produced from the RepRap Config Tool.
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Jan 02 2022 00:25:05 GMT-0700 (Mountain Standard Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-240 Y-240 F3000 ; 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-240 Y-240 F240 ; move slowly to X and Y axis endstops once more (second pass) G90 ; absolute positioning G1 X15 Y15 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
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Jan 02 2022 00:25:05 GMT-0700 (Mountain Standard Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 X15 Y15 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
Once again, thank you for your help!
-
Yes for now anyway, You could move the M950 down to the Z-probe section as it's where it belongs right now. But that's only a detail.
At a glance your homing scripts looks alright.
You might want to set the x and y offset of the probe in the G31 (in z-probe section in config.g) since I assume that you don't have your probe at the same position as the nozzle
But, you could start with that and see what happens. Only make sure that you have enough Z to start with so that the probe pin can deploy without touching the bed.
Edit: As a note, you might want to in homeall.g and homez.g move to th emiddle of the bed (adjusted with the probe offset) before go probe (G30)
Edit2: A stock position for BLTouch x and y a ENder3 is usually here:
G31 P500 X-40 Y-12 Z2.5
Edit3: Here
s a cool thing I found from Team Gloomy's config example. In your homez.g and homeall.g when you move to probe (G30) and you want to do it in th emiddle of the bed this is really cool (Note, it's all one line)G1 X{(move.axes[0].max/2)+abs(sensors.probes[0].offsets[0])} Y{(move.axes[1].max/2)+abs(sensors.probes[0].offsets[1])} F10000
Here's the rest of the config example: https://github.com/TeamGloomy/ender-3-fly-E3/tree/bltouch
-
Very interesting. I copied their homeall.g and homez.g
I tried the g30 command but the BLTouch did not deploy. i stopped it before it crashed into the bed. I also tried to home XY but for some reason the pins are not being read. Any ideas on these issues?
-
@teachmedavis747 OK, so:
EDIT: Forgot: Do you have the deployprobe.g and the retractprobe.g in your /sys directory? How do they look ?
EDIT2: Your endstop config is correct. But how have you connected them. It should be ground and in-pin? Move the bed to the endstop and the x-carriage also to the endstop and check status with M119
- Does the BLTouch glow red when the printer is on?
- WHen you start the printer does it deploy and stove the pin twice as a startup routine?
Can you show how you have connected the probe wires ? Picture ?
There are so many different colour variations of the wiring so do you remember how you had it connected with Marlin?
-
Yes, It glows red and deploys twice once powered on.
Here is a picture of the wiring:
Edit:
Here is deployprobe.g
M280 P0 S10
and retractprobe.g
M280 P0 S90
Edit 2: Here is the M119 with both x and y at the endstops:
Printer is now online. >>> m119 SENDING:M119 Endstops - X: at min stop, Y: at min stop, Z: no endstop, Z probe: not stopped
-
-
Nothing happens when I send either deploy or retract
-
@teachmedavis747 said in BLTouch w/ DUet 3 mini 5+ Wifi (Ender 3 Pro):
Edit 2: Here is the M119 with both x and y at the endstops:
Printer is now online. >>> m119 SENDING:M119 Endstops - X: at min stop, Y: at min stop, Z: no endstop, Z probe: not stoppedYes, but that seems to work just fine
-
@teachmedavis747 said in BLTouch w/ DUet 3 mini 5+ Wifi (Ender 3 Pro):
Nothing happens when I send either deploy or retract
OK, this should work, Can you send a picture of the BLTouch where you can see the wires as they go into the probe just to make sure that the right wires goes to the correvt places. We know that 5v and ground is correct. But we should be able to deploy with the config that your have.
You have saved and restarted after the changes right?
-
@teachmedavis747 Also, please post your complete config.g again.
Just to make sure ... -
Hi. I apologize for the delay. I was under the weather a few days. While I was down I ordered some new wires for the BLTouch. I installed them today and figured out that was my issue as far as deploying the probe. Fixed.
Question for you. When I hit "Home X"and "home y"... should the bed and X axis move towards the end stop pin? They do not make that move.
-
@teachmedavis747 That's great.
Yes, as long as you have a homex.g and a homey.g containing homing instruction in your /sys directory
-
Okay. I was able to get it to run G28. However, another issue. Maybe you can help me with this as well. I had to switch the direction of the x and y axis motors in config.g. (I replaced the x axis motor with a high torque motor from e3d).
When I enter G28 the extruder travels in the wrong direction. Instead of going towards the pin, it travels the opposite direction. How can I fix the homing files to compensate for this change? I will attach my config.g and homeall
Homeall
; homeall.g ; called to home all axes ; ; ; generated by RepRapFirmware Configuration Tool v3.1.10+4-LPC on Wed Jan 06 2021 14:08:16 GMT+0000 (Greenwich Mean Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-240 Y240 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-240 Y240 F360 ; move slowly to X and Y axis endstops once more (second pass) G90 G1 X{(move.axes[0].max/2)+abs(sensors.probes[0].offsets[0])} Y{(move.axes[1].max/2)+abs(sensors.probes[0].offsets[1])} F10000 ; ################# Home Z Preparation ################ M558 F250 ; Set the probing speed G30
config.g
; Configuration file for Duet 3 Mini 5+ (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Jan 02 2022 00:25:05 GMT-0700 (Mountain Standard Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Prender" ; set printer name M918 P1 E4 F2000000 ; configure direct-connect display ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S0 ; physical drive 0.0 goes backwards M569 P0.1 S0 ; physical drive 0.1 goes backwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S0 ; physical drive 0.3 goes backwards M584 X0.0 Y0.1 Z0.2 E0.3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E93.00 ; set steps per mm M566 X1200.00 Y1200.00 Z24.00 E300.00 ; set maximum instantaneous speed changes (mm/min) M203 X9000.00 Y9000.00 Z180.00 E6000.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z100.00 E5000.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E1000 I50 ; 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 X235 Y235 Z235 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io5.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io5.in M574 Y1 S1 P"io6.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io6.in ; Z-Probe M950 S0 C"io3.out" ; Duet 3 Mini 5+ M558 P9 C"io3.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X-19 Y-28 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4092 ; 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 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S150 ; set temperature limit for heater 0 to 150C M308 S1 P"temp1" Y"thermistor" T100000 B4092 ; 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 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S275 ; set temperature limit for heater 1 to 275C ; Fans M950 F0 C"out5" Q500 ; create fan 0 on pin out5 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out6" Q500 ; create fan 1 on pin out6 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 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 ; 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
homex
; homex.g ; called to home the X axis ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Jan 02 2022 00:25:05 GMT-0700 (Mountain Standard Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-240 F3000 ; move quickly to X axis endstop and stop there (first pass) G1 H2 X5 F6000 ; go back a few mm G1 H1 X-240 F240 ; move slowly to X axis endstop once more (second pass) G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning
homey
; homey.g ; called to home the Y axis ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Jan 02 2022 00:25:05 GMT-0700 (Mountain Standard Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 Y240 F3000 ; move quickly to Y axis endstop and stop there (first pass) G1 H2 Y5 F6000 ; go back a few mm G1 H1 Y240 F240 ; move slowly to Y axis endstop once more (second pass) G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning
-
@teachmedavis747 said in BLTouch w/ DUet 3 mini 5+ Wifi (Ender 3 Pro):
How can I fix the homing files to compensate for this change?
There are 3 parts to this. The direction of motor rotation, the endstop position definition, and the movement direction in the homing macros.
-x should move left, +x should move right
-y should move to the front, +y should move to the backM569 is where the rotation direction is set
M574 defines where the endstops are located. high end of travel (positive move to reach) or low end of travel (negative move to reach)
The G1 H moves in the homing macros should move towards the endstop either positive or negative.
If you require more guidance we'd need to at least know where your endstops are physically located to know if your config is correct.
-
@teachmedavis747 Hmm, from the top of my head I know of no special homing or probe related changes needed to fix that. Are you sure your Z-motor doesn't need reversing as well?
When you home x and y does z move in the right direction. Up and then down again?
-
@gixxerfast Yes. Z-axis moves well.
-
@phaedrux Sure.
On the ender 3 the x-axis endstop pin is located on the far left of the x-axis. The y-axis is located at the back of the printer next to the y-axis stepper motor. I believe I have it set at low end for both when I configured the file using the RepRap tool.
So if I changed the direction in 569 for both the x and y-axis motors... what others changes would be needed to get it to g28 in the right direction?
-
@teachmedavis747 said in BLTouch w/ DUet 3 mini 5+ Wifi (Ender 3 Pro):
When I enter G28 the extruder travels in the wrong direction. Instead of going towards the pin, it travels the opposite direction.
Just do be clear can you explain what you mean here exactly?
Your homeall.g is not correct as it moves the y in the wrong direction. You should try to go to relative -(max bed size x + some more) and -(max bed size y + some more)
Also, I would split that so I first home x, then y and lastly z.
In my homeall.g I just call homex.g, homey.g and homez.g instead of repeating the commands again.