BLTouch - Deploy/Retract Issues



  • Hello All - Any help would be greatly appreicated.!!

    I am using a BLTouch from a prior application that was working when it was removed. It is the Version2 on the most recent firmware. I've been setting up a Duet3 + Expansion Board and I have most things working but I cannot get the BLTouch to deploy. When I power up the system the BLTouch successfully completes its self-test and then remains in a state of pin retracted and a solid red light. On the Duet3 board I have the BLTouch wired to IO_7 per the instructions on the Duet Website.

    Pin 1 - 3.3v - Empty
    Pin 2 - In - White
    Pin 3 - Ground (Combined Black & Brown)
    Pin 4 - Control - Yellow
    Pin 5 - 5v - Red

    *I have wired and rewired everything a number of times to ensure the connectors/connections were not the issue. I guess there is some chance that wiring connections could be the issue but it is highly unlikely.

    *Pictures attached at bottom

    As far as my configuration - I have tried a number of combinations to no avail. I am using the RRF Config tool as my starting point to generate the baseline code. I've included the code sections below but as far as the BLTouch here is what I have tried. For each the initial result varies - but the consistency between all of the combinations is that none of them react to the manual deploy/retract statements.

    Input Pin - IO_7_IN / PWM Control Channel - IO_7_OUT - BLTouch self test is successful and then this gives the initial value of 1000 and on the machine specific settings the endstop shows as triggered. If I manually pull the pin on the BLTouch the red light goes off - but there is no change in the interface and no commands change the state of the BLTouch.

    Input Pin - IO_7_IN (Inverted) / PWM Control Channel - IO_7_OUT - BLTouch self test is successful and then this gives the initial value of NA/0 and on the machine specific settings the endstop shows as 'not' triggered. If I manually pull the pin on the BLTouch the red light goes off - but there is no change in the interface and no commands change the state of the BLTouch.

    Input Pin - IO_7_IN (Inverted) / PWM Control Channel - IO_7_OUT (Inverted) - BLTouch self test is successful and then this gives the initial value of NA/0 and on the machine specific settings the endstop shows as 'not' triggered. If I manually pull the pin on the BLTouch the red light goes off - but there is no change in the interface and no commands change the state of the BLTouch.

    The only other thing I would note is that I am running to drivers for my two Z axis and the extruder driver off of the main board and then I have the x/y drivers and their endstops on the expansion board. I do not think this should matter - but who knows.

    Of course the G-Code is slightly different for each of these options but I'm only providing one version below - just to give a general idea of the overall setup.

    config.g

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 18 2020 16:04:42 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 P1.0 S0                                       ; physical drive 1.0 goes backwards
    M569 P1.1 S0                                       ; physical drive 1.1 goes backwards
    M569 P0.0 S1                                       ; physical drive 0.0 goes forwards
    M569 P0.1 S1                                       ; physical drive 0.1 goes forwards
    M569 P0.2 S1                                       ; physical drive 0.2 goes forwards
    M584 X1.0 Y1.1 Z0.0 E0.2                           ; set drive mapping
    M350 X16 Y16 Z16 E16 I1                            ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z4000.00 E420.00                 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00                ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00            ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00                ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 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 X300 Y300 Z400 S0                             ; set axis maxima
    
    
    ; Endstops
    M574 X2 S1 P"!1.io0.in"                            ; configure active-high endstop for high end on X via pin !1.io0.in
    M574 Y2 S1 P"!1.io1.in"                            ; configure active-high endstop for high end on Y via pin !1.io1.in
    M574 Z1 S2                                         ; configure Z-probe endstop for low end on Z
    
    
    ; Z-Probe
    M950 S0 C"io7.out"                                 ; create servo pin 0 for BLTouch
    M558 P9 C"!io7.in" H5 F120 T6000                   ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X0 Y0 Z2.5                                ; set Z probe trigger value, offset and trigger height
    M557 X15:215 Y15:195 S20                           ; define mesh grid
    
    
    ; Heaters
    M308 S0 P"spi.cs0" Y"rtd-max31865" A"PT-100"       ; configure sensor 0 as thermocouple via CS pin spi.cs0
    M950 H0 C"out1" T0                                 ; create nozzle heater output on out1 and map it to sensor 0
    M143 H0 S280                                       ; set temperature limit for heater 0 to 280C
    M307 H0 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
    
    
    ; Fans
    M950 F0 C"out4" Q500                               ; create fan 0 on pin out4 and set its frequency
    M106 P0 S0 H T45                                   ; set fan 0 value. Thermostatic control is turned on
    M950 F1 C"out7" Q500                               ; create fan 1 on pin out7 and set its frequency
    M106 P1 S0 H-1                                     ; set fan 1 value. Thermostatic control is turned off
    
    
    ; Tools
    M563 P0 S"Volcano Extruder" 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
    M501                                               ; load saved parameters from non-volatile memory
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    

    deployprobe.g

    ; deployprobe.g
    ; called to deploy a physical Z probe
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 18 2020 16:04:42 GMT-0400 (Eastern Daylight Time)
    M280 P0 S10 ; deploy BLTouch
    

    retractprobe.g

    ![; retractprobe.g
    ; called to retract a physical Z probe
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 18 2020 16:04:42 GMT-0400 (Eastern Daylight Time)
    M280 P0 S90 ; retract BLTouch](image url)
    

    2020-04-19_18-15-06.jpg 2020-04-19_18-15-16.jpg



  • PS. - I have tried both the M401/M402 commands as well as the commands deploy/retract commands (M280 P0 S10/M280 P0 S90)

    Thanks again



  • @rmgriffin said in BLTouch - Deploy/Retract Issues:

    M950 S0 C"io7.out" ; create servo pin 0 for BLTouch

    Try swapping the 2 lines around, ie change their order.
    M558 ....
    M950 ....



  • @PaulHew thank you for the suggestion, I just tried it and still no reaction from either the deploy or retract commands.



  • More information - I'm not sure if it is helpful or not but I thought I'd also include the diag (M122) that I just ran in case it provides any clues/info.

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 version 3.0 running on Duet 3 MB6HC
    Board ID: 08DJM-956L2-G43S8-6JTDJ-3SN6M-9S0LG
    Used output buffers: 1 of 32 (5 max)
    === RTOS ===
    Static ram: 152720
    Dynamic ram: 149620 of which 0 recycled
    Exception stack ram used: 216
    Never used ram: 90660
    Tasks: NETWORK(ready,1984) HEAT(blocked,1204) CanReceiv(suspended,3808) CanSender(suspended,1476) CanClock(blocked,1424) TMC(blocked,212) MAIN(running,4452) IDLE(ready,160)
    Owned mutexes:
    === Platform ===
    Last reset 00:03:27 ago, cause: software
    Last software reset at 2020-04-19 23:41, reason: User, spinning module LinuxInterface, available RAM 90660 bytes (slot 0)
    Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 10
    SD card 0 not detected, interface speed: 37.5MBytes/sec
    SD card longest block write time: 0.0ms, max retries 0
    MCU temperature: min 39.7, current 42.7, max 42.7
    Supply voltage: min 23.7, current 23.7, max 23.8, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 12.0, current 12.0, max 12.1, under voltage events: 0
    Driver 0: standstill, reads 39631, writes 14 timeouts 0, SG min/max 0/0
    Driver 1: standstill, reads 39635, writes 11 timeouts 0, SG min/max 0/0
    Driver 2: standstill, reads 39632, writes 14 timeouts 0, SG min/max 0/0
    Driver 3: standstill, reads 39636, writes 11 timeouts 0, SG min/max 0/0
    Driver 4: standstill, reads 39636, writes 11 timeouts 0, SG min/max 0/0
    Driver 5: standstill, reads 39637, writes 11 timeouts 0, SG min/max 0/0
    Date/time: 2020-04-19 23:44:29
    Slowest loop: 2.11ms; fastest: 0.08ms
    === Move ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === GCodes ===
    Segments left: 0
    Stack records: 2 allocated, 0 in use
    Movement lock held by null
    http* is ready with "M122" in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon* is idle in state(s) 0
    queue is idle in state(s) 0
    lcd is idle in state(s) 0
    spi is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 0.49ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 0 of 8
    - Ethernet -
    State: 0
    Error counts: 0 0 0 0 0
    Socket states: 0 0 0 0 0 0 0 0
    === CAN ===
    Messages sent 836, longest wait 1ms for type 6018
    === Linux interface ===
    State: 0, failed transfers: 0
    Last transfer: 13ms ago
    RX/TX seq numbers: 8150/6264
    SPI underruns 0, overruns 0
    Number of disconnects: 0
    Buffer RX/TX: 0/0-0
    === Duet Control Server ===
    Duet Control Server v1.2.4.0
    Code buffer space: 4096
    Configured SPI speed: 2000000 Hz
    Full transfers per second: 4.96
    


  • Are you manually entering the commands?

    Do you have an I1 at the end of the M280?
    AFAIK it should be this to deploy and retract

    M280 P0 S10 ; Deploy
    M280 P0 S90 ; Retract
    


  • @PaulHew no I am not using I1 as my understanding was this was no longer needed. I agree with your assessment of the deploy/retract commands and I also read that as of RRF3 the M401/402 could also be used. For all of them I am entering them manually bc I don’t want to home when I cannot get the BLTouch to deploy manually.



  • @PaulHew said in BLTouch - Deploy/Retract Issues:

    M280 P0 S10

    Looking at the wiring diagram and the picture of your board, I think you are in io8 not io7.

    P.



  • Bloody hell, I know I was in the right place when I started but I've pulled it out so many times rewiring I must have inadvertently put it back in the wrong place. With the lines switched up (per your earlier comment) and the plug in the right place - we're working now! Thank you, thank you for your help!



  • @rmgriffin Glad its working.
    Enjoy.

    Regards,
    Paul.


Log in to reply