BLtouch with Reprap Firmware 3.0



  • Cant seem to get my BLtouch to work after updating to Reprap firmware 3.0

    hoping for some advice

    This is my current config

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.5 on Wed Jan 08 2020 19:38:55 GMT-0500 (Eastern Standard Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"TitanXY" ; set printer name

    M667 S1 ; select CoreXY mode

    ; 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 backwards
    M569 P1 S0 ; physical drive 1 goes backwarsa
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P3 S0 ; physical drive 3 goes backwards
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 X32 Y32 Z32 I0 ; configure microstepping without interpolation
    M350 E16 I1 ; configure microstepping with interpolation
    M92 X400 Y400 Z1593 E409 ; set steps per mm
    M566 X600 Y600 Z20 E800 ; Set maximum instantaneous speed changes (mm/min)
    M203 X9000 Y9000 Z1500 E10000 ; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z250 E5000 ; Set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1500 E1100 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout
    M572 D0 S0.15 ; Pressure Advance ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X270 Y270 Z300 S0 ; set axis maxima

    ; Endstops
    M574 X1 S3 ; configure sensorless endstop for low end on X
    M574 Y1 S3 ; configure sensorless endstop for low end on Y

    ; BLTouch
    ; BLTouch - Heaters
    M307 H7 A-1 C-1 D-1 ; Disable the 7th Heater to free up PWM channel 5 on the Duex board.

    ; Z-Probe
    M558 P5 H5 F500 T4000 X0 Y0 Z1 ; Set Z probe type/mode 5. H=Dive Height. F=Speed the bed moves
    ;M558 P5 C"zprobe.in+zprobe.mod" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
    G31 P25 X22 Y0 Z2.2 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment
    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
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    M307 H0 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit
    M308 S1 P"e0temp" Y"thermistor" T110.23 B-356.98 ; 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
    M143 H1 S280 ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit

    ; 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
    M950 F2 C"fan1" Q500 ; create fan 2 on pin fan1 and set its frequency
    M106 P2 S1 H1 T45 ; set fan 2 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



  • Funny, I just ( about 20 min ago) got this working for myself.

    I'm sure there are still things wrong with my config.g but you can look at it here. I would also have you look at the Duet/BLTouch guide posted here. You didn't mention which Duet board your using but lets just say its the Duet 2 Wifi. Look at the wifi section of that page. Pay special note to where to connect the BLTouch to the board. Heater3 in the case of the Duet 2 Wifi. If you connect your BLTouch to those pins, and use the probe section from my config, you should be good:

    M950 H3 C"nil"                                 ; Disable heaters h3-h7 to free up pins
    M950 H4 C"nil"
    M950 H5 C"nil"
    M950 H6 C"nil"
    M950 H7 C"nil"
    
    ; Z-Probe
    M950 S0 C"exp.heater3"                         ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H10 F800 T2000            ; set Z probe type to bltouch and the dive height + speeds
    

    The M950's with the C"nil" are there to free up those pins. You only really need to free up H3 for the BLTouch in this case, but I figured I wasn't using those so I'd free them all up.

    Let me know if you have any questions



  • Ok I am using Heater3
    Duet Wifi 2
    here is my updated config

    ; BLTouch - Heaters
    ;M307 H7 A-1 C-1 D-1 ; Disable the 7th Heater to free up PWM channel 5 on the Duex board.

    ; Z-Probe
    M950 H7 C"nil" ; Disable heaters h7 to free up pins
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H10 F800 T2000 ; set Z probe type to bltouch and the dive height + speeds
    G31 X20 Y0 Z3.3 P25 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment
    M557 X15:215 Y15:195 S20 ; define mesh grid

    Here is my homeall setup

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.5 on Wed Jan 08 2020 19:38:55 GMT-0500 (Eastern Standard Time)

    M913 X75 Y75 Z100 ; reduce motor power

    M400 ; make sure everything has stopped before we make changes
    M915 H400 X Y S0 R0 F0 ; set X and Y to sensitivity 0, do nothing when stall, unfiltered
    M574 X1 Y1 S3 ; set endstops to use motor stall

    G91 ; use relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position

    G4 P500 ; wait 500msec
    G1 H1 X-285 F2000 ; move quickly to X axis endstop and stop there (first pass)
    G4 P500 ; wait 500msec
    G1 X5 ; move away from home
    G4 P500 ; wait 500msec
    M400 ; make sure everything has stopped before we make changes

    G4 P500 ; wait 500msec
    G1 H1 Y-285 F2000 ; move quickly to Y axis endstop and stop there (first pass)
    G4 P500 ; wait 500msec
    G1 Y5 ; move away from home
    G4 P500 ; wait 500msec
    G1 H1 Y-285 F2000 ; move quickly to Y axis endstop and stop there (first pass)

    G1 H2 Z10 F6000 ; lift Z relative to current position
    G1 X150 Y150 F1200 ; Centre Print head
    G1 H1 Z-305 F1800 ; move Z down until the endstop is triggered
    G92 Z0 ; set Z position to axis minimum (you may want to adjust this)

    G1 H2 Z10 F6000 ; lift Z relative to current position
    M400 ; make sure everything has stopped
    M913 X100 Y100 ; XY motors to 100% current
    G90 ; back to absolute positioning

    Currently im getting this error
    G28 SetPosition called when DDA ring not empty

    for wiring I have the BLTOUCH

    White Wire (Z signal) = Z Probe IN
    Orange (Servo Sig) = Heater3
    Red (5v) = +5V
    Brown (GND) = GND



  • That looks good.. These V3 /config.g files are complicated. More so than with versio 2.x I think. Have you tried it



  • @Adamfilip said in BLtouch with Reprap Firmware 3.0:

    M950 H7 C"nil" ; Disable heaters h7 to free up pins

    One change.. Change:
    M950 H7 C"nil" ; Disable heaters h7 to free up pins

    to

    M950 H3 C"nil" ; Disable heaters h3 to free up pins



  • I managed to get it to deploy in tests but when I run homeall
    it gets to the point where it centers the head

    then it gives me the error
    Currently im getting this error
    G28 SetPosition called when DDA ring not empty



  • Hallo, can you over a Macro or a G-Code push the BLTouche Pin in or out.
    I have the BLTouch config like you and the BlTouch don´t move the Pin.



  • ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.5 on Thu Jan 09 2020 09:19:35 GMT+0100 (Mitteleuropäische Normalzeit)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"My Printer" ; set printer name

    M667 S1 ; select CoreXY mode

    ; Network
    M551 P"123456" ; set password
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S1 ; physical drive 2 goes forwards
    M569 P3 S1 ; physical drive 3 goes forwards
    M569 P4 S1 ; physical drive 4 goes forwards
    M584 X0 Y1 Z2 E3:4 ; set drive mapping
    M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z4000.00 E415.00:415.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1400 E1000:1000 I30 ; 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 X400 Y400 Z500 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
    ;M574 Z1 S2

    ; BLTouch - Heaters
    ;M307 H3 A-1 C-1 D-1 ; Disable the 7th Heater to free up PWM channel 5 on the Duex board.

    ; Z-Probe
    M950 H3 C"nil"
    ;M950 H4 C"nil"
    ;M950 H5 C"nil"
    ;M950 H6 C"nil"
    ;M950 H7 C"nil" ; Disable heaters h7 to free up pins
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F100 T2000 ; set Z probe type to bltouch and the dive height + speeds
    G31 X20 Y0 Z3.3 P25 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment
    M557 X50:350 Y50:350 S50 ; 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
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    M307 H0 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit
    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
    M143 H1 S280 ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit
    M308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp
    M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2
    M143 H2 S280 ; set temperature limit for heater 2 to 280C
    M307 H2 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit

    ; 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:2 T45 ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"fan2" Q500 ; create fan 2 on pin fan2 and set its frequency
    M106 P2 S1 H1:2 T45 ; set fan 2 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
    M563 P1 H2 F0 ; 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

    ; 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

    I have the BLTouch wired on Heater3 (PIN8) on the Duet Wifi Board.
    i take the G-Code to test M401 / M402
    or
    M280 P3 S10 I1
    M280 P3 S160 I1
    M280 P3 S120 I1
    nothing move it.

    With the old Firmeware 2.05 the Pin Move in and out.



  • @CupaCabra said in BLtouch with Reprap Firmware 3.0:

    With the old Firmeware 2.05 the Pin Move in and out.

    Have you also adapted deployprobe.g and retractprobe.g?



  • @CupaCabra said in BLtouch with Reprap Firmware 3.0:

    M280 P3 S10 I1
    M280 P3 S160 I1
    M280 P3 S120 I1

    Now you have to use
    M280 P0 S10
    M280 P0 S160
    M280 P0 S120



  • Hello,
    yes i have but i don´t now is it right.

    deployprobe.g
    M280 P3 S10 I1

    and in retractprobe.g
    M280 P3 S90 I1

    i hope there are right



  • change P3 to P0 and remove I1



  • @DIY-O-Sphere
    i change the Code in the Config now an test it.



  • It´works with
    M280 P3 S10 ......

    thx so lot 🙂


  • Moderator

    @CupaCabra Great! Please post the 'Z-Probe' section of your config.g to show how you resolved this!

    Also, you don't need to unassign the heater channels in RRF3 with M950 H3 C"nil", as they are not assigned by default. Only a few pins are assigned by default, and only need to be unassigned if you use them for something else; see https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview#Section_Duet_2_WiFi_Ethernet_and_Duet_2_Maestro

    Ian



  • @CupaCabra said in BLtouch with Reprap Firmware 3.0:

    M280 P3 S10 ......

    Now I am confused.
    You will find exact your configuration in
    https://duet3d.dozuki.com/Wiki/Gcode#Section_M280_Set_servo_position

    And we have done it succesfully on a buddys wifi exact that way with heater7.
    Are you shure you have update to the stable and not to a older beta.
    I think there you had to trigger the heater instead of the servo channel.



  • @droftarts said in BLtouch with Reprap Firmware 3.0:

    Also, you don't need to unassign the heater channels in RRF3 with M950 H3 C"nil"

    The beta would explain that too.



  • so i have change the

    deployprobe.g
    M280 P3 S10

    retractprobe.g
    M280 P3 S90

    if i test with a Marco file
    The pin go´s out with S10 und retract with S90

    I think it´s right.



  • ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.5 on Thu Jan 09 2020 09:19:35 GMT+0100 (Mitteleuropäische Normalzeit)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"My Printer" ; set printer name

    M667 S1 ; select CoreXY mode

    ; Network
    M551 P"123456" ; set password
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S1 ; physical drive 2 goes forwards
    M569 P3 S1 ; physical drive 3 goes forwards
    M569 P4 S1 ; physical drive 4 goes forwards
    M584 X0 Y1 Z2 E3:4 ; set drive mapping
    M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z4000.00 E415.00:415.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1400 E1000:1000 I30 ; 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 X400 Y400 Z500 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
    ;M574 Z1 S2

    ; BLTouch - Heaters
    ;M307 H3 A-1 C-1 D-1 ; Disable the 7th Heater to free up PWM channel 5 on the Duex board.

    ; Z-Probe
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F100 T2000 ; set Z probe type to bltouch and the dive height + speeds
    G31 X20 Y0 Z3.3 P25 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment
    M557 X50:350 Y50:350 S50 ; 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
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    M307 H0 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit
    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
    M143 H1 S280 ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit
    M308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp
    M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2
    M143 H2 S280 ; set temperature limit for heater 2 to 280C
    M307 H2 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit

    ; 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:2 T45 ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"fan2" Q500 ; create fan 2 on pin fan2 and set its frequency
    M106 P2 S1 H1:2 T45 ; set fan 2 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
    M563 P1 H2 F0 ; 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

    ; 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



  • the
    Firmware : 3.0 (2020-01-03b3)
    WiFi Server Version: 1.23
    Web Interface: 1.22.6



  • Thanks to this thread I've made progress getting my BLtouch to work. I do have a few questions still.

    Basic info:
    Duet WiFi 1.02 running RRF3
    BLtouch V3.1

    The BLtouch is wired as follows:
    White Wire (Z signal) = Z Probe IN
    Orange (Servo Sig) = Heater3
    Red (5v) = +5V
    Brown (GND) = GND

    Questions (I have googled, but can't find clear answers anywhere):

    • When I start the printer, the BLtouch performs a self test. This results in the pin being up, and the red led on the BLtouch being on. Is that correct?
    • When I do a M280 P0 S10 the pin drops. The red led is off, but a blue led is on now. Is that correct?
    • M280 P0 S10 I1 gives the same result. Is it supposed to work with and without the I1 parameter?
    • M280 P0 S90 retracts the pin, the red led is on as well as the blue led. Is that correct?

    Thanks in advance!



  • @LowLander said in BLtouch with Reprap Firmware 3.0:

    M280 P0 S10 I1

    https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview#Section_M280
    You can remove the I1
    I have the same optical signalling, so everything looks fine...



  • @dc42

    The line is there in config

    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch


  • administrators

    @Adamfilip said in BLtouch with Reprap Firmware 3.0:

    @dc42

    The line is there in config

    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch

    Thanks, somehow I missed that.



  • @DIY-O-Sphere thanks for confirming that.


Log in to reply