BLTouch working



  • I finally had a chance to get everything mounted and connected for a first test. This machine is fitted with a Duet 0.8.5 and BLTouch…

    https://youtu.be/rX8L5HIXgO8

    https://youtu.be/o2YIRTsjx7w


  • administrators

    Nice! Did you need to do anything not covered in the documentation to get it working (I realise you needed the latest firmware version)? If so can you let me know so I can update it. Also is it ok for me to link the first video as an example?



  • Sure feel free to use the video. I should have tidied up my workbench! I haven't seen any documentation related to using a BLTouch with RepRapFirmware, but it's pretty straight forward to get going…

    • BLTouch 5V leads are connected to expansion header pins 1-2, and the servo lead is connected to pin 21 (PWM for heater 3)

    • BLTouch endstop leads are paralleled with a 240ohm resistor as documented by Antclabs to make it safe for 3.3v logic and connected to E0 endstop header

    • [c]M307 H3 A-1 C-1 D-1[/c] is added to config.g to reserve pin 21 for M42 or servo use

    • M558 is set to probe type 4 and G31 is set for a very low trigger value since the BLTouch only triggers the endstop for 5ms

    • Deployprobe.g macro contains the line [c]M280 P3 S10 I1[/c] to deploy the BLTouch probe

    • Retractprobe.g macro contains the line [c]M280 P3 S90 I1[/c] to retract the BLTouch probe

    • Deploy and Retract macros are added to bed.g and homing macros

    And I think that's about it…

    The only issue I've run into so far is the very first probe deployment can take a few seconds before the BLTouch responds and actually pushes the probe down. I'm not sure if it's because the Duet take a little while to setup the PWM or maybe the BLTouch isn't truly 3.3v tolerant and requires a buffer after all, but I need to examine it further. After the first probe deployment it continues to respond quickly like I'd expect, so as a workaround I just deploy the probe at the very top of my homeall.g macro and by the time it gets around to homing Z, the probe has been deployed and everything works fine.


  • administrators

    There appears to be a bug along the lines you describe when using heater 3 as a servo. It's on my list to fix in 1.17. The other expansion heater channels don't have the problem.



  • Ok thanks for mentioning that! Certainly saves me some troubleshooting…

    @dc42:

    There appears to be a bug along the lines you describe when using heater 3 as a servo. It's on my list to fix in 1.17. The other expansion heater channels don't have the problem.


  • administrators

    This bug is fixed in the 1.17dev4 build. It turned out to be an undocumented chip-level bug in the PWM subsystem and it took me hours to find a workaround.



  • David, I can't thank you enough for all the hard work and dedication you contribute to this firmware! I'll install your 1.17 dev build this weekend and let you know how it works out.



  • I was curious so I ordered one too.
    I set all up so far for testing and but stumbled over something.
    The BLTouch is 5V powered from the servo input so its output signal is also 5V.
    I know, and it is described, the resistor is also provided, that I can use the 240ohms resistor between the output and ground to reduce the voltage.
    But I am a proud beta tester of the Duex2 and it provides endstop ports where I can select the operating voltage…
    All I need now would be a remapping possibility that a probe of type 4 (M558 P4) would not use E0 endstop but E2 or E3.
    @dc42 would that be possible or is this outa reach? I just wanna be safe and a resistor crimped into the plug or soldered in somehow might break and then I have a problem. With the Duex now allowing 5V endstops I could omit the resistor and just use one of those native ports.


  • administrators

    That could be done, but it is not likely to happen soon because my priority is to finish the grid bed compensation code.

    I think it is very unlikely that that 5V applied to an endstop input on the Duet WiFi would damage the microcontroller, because the endstop input includes a series resistor. The Z probe input is even better protected. So I suggest you use the resistor, connect it to the Z probe input, and select probe type 4.



  • Hmmm but the manual states that type 4 uses E0, so how can I connect it to Z probe input?
    Or are they the same?

    Edit: reading between the lines of the documentation I assume yes… But I found no definite statement....


  • administrators

    Sorry, I meant type 5.



  • David, I forgot to update that 1.17 dev4 does indeed fix the delay with heater 3 as a servo on a wired Duet. Everything is working absolutely perfectly and I'm extremely pleased with how well the BLTouch works. Thanks!



  • @Alex9779:

    I just wanna be safe and a resistor crimped into the plug or soldered in somehow might break and then I have a problem. With the Duex now allowing 5V endstops I could omit the resistor and just use one of those native ports.

    For what it's worth I soldered and crimped the resistor in my end-stop connector just to make absolutely sure it's well connected.



  • Just curious as to how accurate this BL touch thing is for homing. I currently use DC42s excellent probe which works fine but the slight issue I have is that I have 3 pieces of glass with different surface coatings that I swap between. So if I go from say, plain glass with 3DLAC to glass with blue tape, I have to edit my config.g to change the Z offset for that particular surface. It occurs to me that the BL touch might negate the need to do that. Is that reasonably assumption?

    BTW, I've managed to build my machine such that the bed is both flat and level and stays that way, so I have no need to compensate for level or flatness (although it is nice to use the probe to check from time to time). It's just Z homing with different surface materials that I'm interested in.


  • administrators

    Ian

    How about a black sticker at the corner of each bed plate - be out of the way for nearly every print and should give the same result?

    (sorry to hijack the bl touch thread!)



  • @T3P3Tony:

    Ian

    How about a black sticker at the corner of each bed plate - be out of the way for nearly every print and should give the same result?

    (sorry to hijack the bl touch thread!)

    Tony - that's a damned good idea - so simple! My initial reaction was that it wouldn't work with blue tape due to the thickness of the tape itself, but as long as the black sticker is on top of the tape (or any other material) then of course it will work. Brilliant! Thanks



  • @deckingman:

    Just curious as to how accurate this BL touch thing is for homing.

    Antclabs claims a standard deviation of at least 0.01mm–apparently dependent on the probing speed due to the way hall-effect sensors work. I haven't had time to do more than about a dozen prints on this machine since fitting it with the BLTouch, but so far it's been working great and I haven't needed to adjust the Z offset since the initial setup. Perfect first layers every time.



  • @deckingman:

    I currently use DC42s excellent probe which works fine but the slight issue I have is that I have 3 pieces of glass with different surface coatings that I swap between. So if I go from say, plain glass with 3DLAC to glass with blue tape, I have to edit my config.g to change the Z offset for that particular surface.

    Use a macro to set the z offset. I have one for pla and another for petg. The two different filaments need a different z0 setting to get it to stick properly.



  • Did you directly connect the Servo to Pin21? Does this PIN provide 5 volts or would I need some sort of diode?



  • Just ordered myself a bltouch and will be adding it to my duet 0.8.5, thanks for documenting the install mate


 

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