Stall detection not triggering or only triggering
-
I am now on the Duet 2 Wifi and am not able to get it to detect an actual stall. I've tried all of the following variables. This is CoreXY and such, I've configured X and Y. I'm not even going to use it on XY, I'm going to use it on Z, but Z is on a lead screw and I thought that would be harder to tune so I figured I'd start with something easier just to figure out how to calibrate it. Nothing seems to be working.
What's happening is, at M915 S4 the axis won't move. At M915 S5 the axis just crashes and crashes and crashes. I'm assuming at S4 it's just always caught, but it's not logging. I also have logging enabled.
- using different values from 10 to 100 with M913
- different values from 0 to 400 for M915 H*
12:28:16 PMM915 Driver 0: stall threshold 5, filter off, steps/sec 1, coolstep 0, action: log Driver 1: stall threshold 5, filter off, steps/sec 1, coolstep 0, action: log
BTW I noticed the voltage was too high, so I turned it down
12:27:29 PMM122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 2.02(RTOS) running on Duet WiFi 1.02 or later Board ID: 08DGM-917NK-F23T0-6J1F2-3SD6T-KGBWD Used output buffers: 1 of 20 (18 max) === RTOS === Static ram: 25524 Dynamic ram: 99004 of which 0 recycled Exception stack ram used: 600 Never used ram: 5944 Tasks: NETWORK(ready,544) HEAT(blocked,1232) MAIN(running,3812) IDLE(ready,200) Owned mutexes: === Platform === Last reset 00:17:00 ago, cause: software Last software reset at 2019-02-10 12:10, reason: User, spinning module GCodes, available RAM 6032 bytes (slot 1) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d Error status: 0 Free file entries: 9 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest block write time: 0.0ms, max retries 0 MCU temperature: min 32.6, current 33.0, max 33.2 Supply voltage: min 24.1, current 24.2, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: standstill, SG min/max 0/1023 Driver 1: standstill, SG min/max 51/1023 Driver 2: standstill, SG min/max not available Driver 3: standstill, SG min/max not available Driver 4: standstill, SG min/max not available Date/time: 2019-02-10 12:27:28 Cache data hit count 3736076964 Slowest loop: 2.10ms; fastest: 0.08ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0 === Move === Hiccups: 0, StepErrors: 0, LaErrors: 0, FreeDm: 240, MinFreeDm: 238, MaxWait: 13397ms, Underruns: 0, 0 Scheduled moves: 59, completed moves: 59 Bed compensation in use: none Bed probe heights: 0.000 0.000 0.000 0.000 0.000 === Heat === Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 === GCodes === Segments left: 0 Stack records: 2 allocated, 0 in use Movement lock held by null http is idle in state(s) 0 telnet is idle in state(s) 0 file is idle in state(s) 0 serial is assembling a command 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 autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 202.67ms; fastest: 0.08ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 - WiFi - Network state is running WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 3 WiFi firmware version 1.22 WiFi MAC address b4:e6:2d:53:0c:9a WiFi Vcc 3.37, reset reason Turned on by main processor WiFi flash size 4194304, free heap 27816 WiFi IP address 192.168.1.200 WiFi signal strength -39dBm, reconnections 0, sleep mode modem Socket states: 0 0 0 0 0 0 0 0
-
Stall detection is very tricky to get tuned.
What are your steps per mm on Z?
What is your lead screw lead and pitch?
Are you using 1.8 or 0.9 degree motors for Z?
Is it a single Z motor, or multiple?For best results using stall detection on Z you need high steps per mm and a single motor.
In the end, I managed to get it working, but found that the sensitivity was greatly influenced by motor temperature. It would consistently work right after the printer was turned on, but once the motors warmed up it would either trigger too soon, or wouldn't trigger at all. And tuning for the warmed up temp meant it wouldn't work at first power up. I switched back to a z probe ASAP.
-
You may have to experiment with motor speed too, especially if you are using low inductance motors. Stall detection is harder to get working on the XY axes of Core XY machines. I think this is because of the long belt lengths, and because it's possible for one motor to drive the other when an axis is against its stop.