BLTouch and Duet 3 Tool Board

  • administrators

    This is a continuation of this thread The first issue reported by user @dk and relevant to this thread is that BLTouch does not do a self-test when the tool board is powered up.

    I was unable to reproduce this. We thought that this might be due to me testing with a BLTouch version 3.0 whereas @dk has version 3.1. So I purchased a version 3.1.

    My results using BTouch 3.1 are the same as using version 3.0:

    • BLTouch always does a self-test when I power up the Tool Board
    • If I hold the BLTouch in the correct vertical orientation, the self test is always successful.
    • If I leave it lying on the bench then it sometimes enters the error state (flashing red) at the end of the self test
    • I have run these tests using a version 0.6 tool board, and using a version 1.0 tool board
    • I have tested using a Meanwell 24V power supply, and also using a bench power supply with the voltage varied between 5V and 12V. Surprisingly, it works with 5V input, even though the output voltage from the regulator and supply to BLTouch is only 3.66V.
    • The tool board firmware I used for these tests was 3.2beta1
    • To make sure than CAN commands from the main board could not interfere, I tested with the CAN connection between the tool board and the main board removed

    Here are photos of the setup I used. @dk, please can you check your wiring carefully against these photos. Have you tried it with more than one BLTouch? If so, did you use the cables supplied with each BLTouch, in case the original one had a cable fault? Are you using a bench setup similar to this, or is the BLTouch cable bundled with other cables?

    2020-10-15 11.02.55.jpg

    2020-10-15 11.15.42.jpg

    2020-10-15 11.15.23.jpg

  • @dc42 - we have this same issue. I have a Duet 3 / RPi and toolboard on my bench hooked to a Meanwell LSR-350-24. I also have a few brand new BL Touch v3.1.

    Would you please post the configs used for your testing? If so, I can try to perform the same test later today..

  • administrators

    @oozeBot, the config files are not relevant if you test with the tool board not connected by CAN to the main board, as I did.

  • administrators

    Progress! It occurred to me that the version 1.0 tool board I was testing with might be a pre-production one. I happened to have a recent production one, so I just tested it with BLTouch. The BLTouch fails to self test. Now I can investigate why.

  • @dc42 if it helps, here is how we've worked around the issue.. maybe there is a clue in there.

  • administrators

    I've just discovered that if I disconnect the yellow servo control wire on the non-working board, then it does do a self test at power up. So I suspect it's to do with the initialisation of that pin.

  • administrators

    I have now identified the problem. The bootloader on current production tool boards sends debug information to the servo control pin, and this is confusing the BLTouch. The boards I was using that worked had a more recent bootloader installed.

    The fix will be to install a new bootloader. At present, this can only be done using an Atmel ICE or similar tool. However, we have plans to allow the bootloader to be updated over CAN, and I will try to bring this work forward.

    @dk, who did you purchase your tool boards from?

  • administrators

    @dk, for now are you able to use the workaround that @oozeBot linked to?

  • @dc42
    I add those 3 lines in my config file

    M280 P0 S60 ; BLtouch - toggle switch mode
    G4 P1000 ; wait 1 second
    M280 P0 S120 ; BLtouch toggle self-test

    , but BL-touch still does not perform self test at startup. M401 and M402 works
    There exactly I should put these lines? Just before ; Z-Probe ?
    Or at the top or bottom?
    And do I need any modifications to those codes since I use Toolboard with CAN address 20, not 121?

  • @dk I put this at the very bottom of my config.. after defining the BLTouch.

    Sorry I wasn’t clearer on this

  • Interesting. I have a 0.6 and 1.0 board, having used 3.1.1. I noticed the self test doesn’t “work” (the pin cycle doesn’t occur) but aside from that it still probes properly, and macros to self test work once it’s powered up.

  • @oozeBot
    Thank you! It performs self test now. 10 times (10 deploys and 10 retracts)

  • @dk Awesome! Glad to help.. this one was a bit maddening to figure out..!

  • administrators

    I hope to include the facility to update the bootloader on tool boards in RRF 3.2beta3.

  • @dc42 said in BLTouch and Duet 3 Tool Board:

    I hope to include the facility to update the bootloader on tool boards in RRF 3.2beta3.

    David, did this make it into beta 3? Is so, are there any instructions on how to update the bootloader? Thanks

  • @oozeBot said in BLTouch and Duet 3 Tool Board:

    David, did this make it into beta 3? Is so, are there any instructions on how to update the bootloader? Thanks


    [Duet 3 + expansion/tool boards] Expansion and tool boards can now have their bootloaders updated via CAN using the command M122 B# S3 where # is the board address. The bootloader file is Duet3Bootloader-SAME5x.bin for the EXP3HC board, Duet3Bootloader-SAMC21.bin for the other expansion boards by Duet3D, and Duet3Bootloader-SAMMYC21.bin for the Sammy-C21 development board. These files are available at

  • @Veti thank you - I missed that in the release notes.. trying now.

  • @Veti

    Can I get a bit more clarification on what is needed to update the toolboard? I've uploaded all the .bin and .elf files to my system folder, but M122 B20 S3 is only reporting, not updating..

    M122 B20 S3
    Diagnostics for board 20:
    Duet TOOL1LC firmware version 3.2beta3 (2020-11-07)
    Bootloader ID: not available
    Never used RAM 4104, free system stack 96 words
    HEAT 43 CanAsync 88 CanRecv 82 TMC 53 MAIN 331 AIN 64
    Last reset 00:13:14 ago, cause: power up
    Last software reset data not available
    Driver 0: position 0, 840.0 steps/mm,  standstill, SG min/max 0/0, read errors 0, write errors 0, ifcount 12, reads 2901, writes 0, timeouts 0, DMA errors 0, failedOp 0xff
    Moves scheduled 0, completed 0, in progress 0, hiccups 0
    No step interrupt scheduled
    VIN: 24.2V
    MCU temperature: min 40.5C, current 41.8C, max 42.1C
    Ticks since heat task active 2, ADC conversions started 791830, completed 791829, timed out 0
    Last sensors broadcast 0x00000002 found 1 5 ticks ago, loop time 0
    Free CAN buffers: 36, messages lost 60, duplicates 0, oos 0, busOff 0

  • @veti @dc42 I think the instructions are wrong.. I just tried M997 B20 S3 and it states:

    M997 B20 S3
    Board 20 starting bootloader update

  • I can confirm BLTouch v3.1 is now self testing on the toolboard! Thanks again!

  • administrators

    @oozeBot said in BLTouch and Duet 3 Tool Board:

    @veti @dc42 I think the instructions are wrong.. I just tried M997 B20 S3 and it states:

    M997 B20 S3
    Board 20 starting bootloader update

    Thanks for pointing this out. I have corrected the whatsnew-rrf3 file, also I have updated

    Use M122 B# to check what bootloader version is installed.

Log in to reply