TMC Driver Overtemp
Hi There,
I am scared to even ask this because i am sure the answer is bad.
My MK3 has been working amazing and then i tried to make the wires in the control box a little cleaner as i plan putting a pi zero in. When i closed it up and turned it on, i heard a quick pop. I turned it right off and now when i power it on i get a message that says "TMC Driver Overtemp" right away.
How bad is it...? 🙁
Re: TMC Driver Overtemp
You probably let the smoke out of a component. Open it back up, take a look, sniff around. Whatever popped might be evident...
Re: TMC Driver Overtemp
Yeah, I have taken the board out but don't see anything obvious. Clearly hoping it is 1 of the fuses but they look ok (hard to tell). The obvious choice would be the caps but they all look fine. Would love to know from prusa which component might flag that message on the LCD. It powers up which I guess is the good news.
Re: TMC Driver Overtemp
The trinamic drivers include a temperature safety check. Specifically, your printer has triggered the overtemperature pre-warning flag. Either because it is too hot - the trigger for the error seems to be around 120 degrees - or because something is broken. In any case it seems to be a hardware error.
Re: TMC Driver Overtemp
Thanks a lot for that link Zaz. It is super helpful. It looks like it is possible the issue was caught before it could do permanent damage according to the document. I will read it more and try following its debug steps.
Re: TMC Driver Overtemp
I would also definitely advise you to contact Prusa support, if you haven't already. 🙂
Re: TMC Driver Overtemp
Ok, so i am doing some more debugging and connected up the serial monitor and found more info.
It has nothing to do with the Temp Error, it looks like the Z and E TMC2130s are returning status of 0xFF. This leads me to believe the chip is disabled because a pin is high when it should be low or low when it should be high. I am not an expert but if it were fried competely, i don't think i would get any status back from the I2C call. Correct? Is there a way to reset the driver or maybe is there a likely component or pin on the TMC2130 that i can trace to find the issue?
In the documentation it says the following, i don't know how to "disable and re-enable" the driver:
Once a short condition is safely detected, the corresponding driver bridge becomes switched off, and
the s2ga or s2gb flag becomes set. In order to restart the motor, the user must intervene by disabling
and re-enabling the driver.
I am already resigned to probably having to order a new board, I am just using this as a learning opportunity and hoping maybe i can save it.
2 = Z_TMC2130_CS
3 = E0_TMC2130_CS
Trying to write to them returns 0x0 or 0xFF
tmc2130_wr(2, 0x6C, 0x140300D3)=0x0
tmc2130_wr(2, 0x10, 0xF1919)=0x0
tmc2130_wr(2, 0x11, 0x0)=0xFF
tmc2130_wr(2, 0x0, 0x3180)=0xFF
tmc2130_wr(3, 0x6C, 0x120100D3)=0x0
tmc2130_wr(3, 0x10, 0xF1111)=0x0
tmc2130_wr(3, 0x11, 0x0)=0xFF
tmc2130_wr(3, 0x0, 0x3180)=0xFF
And calling DRV_STATUS it returns 0xFF for 2 and 3 (0 and 1 seem fine)
tmc2130_rd(0, 0x6F, 0x800D0000)=0x39
tmc2130_rd(1, 0x6F, 0x80140000)=0x39
tmc2130_rd(2, 0x6F, 0xFFFFFFFF)=0xFF
tmc2130_rd(3, 0x6F, 0xFFFFFFFF)=0xFF
Same when it is trying to write
tmc2130_wr(0, 0x6C, 0x10000)=0x39
tmc2130_wr(1, 0x6C, 0x10000)=0x39
tmc2130_wr(2, 0x6C, 0x10000)=0xFF
tmc2130_wr(3, 0x6C, 0x10000)=0xFF
Re: TMC Driver Overtemp
Cool. I think you disable/enable the stepper by setting "TOFF" to zero/nonzero respectively. Look at the chopper configuration table on page 35 in the specsheet.
So
tmc2130_wr(2, 0x6C, 0x10000);
tmc2130_wr(2, 0x6C, 0x10003); // or whatever is correct for initialization
should do it. If that is the problem. It probably isn't.
Re: TMC Driver Overtemp
The return values seems to be SPI status. Only the 4 lsb mean anything: standstill, stallguard active, driver error, reset occured. It says the last two can be cleared by reading gstat, but I'm not sure if that really works for driver error. what does gstat (0x01) say if you read it?
To read the actual values from tmc2130_rd you need to send a pointer into the third parameter. The function will write the result into that parameter, and just return the spi status.
like this:
uint32_t data = 0;
uint8_t spi = tmc2130_rd(3,0x6f,&data);
printf("drv_status is 0x%08x\n", data);
printf("spi status is 0x%01x\n", spi);
Or I suppose not printf, but whatever debugging function you're using to read the values.
EDIT: Disregard that, I realised you're using the serial monitor. The serial monitor outputs correct values obviously.
Re: TMC Driver Overtemp
Yeah, I read that too. Isn't that what the command below does.
tmc2130_wr(3, 0x6C, 0x10000)=0xFF
The other 0x6C command turns them on so I thought that counted as a cycle. I could try doing them both back to back I guess.
Re: TMC Driver Overtemp
No you're right, the steppers are most likely broken. The reads being all ones are a dead giveaway. Are there any adresses you can read that doesnt just return 0xFFFFFFFF with 0xFF as spi status?
Also just power cycling the 3d printer should also count as enable/disable, right?
Re: TMC Driver Overtemp
The drivers are usually programmed in serial order, so the first (Z) is probably dead.
Re: TMC Driver Overtemp
Had this happen to me, I think it's probably when you were fiddling with the wires. For me I was playing with the y axis during a print. I tried homing and noticed that the Y was chugging. I opened it up pulled out the y cable, and one of the pins was a little loose, pushed it back in and everything was working fine again. I'd recommend checking your pins are all the way in their housing.
Re: TMC Driver Overtemp
Thanks for the tip. If you saw my comment on page 1, I unplugged everything (even LCD) and booted up with console. It fails to initiate 2 TMC2130s. So can't be a loose wire.
Re: TMC Driver Overtemp
Hi!
I got this message today for the first time, mid print.
Rebooted and things seemed fine for a while. Came back later and a large blob of pla had formed around the nozzle. Oops?
Not sure what I should do. The warning appears after ~20 minutes of printing. This machine has been operating fine (and I have not fiddled with it) since it was assembled uh.. November 2017?
I’ll try checking the pins are still well seated.
Re: TMC Driver Overtemp
I got that message 3 times now. Dont belive that it has something to do with the wirering because mutiple prints between these errors have been fine, even much larger prints.