BLTouch Only Descends Halfway on G29/G32

  • Hello Duet3D Forum

    We're a student group working on a large 3D printer as part of an engineering capstone project. We've got just about everything working, but we're encountering an odd behavior with a BLTouch on a Duet WiFi. We are currently controlling the printer via USB and Printrun as we can't connect the Duet via the school WiFi (it requires a log in).

    We have a BLTouch connected to the Heater 3 pin of the expansion port, and the ZProbe pins.

    The probe works correctly with a G28 Z move. However on a G29 we get some oddness. It will probe the first point correctly, however when it moves to the second point the probe will only descend about halfway, then a "Z probe not triggered on probing move" error is reported. An image is shown below to illustrate:

  • Can you post your config.g, homez.g, homeall.g?

    Did you follow this?
    and this?

    You can circumvent requiring the school wifi by setting it up in access point mode where you then connect your laptop/phone/whatever to a wifi network created by the Duet and can access the DWC that way. That will probably make your lives a bit easier.

  • I have tried to get the Duet direct method working, but must be doing the code wrong. With our deadline looming it was shelved for later. We're not using home all at the moment as what we're printing is a lot smaller than our total build volume (plus we haven't wired the X & Y endstops yet).

    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool on Sat Mar 31 2018 08:48:41 GMT-0400 (Eastern Daylight Time)
    ; General preferences
    G90                                     ; Send absolute coordinates...
    M83                                     ; ...but relative extruder moves
    M555 P1                                 ; Set firmware compatibility to look like RepRapFirmare
    ; Network
    ; Drives
    M569 P0 S1                              ; Drive 0 goes forwards
    M569 P1 S1                              ; Drive 1 goes forwards
    M569 P2 S1                              ; Drive 2 goes forwards
    M569 P3 S0                             ; Drive 3 goes forwards
    M569 P5 S1 R0 T2.5:2.5:5:0				;Settings for external Z driver
    M584 X0 Y1 Z5 E3                        ; Apply custom drive mapping
    M350 X16 Y16 Z16 E16 I1                 ; Configure microstepping with interpolation
    M92 X100 Y100 Z3909.340 E645             ; Set steps per mm
    M566 X1800 Y1800 Z30 E120               ; Set maximum instantaneous speed changes (mm/min)
    M203 X30000 Y30000 Z300 E6000           ; Set maximum speeds (mm/min)
    M201 X4500 Y4500 Z250 E250              ; Set accelerations (mm/s^2)
    M906 X800 Y2000 Z100 E800 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 X1400 Y1400 Z1800 S0               ; Set axis maxima
    ; Endstops
    ;M574 X1 Y2 S3                           ; Set endstops controlled by motor load detection
    M574 X0 Y0
    ;M915 X Y S5 R0							; Set motor drivers for stall detection
    ; Z-Probe
    M307 H3 A-1 C-1 D-1						; Disable Heater 3 to be used for probe
    M307 H2 A-1 C-1 D-1
    M574 Z1 S2                              ; Set endstops controlled by probe
    M558 P9 H20 F300 T6000                   ; Set Z probe type to switch and the dive height + speeds
    G31 P250 X0 Y0 Z-0.15                     ; Set Z probe trigger value, offset and trigger height
    M557 X0:1000 Y0:1000 S100               ; Define mesh grid
    ; Heaters
    M305 P0 X100          ; Set thermistor + ADC parameters for heater 0
    M143 H0 S100                            ; Set temperature limit for heater 0 to 100C
    M305 P1 T98640 B4633 C9.486166e-8 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                            ; Set temperature limit for heater 1 to 280C
    ; Fans
    M106 P0 S1 I0 F500 H1 T45               ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P1 S1 I0 F500 H-1                  ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S1 I0 F500 H-1                  ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off
    ; Tools
    M563 P0 D0 H1                           ; Define tool 0
    G10 P0 X22.5 Y-24 Z0                  ; Set tool 0 axis offsets
    G10 P0 R0 S0                            ; Set initial tool 0 active and standby temperatures to 0C
    ; Automatic saving after power loss is not enabled
    ; Custom settings are not configured
    ; homez.g
    ; called to home the Z axis
    ; generated by RepRapFirmware Configuration Tool on Sat Mar 31 2018 08:48:41 GMT-0400 (Eastern Daylight Time)
    ;G91                ; relative positioning
    ;G1 Z5 F6000 S2     ; lift Z relative to current position
    G1 X0 Y0 F9000;
    ;G1 S1 Z-1805 F1800 ; move Z down until the switch triggers
    ;G92 Z0.2           ; set Z position to trigger height
    ; Uncomment the following lines to lift Z after probing
    ;G91               ; relative positioning
    G1 Z5 F100 S2     ; lift Z relative to current position
    ;G90               ; absolute positioning

  • What command are you sending in the deployprobe.g and retractprobe.g files?

    Does the probe respond when you send it the commands to deploy, retract, self-test, and release alarm?

    If you set it to run self-test does it continue dropping and raising the pin non-stop until you manually trigger it or does it self-trigger? If it self-triggers you might have a sticky pin. In which case the pin can be removed by removing the set screw on the top of the unit.

    Your dive height is a little high and fast. Maybe try M558 H5 F100. And in the G31 command try P25 instead of P250.

    Here's how I have my BLTouch configured on my CoreXY

    [c]M574 X1 Y2 S0 ; Set active-low switches, low end endstop for X, high end endstop for Y, add Z2 for Zmax
    M574 Z1 S2 ; Use zprobe and home to min
    M307 H3 A-1 C-1 D-1 ; Unbind heater 3 pins for probe use.
    M558 P9 X0 Y0 Z1 H5 F100 T4000 A10 R0.5 S0.008 ; P9 for BLTouch, dive height 5mm, probe at 100mm/s, travel 4000mm/s, up to 10 probes, pause 0.5s
    G31 X-42.5 Y-2.2 Z1.8 P25 ; probe offset from nozzle, p is trigger value, set low for bltouch, set Z=0 for testing
    ; (z height is 1.8006 after calibration March 29th)
    M557 X20:310 Y2:282 S14 ; Define mesh grid
    M376 H20 ; Taper off compensation over 20mm of height
    M375 ; Load heightmap.csv[/c]

    For access point mode use M552 S2 and check your wifi networks for the Duet.

  • I've tried your settings but still get this weird behaviour. Video:

  • Your Z speeds are pretty slow. What type of mechanics are you using?

    I also just noticed that your trigger height is negative. How did you calibrate that?

  • Tried changing the Z trigger height to positive. Might have been a mistake. It did not solve the issue.

    For the Z axis we are using M12 threaded rods. Our gantry is about 1.5mx1.5m and is carrying about 10kg of weight. We can't go much faster or else we get vibration build up. The Z axis is about 2m tall. Future work is to upgrade them to lead screws but we were limited by cost and lead time.

  • Sounds like a very cool project. Hopefully you'll share the completed build in the example forum.

    As for your homing issue, can you follow the steps here?

    Is the BLTouch wiring running alongside any untwisted stepper wiring? Do you have a heater running during the probe? Can you test the probe with the wiring separated from the rest of the bundle? I'm starting to suspect possible interference.

  • I'll give that a try tomorrow. It is running as part of a bundle of wires which contains multiple steppers, a heating element, and a fan. The steppers and heater are in shielded wire, but the lengths are long enough we could even get interference from fluorescent lights (which I've experienced with telephone wires).

    Maybe I'll try a small capacitor and playing with the trigger value. We have been testing with the heaters off for now.

    What confuses me is that M401 and M402 both work. G28 Z works. But when we go to G29 it doesn't behave correctly. We even noticed this when we swapped the BLTouch for an inductive sensor I had on hand.

    I'll also be sure to put the build up on the forum. We're focused on finishing the project right now, but afterwards will be hitting up some of the various 3D printer sites and communities.

  • Further settings for the access point mode by the way.

    M589: Configure access point parameters

    S"ccc" The SSID that the WiFi interface should use when it is commanded to run as an access point
    P"ccc" The WiFi password
    Inn.nn.nn.nn The IP address to use
    Cnn The WiFi channel to use (optional)
    Note: WPA2 security will be used by default.

  • Could you actually provide a more detailed example of M589? I tried doing that but kept getting an error stating incorrect parameters.

  • Try adding this to your config.g. Remove your existing M552 entry or put it after it.

    M550 PBigPrinter ; give the printer a name to show up in URL http://BigPrinter.local
    M552 S0 ; disable wifi so we can add a network
    M587 S"BigPrinterWifi" P"PRINT" I192.168.0.1 ; create entry in remembered networks for access point SSID
    M552 P"BigPrinterWifi" S2 . ; Specify SSID and set access point mode
    M589 S"BigPrinterWiFi" P"PRINT" I192.168.0.1 . ; configure access point parameters

    Now on your device find wifi network called BigPrinterWifi and connect using password PRINT.
    Then in your browser go to http://BigPrinter.local or

    Hopefully that would load up the DWC.

  • administrators

    It's better to put those commands in a macro and run that, because the network module remains disabled until config.g has completed.

  • Is there a way to trigger that macro to run on boot?

  • administrators

    It should work if you set up a trigger on an unused endstop (e.g. E7) using M581, then use M582 to sample it. Running the macro will be deferred until after config.g has completed. Use a G4 S5 command at the start of the macro, to give the network module time to start up.

  • Thank you.

    Do you have any thoughts to the issue above relating to probing? It's a very odd situation and I have been unable to find others with the same issue even.

  • administrators

    It's an odd problem. Are you certain that your Z axis can do 300mm/sec speed and 250mm/sec^2 acceleration without skipping steps, both up and down? My Cartesian printer has 4000 steps/mm, almost the same as yours does, and I have to limit the speed to 250 and the acceleration to 20.

    Try reducing both the M203 Z parameter and M558 F parameter to 100, and the M201 Z parameter to 20, and see if that makes a difference.

  • I'd be very surprised if it was skipping steps. The Z axis is driven by two Nema 23's on an external high power driver (DM860AC). We have run the Z axis on big moves vertically and it does them correctly at 300 mm/min. We have run the motors to the point where they start to skip and do not see/hear skipping steps. We have run the Z axis up to 500 mm/min but slowed them down due to vibrations.

    It will also probe correctly on the first attempt. Even if we set M558 A >1 it will probe it once correctly, then fail to probe close to the same distance on the second attempt. This can be seen in the linked video above.

  • administrators

    Nevertheless, your Z acceleration looks very large to me, given the high steps/mm. Does the bed move in your printer, or the gantry? Have you tried moving Z up and down repeatedly by 10mm @ 300mm/min, and checking that the Z height doesn't drift?

    Another thing to try is placing the probe about 10mm above the bed, then repeatedly execute G30 S-1 and G1 Z10 F300, to see whether you get the same problem.

    Also make sure you don't have any M586 axis skew compensation configured in config.g.

  • It is a moving gantry. Our bed weighs about 110kg and consists of a metal sheet on a galvanized steel pallet. Moving the bed was not feasible.

    The Z axis consists of 2 threaded rods but the motion itself is on precision linear rails.

    I'll try turning the Z acceleration down and report back with the results tomorrow.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.