BLTouch Not Working After Firmware Update to 3.4
-
I recently upgraded to 3.4 and it seems to have affected my bltouch which was working just fine before the update.
- M280 P0 S90 works to pull the pin up (M402 also works)
- M280 P0 S10 works to push the pin down (M401 also works)
- The Z-probe reading does not change while deploying or retracting the pin
- G30 does not deploy the pin
- When using the emergency stop to prevent the bed from crashing into the print head, the pin deploys (this also did not happen before the update)
Here is my config.g
; Configuration file for Duet 3 (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Apr 06 2022 16:00:07 GMT-0700 (Pacific 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 M569 P0.1 S0 ; physical drive 0.1 goes backwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S0 ; physical drive 0.3 goes forwards Z Motor 1 M569 P0.4 S0 ; physical drive 0.4 goes forwards Z Motor 2 M569 P0.5 S0 ; physical drive 0.5 goes forwards Z Motor 3 M671 X0:450:224 Y0:0:580 S25 M584 X0.0 Y0.1 Z0.3:0.4:0.5 E0.2 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.22 Y80.20 Z1600.00 E400.00 ; set steps per mm M566 X700.00 Y700.00 Z60.00 E1200.00 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z180.00 E5000 ; set maximum speeds (mm/min) M201 X450.00 Y450.00 Z20.00 E450.00 ; set accelerations (mm/s^2) M906 X1200 Y1200 Z1200 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z-20 S1 ; set axis minima M208 X460 Y600 Z450 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in M574 Y2 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io1.in M591 P1 C"io5.in" S1 D0 ; filament monitor connected to E0 endstop ; Z-Probe M950 S0 C"io4.out" ; create servo pin 0 for BLTouch M558 P9 C"io4.in" H15 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y0 Z2.9 ; set Z probe trigger value, offset and trigger height M557 X0:450 Y0:580 S150:145 ; 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 bed heater output on out0 and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out5" Q500 ; create fan 1 on pin out5 and set its frequency M106 P1 S0 T50 H1 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; 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 ; Pressure Advance M572 D0 S0.05 ; Tune pressure advance for different filaments in future. Add to superslicer filament profiles ; Accelerometer M955 I12 P0 C"io8.out+io8.in" ; CS and INT1 connected to IO8 ; Custom settings are not defined ; Miscellaneous M501 ; load saved parameters from non-volatile memory
Any help would be appreciated!
-
What version of firmware were you using before the update?
Please send M122 and M98 P"config.g" and post the results here.
-
@Phaedrux It was previously firmware version 3.3
Here's the m112 results:
M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.4.0 (2022-03-15 18:57:24) running on Duet 3 MB6HC v1.01 or later (SBC mode)
Board ID: 08DJM-9P63L-DJMSS-6JTDA-3SS6J-1BG7B
Used output buffers: 1 of 40 (12 max)
=== RTOS ===
Static ram: 151000
Dynamic ram: 67900 of which 0 recycled
Never used RAM 131700, free system stack 154 words
Tasks: ACCEL(notifyWait,0.0%,348) SBC(resourceWait:,0.5%,468) HEAT(notifyWait,0.0%,321) Move(notifyWait,0.0%,269) CanReceiv(notifyWait,0.0%,944) CanSender(notifyWait,0.0%,356) CanClock(delaying,0.0%,333) TMC(notifyWait,7.8%,92) MAIN(running,91.5%,1231) IDLE(ready,0.1%,30), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:47:11 ago, cause: software
Last software reset at 2022-05-25 13:15, reason: User, GCodes spinning, available RAM 131700, slot 2
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
Error status: 0x00
Step timer max interval 135
MCU temperature: min 43.3, current 47.0, max 48.0
Supply voltage: min 24.1, current 24.2, max 24.2, 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
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: standstill, SG min 0, mspos 456, reads 5490, writes 19 timeouts 0
Driver 1: standstill, SG min 0, mspos 8, reads 5490, writes 19 timeouts 0
Driver 2: standstill, SG min 0, mspos 8, reads 5495, writes 14 timeouts 0
Driver 3: standstill, SG min 0, mspos 216, reads 5490, writes 19 timeouts 0
Driver 4: standstill, SG min 0, mspos 216, reads 5490, writes 19 timeouts 0
Driver 5: standstill, SG min 0, mspos 216, reads 5490, writes 19 timeouts 0
Date/time: 2022-05-25 14:02:51
Slowest loop: 50.72ms; fastest: 0.04ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, segments created 3, maxWait 319256ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 8, completed 8, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP* is doing "M122" in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger* is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
SBC is idle in state(s) 0
Daemon is idle in state(s) 0
Aux2 is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty
=== Filament sensors ===
Extruder 0 sensor: ok
=== CAN ===
Messages queued 25458, received 0, lost 0, boc 0
Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 14158/0/0
Tx timeouts 0,0,14157,0,0,11299 last cancelled message type 4514 dest 127
=== SBC interface ===
Transfer state: 4, failed transfers: 0, checksum errors: 0
RX/TX seq numbers: 46466/46466
SPI underruns 0, overruns 0
State: 5, disconnects: 0, timeouts: 0, IAP RAM available 0x2b880
Buffer RX/TX: 0/0-0, open files: 0
=== Duet Control Server ===
Duet Control Server v3.4.0
Code buffer space: 4096
Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
Full transfers per second: 39.23, max time between full transfers: 240.7ms, max pin wait times: 69.5ms/17.3ms
Codes per second: 0.06
Maximum length of RX/TX data transfers: 3132/856M98 P"config.g" returns these:
Warning: M307: Heater 1 predicted maximum temperature at full power is 831°C
M307: Heater 0 predicted maximum temperature at full power is 210°C -
Please try uploading the 3.4 zip file as is to the system tab in DWC to make sure all files are up to date.
https://github.com/Duet3D/RepRapFirmware/releases/download/3.4.0/Duet2and3Firmware-3.4.0.zip
It's strange that M401/M402 will work to deploy but G30 won't.
Can you post your homing files and deploy/retract macros please?
-
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Apr 06 2022 16:00:08 GMT-0700 (Pacific Daylight Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-475 Y605 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 H2 X5 Y-5 F6000 ; go back a few mm G1 H1 X-475 Y605 F360 ; move slowly to X and Y axis endstops once more (second pass) G1 H2 Z5 F6000 ; lift Z relative to current position - we are about to move X and Y and we want to be sure the nozzle is clear of the bed. G90 G1 X222 Y500 F6000 ; move the probe to the center of the bed - for aaa, bbb, ccc use values suitable for your printer G30 ; probe the bed and set the logical position of Z thus homing the Z axis ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z5 F100 ; lift Z relative to current position ;G90 ; absolute positioning
; homex.g ; called to home the X axis ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Apr 06 2022 16:00:08 GMT-0700 (Pacific Daylight Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-475 F1800 ; move quickly to X axis endstop and stop there (first pass) G1 H2 X5 F6000 ; go back a few mm G1 H1 X-475 F360 ; move slowly to X axis endstop once more (second pass) ;G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning
; homey.g ; called to home the Y axis ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Apr 06 2022 16:00:08 GMT-0700 (Pacific Daylight Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 Y605 F1800 ; move quickly to Y axis endstop and stop there (first pass) G1 H2 Y-5 F6000 ; go back a few mm G1 H1 Y605 F360 ; move slowly to Y axis endstop once more (second pass) ;G1 H2 Z-5 F6000 ; lower Z again G90 ; absolute positioning
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Apr 06 2022 16:00:08 GMT-0700 (Pacific Daylight Time) ;G90 ; relative positioning ;G1 Z5 F6000 ; lift Z relative to current position G90 G1 X222 Y500 F6000 ; go to first probe point G30 ;G1 H1 Z-305 F1800 ; move Z down until the endstop is triggered G92 Z0 ; set Z position to axis minimum (you may want to adjust this) ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 Z5 F100 ; lift Z relative to current position G90 ; absolute positioning
; retractprobe.g ; called to retract a physical Z probe ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Apr 06 2022 16:00:07 GMT-0700 (Pacific Daylight Time) M280 P0 S90 ; retract BLTouch
; deployprobe.g ; called to deploy a physical Z probe ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Apr 06 2022 16:00:07 GMT-0700 (Pacific Daylight Time) M280 P0 S10 ; deploy BLTouch
-
@Phaedrux Is it ok to run?
-
Ok so uploaded the zip and performed the update. At this moment the problem still persists
-
Unrelated to your problem, but
@alecsanchez said in BLTouch Not Working After Firmware Update to 3.4:
G30 ;G1 H1 Z-305 F1800 ; move Z down until the endstop is triggered G92 Z0 ; set Z position to axis minimum (you may want to adjust this)
In your homez you have a G92 Z0 after the G30 to force the z position to 0. This is not likely what you intend to happen when using the probe as it would ignore the probe offset. Remove that G92 Z0.
When you updated to 3.4 did you use sudo apt update and sudo apt upgrade on the Pi?
I don't see anything incorrect in your config, other than lacking a measured XYZ probe offset in G31.
Do you get any error messages when you send G30 by itself?
-
@Phaedrux Yes I did use sudo update and sudo apt upgrade. G30 also doesn't give me any error messages
-
Is the pin perhaps sticking? You say it drops when you do an emergency stop.
-
It doesn't seem like it, I can send m401/m402 successively many times and it doesn't stick. How it deploys when I emergency stop is very odd though. This never occurred before
-
I confirmed that bltouch still triggers and stops the bed if I deploy it and then send G30. I'm just not sure what is preventing it from deploying when I send g30
-
As a test can you add the M401 deploy command before the G30 in your homing macros and see if it behaves then? If it does work, does it retract afterwards?
-
@Phaedrux I added M401 to the homez.g macro and it did not deploy
-
Where did you add it?
-
Right before G30
-
Try adding a M400 between, like this.
G1 X Y positioning move
M400
M401
M400
G30 -
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Apr 06 2022 16:00:08 GMT-0700 (Pacific Daylight Time) ;G90 ; relative positioning ;G1 Z5 F6000 ; lift Z relative to current position G90 M401 G1 X222 Y500 F6000 ; go to first probe point G30 ;G1 H1 Z-305 F1800 ; move Z down until the endstop is triggered ;G92 Z0 ; set Z position to axis minimum (you may want to adjust this) ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 Z5 F100 ; lift Z relative to current position G90 ; absolute positioning
I added it here now and it did deploy, but it did not retract after I triggered it with my finger. However it did stop the bed. M401/M402 commands did not work after this
-
@phaedrux The M400 commands did not appear to work, bltouch did not deploy
-
Does M401 and M402 work manually and repeatedly when the print head is in the probing position? Perhaps it's a loose cable when in certain locations.