BLTouch v3.1 not lighting up on Duet 3 6HC

  • Brief:
    I've been converting a Creality CR-X Pro to a DuetPi build (using an rPi4 and Duet 3 6HC controller) for the last few weeks (a combination of limited time and prerequisite knowledge exacerbated the timeframe), and I've run into a couple of snags that I haven't quite figured out, namely the BLTouch doesn't appear to be receiving power.

    I've gone through the forum and found a similar situation with another user that had the same model BLTouch, but using a Duet 2 Wifi (Link Here) where the most recent speculation was a lack of power being supplied to the system. From my embarrassingly limited knowledge of what I'm actually doing, I've attempted to replicate what I've been able to source from here, BLTouch's manual for v3.1, and BeTrue3D Blog Posts.

    Attempted Trouble Shooting:

    1. Improper Wiring of BLtouch to the Duet 3 port IO_7

    • Following This Guide: Connecting a Z-probe/BLTouch/Duet 3:
      Signal wire (White) to IO_7 IN,
      BLTouch Grounding Wires (Black and Blue) to IO_7 GND,
      BLTouch Control (Yellow) to IO_7 OUT,
      and BLTouch +5V (Red) to IO_7 +5V
      Wiring Confirmation 1.jpg
      I Soldered the Grounding Wires to a 3rd wire segment to make the GND connection since my amazing crimping skills and equipment are only amazing in Name. It's possible that this is preventing a closed loop from occurring on the board, but a Continuity check seems to dispute this, along with my first iteration of this connection having the two wires twisted and crimped to the same terminal with no 3rd wire resulting in the same issue.
      BLTouch to Extention Connection.jpg
      The CR-X Pro has this connection point that is taped to the Ribbon cable feeding up from IO_7. The Male end of the Connection feeds to the BLTouch itself: BLTouch Wiring.jpg

    2. Confirm Continuity at all Connection Points

    • Continuity Checks on all involved wires indicate that the wiring is accurate based on the Wiring Diagram for the Duet 3 6HC

    3. +5V line isn't making contact with IO_7 +5V pin

    • I saw this mentioned in the previous post that I linked above; I'm not exactly sure how I would go about checking to confirm that to be the case. I suspected that may have been the case, so I clipped, stripped, and recrimped the connection in addition to a little solder material to ensure a solid connection with the crimp had been made, along with (hopefully) preventing a bad terminal to pin connection from occuring.

    4. BLTouch damaged/shorted out in the transition

    • I ended up harvesting cable that was used for the LCD panel on the CR-X Pro to rig up a connection to the BLTouch to see if the problem was with the Probe. To my surprise, the BLTouch is still operational, which would indicate the issue residing in the connection between the BLTouch and Duet 3:

    Here's the Config.g:

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Wed Sep 02 2020 14:53:32 GMT-0400 (Eastern Daylight Time)
    ; General preferences
    G90                                                       ; send absolute coordinates...
    M83                                                       ; ...but relative extruder moves
    M550 P"Duet 3"                                            ; set printer name
    ; Drives
    M569 P0.0 S1                                              ; physical drive 0.0 goes forwards ---- X Motor
    M569 P0.1 S1                                              ; physical drive 0.1 goes forwards ---- Y Motor
    M569 P0.2 S1                                              ; physical drive 0.2 goes forwards ---- Z0 Motor (Left)
    M569 P0.3 S1                                              ; physical drive 0.3 goes forwards ---- Z1 Motor (Right)
    M569 P0.4 S1                                              ; physical drive 0.4 goes forwards ---- E0 Motor (Left)
    M569 P0.5 S1                                              ; physical drive 0.5 goes forwards ---- E1 Motor (Right)
    M584 X0.0 Y0.1 Z0.2:0.3 E0.4:0.5					  	  ; set drive mapping
    M350 X16 Y16 Z16 E16:16 I1                                ; configure microstepping with interpolation
    M92 X77.37 Y82.34 Z396.43:396.43 E140.00:140.00           ; set steps per mm
    M566 X900.00 Y900.00 Z12.00:12.00 E120.00:120.00          ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z300.00:300.00 E1500.00:1500.00  ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z100.00:100.00 E1000.00:1000.00      ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800:800 E800:800 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 X1 S1 P""                                      ; configure active-high endstop for low end on X via pin
    M574 Y1 S1 P""                                      ; configure active-high endstop for low end on Y via pin
    ; Z-Probe
    M950 S0 C"io7.out"                                        ; create servo pin 0 for BLTouch
    M558 P9 C"" H10 F120 T3600                          ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X45 Y5 Z3.57                                     ; set Z probe trigger value, offset and trigger height
    M557 X50:290 Y20:280 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 nozzle heater output on out0 and map it to sensor 0
    M307 H0 B0 S1.00                                          ; disable bang-bang mode for heater and set PWM limit
    M308 S1 P"temp1" Y"thermistor" T100000 B4138              ; configure sensor 1 as thermistor on pin temp1
    M950 H1 C"out1" T1                                        ; create bed heater output on out1 and map it to sensor 1
    M307 H1 B0 S1.00                                          ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H1                                                   ; map heated bed to heater 1
    M143 H1 S100                                              ; set temperature limit for heater 1 to 100C
    ; Fans
    M950 F0 C"out7" Q500                                      ; create fan 0 on pin out7 and set its frequency
    M106 P0 S1 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 H1 T45                                         ; set fan 1 value. Thermostatic control is turned on
    ; Tools
    M563 P0 S"Left Extruder (E0)" D0.0 H0 F0:1 				  ; Define tool 0 as "Nozzle 0" using Driver 0 Heater 0 and Fans 0 and 1
    G10 P0 S0 R0 X0 Y0 										  ; Set tool 0 operating and standby temperatures
    M307 H0						 							  ; PID tuning settings for H1
    M563 P1 S"Right Extruder (E1)" D0.5 H0 F0:1 			  ; Define tool 1
    G10 P1 S0 R0 X0 Y0 										  ; Set tool 1 operating and standby temperatures
    ; Custom settings are not defined
    ; Miscellaneous
    M501                                                      ; load saved parameters from non-volatile memory
    T0                                                        ; select first tool

    And the Homeall.g:

    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Wed Sep 02 2020 18:52:45 GMT-0400 (Eastern Daylight Time)
    G91                     ; relative positioning
    G1 S2 Z5 F6000          ; lift Z relative to current position
    G1 S1 X300 Y300 F1800   ; move quickly to X or Y endstop and stop there (first pass)
    G1 S1 X300              ; home X axis
    G1 S1 Y300              ; home Y axis
    G1 X5 Y5 F6000          ; go back a few mm
    G1 S1 X300 F360         ; move slowly to X axis endstop once more (second pass)
    G1 S1 Y300              ; then move slowly to Y axis endstop
    G90                     ; absolute positioning
    G1 X15 Y9 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


    ; deployprobe.g
    ; called to deploy a physical Z probe
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Wed Sep 02 2020 14:53:32 GMT-0400 (Eastern Daylight Time)
    M280 P0 S10 ; deploy BLTouch

    and retractprobe.g:

    ; retractprobe.g
    ; called to retract a physical Z probe
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Wed Sep 02 2020 14:53:32 GMT-0400 (Eastern Daylight Time)
    M280 P0 S90 ; retract BLTouch

    FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.1.1 ELECTRONICS: Duet 3 MB6HC v1.01 or later FIRMWARE_DATE: 2020-05-19b2

    SBC: Raspberry Pi 4 Model B

    Interesting Tidbit

    I'm not sure if @knosence 's setup has this same quirk, but my zprobe keeps flashing irregularly in DWC. I can't say I have any knowledge to base a guess off of, but the VIN seems to fluctuate at similar intervals that the Z-Probe is flashing (I have a screenshot, but can't seem to get it to load atm.)

    It may also be worth noting that the BLTouch v3.1 has a "Logic Voltage Free(Open Drain Output): 3.3V / 5V The desired
    output logic voltage is stored in the EEPROM of the probe and can
    be selected by commands"

    Scrolling through the manual for the BLTouch, you can find the M280 commands that will make the probe switch between 3.3V and 5V settings. While I had it wired up to the old Creality board, I tried to set the probe back to the default but couldn't get the LEDs to trip one way or another.

    Any thoughts? Sorry for the massive post, but hopefully there's enough information here to maybe point me in the right direction for this problem, and others who are having similar issues as well

  • Moderator

    @Canis_DIngus the BLTouch will light up red so long as it gets 5V on the red wire, and is grounded on black or blue. First check IO7 is giving 5V (measure between IO7_5V and IO7_GND). Test continuity and connectivity, with the Duet unpowered, by probing the solder pins on the back of the Duet, and on the connections on the back of the BLTouch, just above the QR code. This should show if there’s a break in your wiring, or crimp not making contact. Then do the same thing for the other wires. If that fails to elicit life, try powering it with an external 5V source.


  • @droftarts, thank you for the quick response, and my apologies for the delay in my response. 1AM shifts make for early bedtimes.

    So the continuity checks out on all the wiring, from the pins on the BLTouch down to the Board. The Voltage also checks out as well, albeit fluctuating between 4.4-4.5. Seeing as how the Voltage readings on the Creality Silentboard were reporting around the 3.8 range, which was able to power and activate the BLTouch without a hitch, I suspect the Duet's 4.5 is sufficient for the BLTouch as well.

    As for powering it with an external power source, I've been able to activate the BLTouch using the Creality Silent Board by replicating the BLTouch connections using some spare wire and attaching the connectors to said wiring (See Initial Post for photo of Active BLTouch wired to Creality Board)

  • Moderator

    It's also possible to use IO_4 or IO_5 instead of IO_7. I suggest you try another pin as a test.

  • @Phaedrux I tried to do this with IO_5 yesterday before making a post here in case that would solve the issue, but still couldn't get the BLTouch to activate. With each test on the ports I update the firmware to the new IO port being utilized, along with both the DWC restarting the board, then powering off/on the board through the manual switch attached to the power supply.

    Just reattempted IO_5 to confirm yesterday's results, no LED activation, same Z Probe flickering in the Status Panel. Getting the exact same results with IO_4 as well.

  • Also, since I'm having trouble uploading images to the site directly, I used an Image Hosting board to link to the aforementioned screen cap. The Highlighted "1000" underneath the Z Probe will sporadically switch between a "0" or "1000". The only thing that I've been able to observe in relation to this is that the VIN seems to fluctuate at a somewhat similar rate.

  • Moderator

    @Canis_DIngus said in BLTouch v3.1 not lighting up on Duet 3 6HC:

    Scrolling through the manual for the BLTouch, you can find the M280 commands that will make the probe switch between 3.3V and 5V settings. While I had it wired up to the old Creality board, I tried to set the probe back to the default but couldn't get the LEDs to trip one way or another.

    Is this the procedure you tried?

  • @Phaedrux Not that exact method. I used the method listed in the manual, but there appears to be a discrepancy between the two sources, as your link mentions pulling the push pin out and then entering a final command, whereas the push pin isn't even mentioned in their v3.1 manual...

    This does present an interesting question though; between the 3.3V and 5V, which format would I want to use for the BLTouch? I would assume that the 5V since it's wired into the +5V pin on the Board? In that same regard, if switching to that 5V format resolves this issue, then wouldn't switching the BLTouch 5V wire to the 3.3V pin in the IO port achieve the same result without (potentially) compromising a controller board that isn't rated for 5V logic?

    Antclabs mentions this about the BLTouch:
    "However, some boards still produce large capacitors, which negatively affects sensor operation. Of course around 0.1㎌(100㎋) is not a problem. BLTouch does not operate normally with a large capacitor in the Z-Stop. And we do not guarantee its normal operation."

    I looked at the Github page which has the board schematics for my particular version (v1.01), and looking at the IO ports capacitors, they all appear to have the 2n2 rating, which using a General Capacitor Codebreaker Chart rates said capacitors at 2.2 Nanofarad (nF), or .0022 Microfarad (µF). If I'm understanding this correctly, the capacitor ratings on the IO ports should not (emphasis on should there) warrant a switch to the 5V logic system?

    Call it semantics, but the link from Antclabs on Large Capacitors in this post doesn't explicitly state that a capacitor rating higher than 100 nF warrants switching the BLTouch to 5V Logic, but rather suggests removing the capacitor outright. however Antclabs does site the boards with large capacity capacitors as the reason for switching to the 5V logic... so maybe that is causation rather than correlation?

    I mean, seeing as how the steps outlined in the manual don't align with the instructions on their website, maybe that's a fair conclusion to make.

  • Moderator

    The Duet 3 and later Duet 2 boards are all 5v tolerant, so there hasn't been a need to force 3.3v mode on the BLtouch for quite some time.

    Based on the steps in the logic mode link, which mode are you currently running in?

  • @Phaedrux Assuming I'm interpreting the Signal Timing Diagram from Antclabs chart correctly, I think I'm in 3.3V mode. I would post a video, but our DSL internet line would probably have an aneurysm trying to handle that. So, to give an order of events as they occur:

    (Using Creality Board with BLTouch Connected)

    1. USB connection to PC w/ Simplify3D Machine Control Panel Open
      1.a Board LEDs activate, confirming power supply
    2. BLTouch Red LED Activates
    3. BLTouch runs Push Pin Self Test

    Now here's why I say I think it's in 3.3V. At the same time, and in sync with, the Push Pin Self Test, the Red LED does flash 3 times. If that were preceding the Self Test, that would indicate a 5V setting on the BLTouch, per the Signal Timing Diagram from the Antclab page on v3.1. However, in my case, the LED flashing occurs at the same time and in sync with the Self Test.

    Regardless of what I think I'm seeing and what is actually happening, I went ahead and followed the instructions you posted, and repeating Steps 2-6 a couple of times to ensure that it takes hold.

    It may be worth noting that in the link you posted, Step 5 states:

    "Step 5: Pull the push-pin with your finger so that the red LED turns off."

    After the first round of following the instructions, the LED did not come on when the 2 pin wiring was disconnected from the board. Being a firm believer in Murphy's Law, I went ahead and repeated the process 3 more times.

    I then connected the BLTouch to the Duet 3 again to see if this fixed the issue. Unfortunately the LED does not activate, BUT the Z Probe sensor in DWC has stopped flickering. With the Push Pin currently retracted, the Sensor is holding at "1000" with the Red Highlight (as seen in the screen shot) rather than switching between the 1000 and 0 readings as it was before. Progress?

  • Moderator

    Does it respond to deploy and retract commands?

  • @Phaedrux Doesn't seem to; sent M280 P0 S10 to see if I could illicit any response. No such luck. I even tried pulling the pin out to see if I could trigger the Z-probe to read "0" instead of "1000"; nothing.

    What I did notice though, when touching the BLTouch to pull the probe out, the equipment is quite warm, or at least warmer than I would expect it to be. Maybe that's throwing off the magnetic points on the probe? I wouldn't think that would prevent the LED from lighting up, but maybe that's another symptom that the heat is connected to.

  • Moderator

    How hot are we talking here?

    Showing 1000 instead of 0 would mean the signal should be inverted, but that's not usual.

    Are you sure the wiring is all good?

    Can you send M98 P"config.g" and report any errors?

    Can you try setting up in standalone mode just to test the probe?

    You'll just need a separate SD card with a /sys and /www folder. In sys place your config files and in /www you'll need the DWC files. Disconnect the SBC and put the SD card in the Duet.

    Also just in case there is something else gone wrong with the config files, try creating a completely fresh set with the configurator and trying with those.

    To eliminate the extension wiring, try connecting the Bltouch to the board with the short leads connected directly to the probe.

  • M98 P"config.g" reports an overpowering of the Heated Bed (or Heater 1, which is a whole other issue I need to address. Will probably make a separate post about that once the BLTouch snag gets resolved), but that's about it:

    M98 P"config.g"
    Warning: M307: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C
    Heater 0 model: gain 340.0, time constant 140.0, dead time 5.5, max PWM 1.00, calibration voltage 0.0, mode PID
    Computed PID parameters for setpoint change: P13.4, I0.482, D51.4
    Computed PID parameters for load change: P13.4, I0.949, D51.4

    As for how hot, using a multimeter with Temperature Measuring, in the ballpark of 50C, which makes me think there's some exposed wiring occurring somewhere along the line, since the continuity checked out. Assuming that the excessive heat is caused by bad wiring, and given that the heat was on the BLTouch itself, that would imply that the connection from the BLTouch to the short wiring would be the source, right? The IO_7 port didn't feel hot (sorry, didn't think to check it with the multimeter, see Username for excuse), nor did any of the wiring that I did myself.

    As for the standalone mode, I'll have to check that tomorrow and then report what findings I get from that, as it's past my bedtime with my current work schedule.

  • Moderator

  • @Phaedrux So... when you asked about the wiring, I only checked the connections that I had made.

    So my father used to work in HVAC with 30+ years experience with electrical work in his background, starting with him as a kid investigating what would happen if a bobby pen were to be inserted into an electrical outlet (he did this twice, of course, to see if the results were repeatable). I've been keeping him updated and bouncing ideas off of him in regards to this BLTouch endeavor. When I mentioned to him the heat production, he immediately thought that wiring was either crossing somewhere or coming into contact with metal. I explained the continuity checked out, but a continuity check merely confirms that either ends of a tested wire are in fact connected.

    This morning I put together the stand-alone build, including new files from the RRF Config Tool, did troubleshooting on the YAT since it didn't feel like working initially, learned how to share a wifi connection through the ethernet port on my pc, and got the Duet to connect to a dedicated IP since the router and printers are on opposite ends of the house. I opened up DWC to find that the Probe was, once again, giving sporadic reads as it had been before.

    It was at that point that the thought finally dawned on me to check all, as in ALL, the connections involved with the BLTouch. I figured that the wiring that came pre-assembled with the unit would be fine since the equipment worked with the previous board. when I started looking closer though, I found this.

    If you look closely, between the Red and Blue wiring, there is a single strand from the Blue Wire that is feeding into the Red Wire Connection point. In fact, almost all the connections have exposed and/or warped wiring (note how the white wire isn't even connected at this point; it just snapped loose as I removed the short wiring from the protective wire wrap)

    Now a few days back I purchased a Precision Piezo Orion to connect to a new E3D V6 set, which finally arrived yesterday. I ultimately planned on switching the components out, but wanted to see if I could get the BLTouch to work before it arrived. I intend to rewire the BLTouch to be repurposed for a separate Direct Drive Printer using the Creality board pulled from this one, so for now I think we might have found the issue to this particular case. If I get the wiring done back up before I finish the Hot End and Piezo conversion, I might plug it in just to confirm if that was the issue.

    With all that said, I want to thank you for helping me investigate the source of this problem, and everyone on this forum, as there were multiple posts that helped me finetune the system files and broaden my understanding of the RRF Gcode system as a whole.

    Until Next Time!

  • Moderator

    Glad you figured i out. Sometimes a magnifying glass is just what you need!

Log in to reply