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.
; 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 ; 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 ; 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)
PS. - I have tried both the M401/M402 commands as well as the commands deploy/retract commands (M280 P0 S10/M280 P0 S90)
M950 S0 C"io7.out" ; create servo pin 0 for BLTouch
Try swapping the 2 lines around, ie change their order.
@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 v188.8.131.52 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.
M280 P0 S10
Looking at the wiring diagram and the picture of your board, I think you are in io8 not io7.
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.