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

    BLTouch driving me bonkers...

    Scheduled Pinned Locked Moved Solved
    General Discussion
    2
    3
    255
    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.
    • SupraGuyundefined
      SupraGuy
      last edited by SupraGuy

      Hey, long time, no post...

      Okay, so I'm using a Duet 3 6HC mainboard, and decided for SOME reason to use a BLTouch instead of the IR sensor that I could have scavenged from a defunct printer. At this point, the IR sensor is starting to look pretty good.....

      I have a CoreXY printer with 3 Z motors. Most things are working acceptably, except getting that Z=0. My BLTouch is attached to io4. I read that io4 or io7 work, not sure why others say they don't.

      If I home everything (Homing Z moves to maximum position, trying to use sensorless homing there because it's just a rough guess. I'm having some trouble with that, too, but it doesn't matter because at 25% current (which does seem to be working) it's not doing any harm.

      First, it doesn't seem to care what the offset is, G30 probes in whatever position the head is in, even if I specify X and Y coordinates. (the probe is 36mm "in front" of the print head, X=0, Y=-36.) I would expect that the probe would move the print head to the Y position + 36mm to probe, but that's not too important...

      If I just use G30, the BLTouch deploys, and the bed is probed, and the zero is adjusted. and the Z is lifted

      If I use G30 S-1 the BLTouch is deployed, the bed is probed, and I'm told that it triggers at the 2.5mm (Which is what I told the firmware the Z offset is, so that means that the first adjustment worked.

      If I try to set a point with G30 P0 the probe does not deploy and the bed is not probed, and I get no error.

      If I manually deploy the probe with M280 P0 S10 (The automatically generated contents of deployprobe.g from the configuration tool) the probe deploys (And if the height is too low, the BLTouch starts flashing error.) G30 P0 still does not probe the bed (even if there is no error) and does not report an error. G30 still works as expected.

      So... I'm stymied.

      Okay, relevant details:

      M115
      FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.4.5 ELECTRONICS: Duet 3 MB6HC v1.01 FIRMWARE_DATE: 2022-11-30 19:35:23
      

      The BLTouch is connected to io4, with +5V to vin, io4.out connected to the servo pin, GND to both the servo ground and the IO ground, and the stop input connected to io4.out (5 wires to 4 pins.)

      config.g:

      ; Configuration file for Duet 3 MB 6HC (firmware version 3.3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.15 on Tue Feb 21 2023 20:05:02 GMT-0800 (Pacific Standard Time)
      
      ; General preferences
      G90                                          ; send absolute coordinates...
      M83                                          ; ...but relative extruder moves
      M550 P"DMG3D03"                              ; set printer name
      M669 K1                                      ; select CoreXY mode
      
      ; Network
      M552 P0.0.0.0 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.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 S1                                 ; physical drive 0.3 goes forwards
      M569 P0.4 S1                                 ; physical drive 0.4 goes forwards
      M569 P0.5 S1                                 ; physical drive 0.5 goes forwards
      M584 X0.0 Y0.1 Z0.2:0.3:0.4 E0.5             ; set drive mapping
      M350 X16 Y16 Z16 E16 I1                      ; configure microstepping with interpolation
      M92 X100.00 Y100.00 Z100.00 E395.45          ; set steps per mm
      M566 X900.00 Y900.00 Z60.00 E120.00          ; set maximum instantaneous speed changes (mm/min)
      M203 X9000.00 Y9000.00 Z3000.00 E2700.00     ; set maximum speeds (mm/min)
      M201 X3000.00 Y3000.00 Z1500.00 E3000.00     ; set accelerations (mm/s^2)
      M906 X800 Y800 Z800 E800 I30                 ; set motor currents (mA) and motor idle factor in per cent
      M84 S60                                      ; Set idle timeout
      
      ; Axis Limits
      M208 X-15 Y0 Z0 S1                           ; set axis minima
      M208 X235 Y250 Z243 S0                       ; set axis maxima
      M671 X-30.3:276.3:222.5 Y34.5:34.5:307.8 S5  ; Motor positions: -30.3,34.5; 276.3,34.5; 222.5,307.8
      
      ; Endstops
      M574 X1 S1 P"^io0.in"                        ; configure switch-type (e.g. microswitch) endstop for low end on X via pin ^io0.in
      M574 Y1 S1 P"^io1.in"                        ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ^io1.in
      M574 Z2 S3                                   ; configure sensorless endstop for high end on Z
      
      ; Z-Probe
      M950 S0 C"io4.out"                           ; create servo pin 0 for BLTouch
      M558 P9 C"io4.in" H5 F120 T6000              ; set Z probe type to bltouch and the dive height + speeds
      G31 P500 X0 Y-36 Z2.5                        ; set Z probe trigger value, offset and trigger height
      M557 X15:195 Y15:195 S20                     ; define mesh grid
      
      ; 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 B0 S1.00                             ; disable bang-bang mode for the bed heater and set PWM limit
      M307 H0 R0.155 D15.47                        ; set PID parameters for heated bed
      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 B4138 ; 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 S280                                 ; set temperature limit for heater 1 to 280C
      
      ; Fans
      M950 F0 C"out7" Q500                         ; create fan 0 on pin out7 and set its frequency
      M106 P0 S0 H1 T45                            ; set fan 0 value. Thermostatic control is turned on
      M950 F1 C"out8" Q500                         ; create fan 1 on pin out8 and set its frequency
      M106 P1 S1 H-1                               ; set fan 1 value. Thermostatic control is turned off
      
      ; Tools
      M563 P0 S"Hemera" D0 H1 F0:1                 ; 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
      T0                                           ; select first tool
      

      And in case someone can tell me why this doesn't work...
      homez.g:

      ; homez.g
      ; called to home the Z axis
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.15 on Tue Feb 21 2023 20:05:02 GMT-0800 (Pacific Standard Time)
      G91                         ; relative positioning
      M913 Z25:25:25              ; set motor current to 25%
      M915 P0.2:0.3:0.4 S3 F0 R0  ; configure stall detection 
      M574 Z2 S3                  ; Set endstop configuration to stall detection
      G1 H1 Z250 F2400            ; move Z up until the endstop is triggered
      G92 Z250                    ; set Z position to axis maximum (you may want to adjust this)
      M913 Z100:100:100           ; restore motor current
      
      ; Uncomment the following lines to lift Z after probing
      ;G91                         ; relative positioning
      ;G1 Z5 F100                  ; lift Z relative to current position
      G90                         ; absolute positioning
      

      Any help appreciated...

      Edit: G29 works...

      Lead screw driven printer, powered by Duet 2 Wifi
      MPCNC powered by Duet 2 Wifi
      CoreXY printer driven by Duet 3 6HC
      LowRider CNC powered by Duet 2 Wifi

      droftartsundefined 1 Reply Last reply Reply Quote 0
      • droftartsundefined
        droftarts administrators @SupraGuy
        last edited by

        @SupraGuy it looks like your probe is working fine. I think you are misunderstanding how G30 with a P parameter works. See https://docs.duet3d.com/en/User_manual/Reference/Gcodes#description

        G30 with a P parameter
        This is used for operations that are performed after the printer has been homed and that require the height error at more than one probe point to be measured.

        G30 P… is usually used in a macro to level a bed with multiple independent motors. For a guide to bed plane levelling with three Z motors see https://docs.duet3d.com/User_manual/Connecting_hardware/Z_probe_auto_levelling

        Ian

        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

        1 Reply Last reply Reply Quote 1
        • SupraGuyundefined
          SupraGuy
          last edited by

          Okay, I've got it sorted...

          What was confusing me is that I was trying to use it the G30 P0 ... set the exact same way as I do on my printer that has the DC42 IR probe, which doesn't deploy. It does work the way that I was using it, though I can see from the "proper" use of it that I am doing it a bit weird, by manually accounting for the probe offset.

          @droftarts said in BLTouch driving me bonkers...:

          usually used in a macro to level a bed with multiple independent motors.

          Which is exactly what I wanted to use it for, as I have 3 independent Z motors (On drives 2, 3, and 4)

          Took me a while to get back to this, but it's all good now.

          Lead screw driven printer, powered by Duet 2 Wifi
          MPCNC powered by Duet 2 Wifi
          CoreXY printer driven by Duet 3 6HC
          LowRider CNC powered by Duet 2 Wifi

          1 Reply Last reply Reply Quote 1
          • droftartsundefined droftarts marked this topic as a question
          • droftartsundefined droftarts has marked this topic as solved
          • First post
            Last post
          Unless otherwise noted, all forum content is licensed under CC-BY-SA