Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Need help getting BLTouch Working

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    3
    10
    1.1k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • cyoungundefined
      cyoung
      last edited by cyoung

      I FINALLY got some mounting hardware printed to be able to install the BLTouch sensor on my printer. I've got it wired up and connected to my DuetWifi (duetwifi 1.0, firmware version 1.19). I think I have everything wired correctly and that my problem lies in my config.

      If I send command "M280 P3 S10 I1" the probe deploys.
      "M280 P3 S90 I1" - probe retracts
      "M280 P3 S120 I1" - probe deploys and retracts rapidly, roughly 4 times/second. If I make the probe touch the bed while it is pulsing in and out, it will eventually stay retracted and the probe goes into error mode (red light flashing).
      "M280 P3 S160 I1" - resets error state

      The Z-probe value on the web interface stays at 0 at all times EXCEPT when i get the bed close enough that when the probe deploys, it must trigger, Z-probe value goes to 1000, then the probe goes into error state.

      Here is my config.g file

      ; Configuration file for Duet WiFi (firmware version 1.17 to 1.19)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool on Mon Jul 09 2018 14:02:55 GMT-0600 (Mountain Daylight Time)

      ; General preferences
      G90 ; Send absolute coordinates...
      M83 ; ...but relative extruder moves
      M555 P0 ; Set firmware compatibility to look like native output

      ; Network
      M550 PFT5 ; Set machine name
      M551 P***** ; 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 ; Drive 0 goes forwards
      M569 P1 S0 ; Drive 1 goes forwards
      M569 P2 S0 ; Drive 2 goes backwards
      M569 P3 S1 ; Drive 3 goes forwards
      M350 X256 Y256 Z256 E16 I1 ; Configure microstepping without interpolation
      M92 X1280 Y1280 Z6400 E416 ; Set steps per mm
      M566 X900 Y900 Z12 E120 ; Set maximum instantaneous speed changes (mm/min)
      M203 X6000 Y6000 Z1500 E1200 ; Set maximum speeds (mm/min)
      M201 X500 Y500 Z250 E250 ; Set accelerations (mm/s^2)
      M906 X1000 Y1000 Z1200 E1000 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 X300 Y300 Z400 S0 ; Set axis maxima

      ; Endstops
      M574 X2 Y2 Z1 S0 ; Set active low endstops
      ;M574 Y2 S0 ; Set active high endstops

      ; Z-Probe
      M307 H3 A-1 C-1 D-1 ; disable heater 3, BLTouch - servo pulse on heater 3 pin (expansion 😎
      M558 P5 H5 F100 T2000 ; Type 5 for BLTouch (Normally closed switch on Z-probe inputs)
      G31 X20 Y20 Z2 P25 ; Z=trigger height, P=trigger value, not needed for contact probe, X/Y distance from nozzle

      ;M558 P0 H5 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
      ;M557 X15:285 Y15:285 S20 ; Define mesh grid

      ; Heaters
      M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
      M143 H0 S220 ; Set temperature limit for heater 0 to 220C
      M305 P1 X200 ; Set thermistor + ADC parameters for heater 1
      M143 H1 S350 ; Set temperature limit for heater 1 to 350C

      ; Fans
      M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
      M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
      M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

      ; Tools
      M563 P0 D0 H1 ; 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 configured

      Here is my homeall.g file
      ; homeall.g
      ; called to home all axes
      ;
      ; generated by RepRapFirmware Configuration Tool on Mon Jul 09 2018 14:02:55 GMT-0600 (Mountain Daylight Time)
      G91 ; relative positioning
      G1 Z5 F6000 S2 ; lift Z relative to current position
      G1 S1 X305 Y305 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
      G1 X-5 Y-5 F6000 ; go back a few mm
      G1 S1 X305 Y305 F360 ; move slowly to X and Y axis endstops once more (second pass)
      G90 ; absolute positioning
      G91 ; relative mode
      G1 Z-405 S1 F3000 ; move Z down until the switch triggers
      G1 Z+5 F2000 ; move away from endstop a few mm
      G1 Z-10 F500 ; move Z down until switch triggers (second pass)
      G90 ; back to absolute mode
      G92 Z0.15 S2 ; tell the firmware that we are at Z=0.15mm

      And bed.g file
      ;** BLTouch
      ;
      G28 ; home all - calls sys/homeall.g
      G91 ; relative mode
      G1 Z5 F2000 ; move bed down a bit for clearance
      G90 ; absolute mode
      M401 ; call sys/deployprobe.g
      M557 X20:270 Y20:270 S50 ; probe every 50mm from 20 to 270 in X and Y (max 225 points!)
      G29 ; run auto bed mesh level
      M402 ; call sys/retractprobe.g
      G1 X10 Y10 Z10 F5000 ; back to safe position out of the way

      I have created deployprobe.g and retractprobe.g and they have the correct command in them.

      Can anyone help me get this figured out?

      1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

        Give this a look. https://duet3d.dozuki.com/Wiki/BLTouch_Troubleshooting

        And this https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_BLTouch

        May want to update the firmware. There have been some improvements to the BLTouch implementation since your version. Mainly there is a dedicated probe type for it now. M558 P9

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • cyoungundefined
          cyoung
          last edited by

          Upgraded to latest firmware and edited my config file to use P9 instead of P5. Also went through the trouble shooting and tried everything that seemed relevant. Still having problems.

          1 Reply Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator
            last edited by

            What problem exactly?

            For your homeall you'll have to change from using a G1 S1 Z move to using a G30 to probe the bed.

            Z-Bot CoreXY Build | Thingiverse Profile

            1 Reply Last reply Reply Quote 0
            • cyoungundefined
              cyoung
              last edited by

              In my homez.g file, which if I understand correctly, is what gets run if you home only the z axis, this is what I have.

              ; homez.g
              ; called to home the Z axis
              G1 Z10 F200 ; Lower bed.
              G4 P500 ; Dwell for 500ms - to ensure bed is down
              M913 Z70 ; reduce stepper current to xx%
              G90 ; Absolute positioning
              G1 X140 Y140 F6000 ; Go to first bed probe point and home the Z axis
              M401 ; Lower Z probe (BLTouch)
              G30 ; Calibrate Z-axis
              M402 ; Retract Probe
              M913 Z100 ; set stepper current to normal
              G1 Z10 F2000 ; bed to 10mm

              When I push the Z home button, nothing happens. No axis move, probe doesnt do anything...nothing. No errors either.

              my homeall.g file still has the settings to use the z endstop switch. I was thinking if I got homez.g to work, I could just copy/paste that text into the homeall.g file.

              I have some other things I might need help with, but this seems like a good place to start.

              1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators
                last edited by

                You need to add the S2 parameter to the first G1 Z command in that file, unless you have M564 H0 in config.g to allow axis movement before homing.

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                cyoungundefined 1 Reply Last reply Reply Quote 0
                • cyoungundefined
                  cyoung @dc42
                  last edited by

                  @dc42 said in Need help getting BLTouch Working:

                  You need to add the S2 parameter to the first G1 Z command in that file, unless you have M564 H0 in config.g to allow axis movement before homing.

                  I added the S2 parameter. Now when homez.g is run, the bed moves away from the print nozzle about 10mm then stops. Nothing else happens.

                  1 Reply Last reply Reply Quote 0
                  • dc42undefined
                    dc42 administrators
                    last edited by

                    Are there any error messages produced when you try to home Z?

                    Did you home X and Y before trying to home Z? You must home X and Y before trying to home Z using a Z probe.

                    Duet WiFi hardware designer and firmware engineer
                    Please do not ask me for Duet support via PM or email, use the forum
                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                    1 Reply Last reply Reply Quote 0
                    • cyoungundefined
                      cyoung
                      last edited by cyoung

                      It looks like I had conflicting homing instructions between config.g and homez.g. Once I got the S2 parameter every that it needed to be, it seems to be working. I think I still had the z axis set to use an endstop switch in the config file. Here are my config and homez files now.

                      config.g
                      ; Configuration file for Duet WiFi (firmware version 1.17 to 1.19)
                      ; executed by the firmware on start-up
                      ;
                      ; generated by RepRapFirmware Configuration Tool on Mon Jul 09 2018 14:02:55 GMT-0600 (Mountain Daylight Time)

                      ; General preferences
                      G90 ; Send absolute coordinates...
                      M83 ; ...but relative extruder moves
                      M555 P0 ; Set firmware compatibility to look like native output

                      ; Network
                      M550 PFT5 ; Set machine name

                      M586 P0 S1 ; Enable HTTP
                      M586 P1 S0 ; Disable FTP
                      M586 P2 S0 ; Disable Telnet

                      ; Drives
                      M569 P0 S1 ; Drive 0 goes forwards
                      M569 P1 S0 ; Drive 1 goes forwards
                      M569 P2 S0 ; Drive 2 goes backwards
                      M569 P3 S1 ; Drive 3 goes forwards
                      M350 X256 Y256 Z256 E16 I1 ; Configure microstepping without interpolation
                      M92 X1280 Y1280 Z6400 E416 ; Set steps per mm
                      M566 X900 Y900 Z12 E120 ; Set maximum instantaneous speed changes (mm/min)
                      M203 X6000 Y6000 Z1500 E1200 ; Set maximum speeds (mm/min)
                      M201 X500 Y500 Z250 E250 ; Set accelerations (mm/s^2)
                      M906 X1000 Y1000 Z1200 E1000 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 X300 Y300 Z400 S0 ; Set axis maxima

                      ; Endstops
                      M574 X2 Y2 S0 ; Set active low endstops
                      ;M574 Z1 S2 ; Set active high endstops

                      ; Z-Probe
                      M307 H3 A-1 C-1 D-1 ; disable heater 3, BLTouch - servo pulse on heater 3 pin (expansion 😎
                      M558 P9 F100 H5 R0.2 T6000 A5 B1 ; Type 9 for BLTouch (Normally closed switch on Z-probe inputs)
                      G31 X20 Y20 Z2 P25 ; Z=trigger height, P=trigger value, not needed for contact probe, X/Y distance from nozzle
                      M558 P9 H5 R0.2 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
                      M557 X15:285 Y15:285 S20 ; Define mesh grid

                      ; Heaters
                      M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
                      M143 H0 S220 ; Set temperature limit for heater 0 to 220C
                      M305 P1 X200 ; Set thermistor + ADC parameters for heater 1
                      M143 H1 S350 ; Set temperature limit for heater 1 to 350C

                      ; Fans
                      M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
                      M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
                      M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

                      ; Tools
                      M563 P0 D0 H1 ; 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 configured
                      G29 S1 ;Load stored bed height map

                      HomeZ
                      ; homez.g
                      ; called to home the Z axis
                      G1 Z10 F200 S2 ; Lower bed.
                      G4 P500 ; Dwell for 500ms - to ensure bed is down
                      M913 Z70 ; reduce stepper current to xx%
                      G90 ; Absolute positioning
                      G1 X140 Y140 F6000 ; Go to first bed probe point and home the Z axis
                      M401 ; Lower Z probe (BLTouch)
                      G30 ; Calibrate Z-axis
                      M402 ; Retract Probe
                      M913 Z100 ; set stepper current to normal
                      G1 Z10 F2000 ; bed to 10mm

                      If these can be tweaked or improved, Im all ears.

                      Also, thanks for the help thus far.

                      1 Reply Last reply Reply Quote 0
                      • Phaedruxundefined
                        Phaedrux Moderator
                        last edited by Phaedrux

                        It looks like you have M558 in your config twice.

                        You don't need to use M401 and M402 before the G30. The duet will deploy and retract as needed.

                        You don't need to add dwell commands the motion should be complete before the next move but if you want to ensure everything has moved before going on to the next command you can use M400 to clear the movement buffer before proceeding.

                        Not related to the probe, but I noticed your microsteps are set to 256 for X Y and Z which is very high. I'd be curious if you get any hiccups with them set so high. 16x with interpolation is probably a better bet for the motion axis. But I don't know the rest of your setup. The one axis where higher microstepping might help is the extruder but you have that set to 16.

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA