Solved 3.4rc1 Mini 5+ bltouch not retracting
-
Since update from 3.4b6 to 3.4b7 (and eventually b7+5 and b7+7) on my Mini5+, bltouch pin does not deploy for homing.
M98 P"config.g" does not present any errors in any of the tested firmware versions.
Setting servo values directly with M280 correctly controls the probe in b6 but doesn't in later versions. Looks like a PWM issue to me. I haven't checked duty cycle with my meter or scope yet, let me know if that would be useful.
-
For good measure can you share your config.g, and the results of M122?
-
I downgraded to 3.4b6 to get a print done but here is config.g
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Ender 3" ; set printer name M918 P1 E4 F2000000 ; configure direct-connect display M929 P"log.txt" S1 ; Enable logging ;M552 S1 ; Enable network ; Drives M569 P0.0 S1 D3 V0 F4 ; physical drive 0.0 goes backwards, stealthchop enabled M569 P0.1 S0 D3 V0 F4 ; physical drive 0.1 goes backwards, stealthchop enabled M569 P0.2 S1 D3 V0 F4 ; physical drive 0.2 goes backwards, stealthchop enabled M569 P0.3 S0 D3 V0 F4 ; physical drive 0.3 goes forwards, stealthchop enabled M569 P0.4 S0 D3 V0 F4 ; physical drive 0.4 goes forwards, stealthchop enabled M569 P0.5 S1 D3 V0 F4 ; physical drive 0.5 goes backwards, stealthchop enabled M569 P0.6 S1 D3 V0 F4 ; physical drive 0.6 goes backwards, stealthchop enabled M584 U0.0 X0.3 Y0.4 Z0.5:0.6 E0.1:0.2 ; set drive mapping M350 U16 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation M92 U80.00 X80.00 Y80.00 Z400.00 E413.4:413.4 ; set steps per mm M566 U450 X450 Y450 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 U9000.00 X9000.00 Y9000.00 Z480.00 E1200.00:1200.00 ; set maximum speeds (mm/min) M201 U2500.00 X2500.00 Y2500.00 Z20.00 E500.00:500.00 ; set accelerations (mm/s^2) M906 U1000 X1000 Y1000 Z1000 E1200:1200 I50 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout M915 X Y S5 F1 R0 H150 ; Stall detection XY log on stall M915 Z S3 F1 R2 H200 ; Stall detection Z pause on stall M915 P0.1:0.2 S5 F1 R0 ; Stall detection E0,E1 do nothing ; Axis Limits M208 U-80.8 X-212 Y-150.6 Z0 S1 ; set axis minima M208 U213.8 X95 Y100 Z230 S0 ; set axis maxima ; Endstops M574 U2 S1 P"io0.in" ; configure active-high endstop for high end on Y via pin io0.in M574 X1 S1 P"io5.in" ; configure active-high endstop for low end on X via pin io6.in M574 Y1 S1 P"io6.in" ; configure active-high endstop for low end on Y via pin io5.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Filament runout sensors M591 D0 P1 C"^io3.in" S0 ; Left extruder runout ;M591 D1 P1 C"^io2.in" S0 ; Right extruder runout ; Z-Probe M950 S0 C"io1.out" ; create servo pin 0 for BLTouch M558 P9 C"^io1.in" B1 H5 F480 T6000 ; set Z probe type to bltouch and the dive height + speeds disable heaters when probing G31 P500 X66 Y12 Z1.8 M557 X-110:110 Y-110:110 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; 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 M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp1" Y"pt1000" ; 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 S300 ; set temperature limit for heater 1 to 280C M308 S2 P"temp2" Y"pt1000" ; configure sensor 2 as thermistor on pin temp2 M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H2 S300 ; set temperature limit for heater 2 to 280C ; Fans M950 F0 C"out5" Q1000 ; create fan 0 on pin out5 and set its frequency M106 P0 C"Part Coling T0" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned on M950 F1 C"!out3+out3.tach" Q1000 M106 P1 C"Hotend Fan T0" S64 X64 H1 T45 M950 F2 C"out6" Q1000 ; create fan 2 on pin out6 and set its frequency M106 P2 C"Part Cooling T1" S0 H-1 ; set fan 2 name and value. Thermostatic control is turned off M950 F3 C"!out4+out4.tach" Q1000 M106 P3 C"Hotend Fan T1" S64 X64 H2 T45 ; Tools M563 P0 S"Left Tool" 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 M563 P1 S"Right Tool" D1 H2 F2 X3 ; define tool 1 using U axes for X G10 P1 X0 Y2 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Custom settings are not defined M307 H0 R0.281 C428.8 D4.28 S1.00 V23.9 ; Miscellaneous ;M911 S21 R23 P"M913 X0 Y0 G10 P0 R0 S0 G91 M83 G1 Z3 E-5 F10000" ; set voltage thresholds and actions to run on power loss M572 D0 S0.05 ; Guestimate pressure advance setting M207 S0.5 F2400 ; Retraction 0.5mm @40mm/s M671 X-145:145 Y0:0 S3 F1 ; leadscrew co-ordinates M81 C"ps_on" ; Turn off power supply (makes power switch show in webui) ; Load from config-override.g M501
deployprobe.g:
M280 P0 S10 ; deploy BLTouch
-
In 3.4rc1 the probe now deploys but doesn't retract after probing.
Machine was completely powered off after the update.
M122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.4.0rc1 (2022-02-09 10:27:22) running on Duet 3 Mini5plus WiFi (SBC mode) Board ID: W4ZW4-V296U-D65J0-40KM0-LR03Z-H6928 Used output buffers: 1 of 40 (14 max) === RTOS === Static ram: 103652 Dynamic ram: 102128 of which 0 recycled Never used RAM 35788, free system stack 134 words Tasks: SBC(ready,3.9%,504) HEAT(notifyWait,0.0%,356) Move(notifyWait,0.0%,292) CanReceiv(notifyWait,0.0%,942) CanSender(notifyWait,0.0%,356) CanClock(delaying,0.0%,339) TMC(notifyWait,1.1%,114) MAIN(running,93.8%,558) IDLE(ready,0.4%,29) AIN(delaying,0.8%,264), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:08:35 ago, cause: software Last software reset at 2022-02-09 18:36, reason: User, GCodes spinning, available RAM 36076, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 MCU revision 3, ADC conversions started 515901, completed 515899, timed out 0, errs 0 Step timer max interval 1489 MCU temperature: min 27.5, current 37.5, max 37.8 Supply voltage: min 0.5, current 24.3, max 24.3, under voltage events: 1, over voltage events: 0, power good: yes 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: pos 3760, standstill, SG min 0, read errors 0, write errors 2, ifcnt 13, reads 44146, writes 25, timeouts 0, DMA errors 0, CC errors 0 Driver 1: pos -1280, standstill, SG min 0, read errors 0, write errors 2, ifcnt 10, reads 44148, writes 23, timeouts 0, DMA errors 0, CC errors 0 Driver 2: pos 3560, standstill, SG min 0, read errors 0, write errors 2, ifcnt 10, reads 44147, writes 23, timeouts 0, DMA errors 0, CC errors 0 Driver 3: pos 17104, standstill, SG min 0, read errors 0, write errors 2, ifcnt 15, reads 44140, writes 29, timeouts 0, DMA errors 0, CC errors 0 Driver 4: pos 0, standstill, SG min 0, read errors 0, write errors 2, ifcnt 15, reads 44142, writes 29, timeouts 0, DMA errors 0, CC errors 0 Driver 5: pos 0, standstill, SG min 0, read errors 0, write errors 2, ifcnt 15, reads 44142, writes 29, timeouts 0, DMA errors 0, CC errors 0 Driver 6: pos 0, standstill, SG min 0, read errors 0, write errors 2, ifcnt 15, reads 44140, writes 29, timeouts 0, DMA errors 0, CC errors 0 Date/time: 2022-02-09 18:46:07 Cache data hit count 1160425780 Slowest loop: 60.47ms; fastest: 0.08ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 0.0MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 6, maxWait 48307ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 39, completed 39, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], 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, 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 4633, received 0, lost 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 18 (min 18), ts 2578/0/0 Tx timeouts 0,0,2577,0,0,2054 last cancelled message type 4514 dest 127 === SBC interface === Transfer state: 4, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 20857/20857 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0, IAP RAM available 0x0f624 Buffer RX/TX: 0/0-0, open files: 0 === Duet Control Server === Duet Control Server v3.4-rc1 Code buffer space: 4096 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0 Full transfers per second: 40.50, max time between full transfers: 47.1ms, max pin wait times: 46.5ms/6.9ms Codes per second: 0.45 Maximum length of RX/TX data transfers: 3592/1136
-
Further debug...
I replaced my bltouch with a multimeter set to measure frequency and duty cycle.
Reset the board by pressing the reset button
Measured 0% duty
Sent M280 P0 S90
Measured 7.35% duty at 50Hz
Send M280 P0 S180
no change in measurement
sent m280 P0 s270
no change in measurement.
reset board.
sent m280 p0 s270
measured 12% duty at 50Hz
sent m280 p0 s90
no change in measurement
Thus i think my issue is the same as this thread:
https://forum.duet3d.com/topic/27139/rrf-3-4-0beta7-5-sbc-servo-only-responding-once-after-reset
-
With 3.4b6
Reset the board by pressing the reset buttonMeasured 0% duty
Sent M280 P0 S90
Measured 7.35% duty at 50Hz
Sent M280 P0 S180
measured 12% duty at 50Hz
Send M280 P0 S270
measured 12% duty at 50Hz
Sent M280 P0 S90
Measured 7.35% duty at 50Hz
So updating servo positions multiple times in 3.4b6 works
-
@serbitar I can confirm that this is a bug in 3.4.0rc1. It affects the use of port IO1 on the Duet 3 Mini to connect a servo or BLTouch, but not IO2 or IO3. Are you able to use either of those ports for now? Note that IO3 is shared with the 12864 backlight control.
-
Ah! I will sacrifice one of the runout sensors to put it on io3 and give it a go, thanks.
-
Works great on io3 thanks again.
-
@serbitar I've put corrected firmware for the Mini5+ at https://www.dropbox.com/sh/hx23neagiljflv2/AADxC8_URWgoU_NYcYP8b7XCa?dl=0.
-
bltouch back on io1 with your updated build works. fantastic! thanks!
-
-