Over temperature shutdown
I had a series of errors earlier have puzzled me somewhat. I'm posting to share/discuss more than to seek help, the problems seems to have settled down for now.
My printer is a custom build CoreXY - about 800mm square, with 4 Z axis motors, I'm using clone Duet 2 Wifi board with Duex 5 expansion board.
Here's a bit of a error log from memory.
- Initially I noticed some areas of the print were very nice, while other areas of the print were rubbish - suggesting bed level. I had leveled the bed before the previous print, so not long ago.
- I kept printing, and eventually noticed that the bed was not going down evenly - which turned out to be due to 2 out of 4 z motors had stopped turning properly.
- I checked the console and noticed that I had 1x over temp shutdown error.
- I aborted the print, and started tracing the problem.
- Up to this point I hadn't installed the heat sinks on the Duex5, so I did this straight away, and tried to re-zero the bed, and I got an over temp shut down error on a different driver, then another.
- over the next few minutes I got over temp shut down errors on almost all other drivers.
Here's some other info:
- Using an IR temp sensor, I couldn't detect anything more than about 25°C on the drivers directly, or the heat sinks, and they weren't warm to the touch.
- Driver 0, 3 and 9 are not used - no motors plugged in. Though I still got errors from Drivers 3 and 9
- Drivers 1 and 2 are A and B motors, Driver 4 is an extruder motor, then drivers 5, 6, 7 and 8 are Z axis motors.
- This is the first time I've seen these errors and I've been using the printer for a few months now.
- I've now dropped the Z Axis (only) motor current from 1200mA to 1000mA, run G29 bed levelling, and re-started the print, and it seems stable.
- What looks like an over temp shut down error, but isn't one?
- Is there any way to report the motor driver temps?
- If so, is there any way to pause/hold/slow or otherwise react to temps or temp warnings?
The drivers don't report temperatures, they report flags, either a warning, or an over temp. If you want the actual temp you'd have to attach a thermistor. The actual temp to trigger those warnings is over 100c and 150c respectively I seem to recall. You could look up the 2660 data sheet for more specifics maybe. https://www.trinamic.com/fileadmin/assets/Products/ICs_Documents/TMC2660_datasheet.pdf
If you're sure the temperatures aren't anywhere close to that and you believe they are false, it could be a failing driver, but it would seem odd that multiple drivers would all be failing at the same time in that way.
It could be a wiring and communication issue between the duet and duex, but it also seems odd that it would only manifest now after working fine for months.
However, that's all based on assuming the genuine duet and clone duet are identical. So all bets are off there.
@Phaedrux Thanks for the reply. I accept that I'm inviting problems using clones, and I've had to fight off a few so far - but those were more obvious.
The printer has been working steady for the last 3 hrs, and it has another 20+ on this print so I'll know tomorrow. But this is already longer than the previous print.
I did shift/move wiring while I was installing the heat sinks, but it's more likely to disrupt them further rather then cure problems if it's a wiring problem.
Is there any reason why 1200mA might be enough to cause heat related problems in the drivers?
The Z stepper motors themselves were quite warm, but probably around the 60deg mark.
The fact that you are getting over temperature shutdown notifications from (almost) all drivers indicates a problem with the SPI communication between the microcontroller and the drivers. If you run M122, you will probably find that the drivers are also reporting all the other status flags.
@dc42 Thanks for that. I'll keep it in mind next time it occurs... For now it seems under control.
In the screenshot below - what's "SG"? and why would it be different for Driver 8 compared with 5, 6 and 7? They're all Z axis drivers, configured the same (or so I thought).
SG= stallguard. See page 10 of the datasheet i linked above.
10-bit unsigned integer stallGuard2
measurement value. A higher value indicates
lower mechanical load. A lower value indicates
a higher load and therefore a higher load angle.
For stall detection, adjust SGT to return an SG
value of 0 or slightly higher upon maximum
motor load before stall.