Dust + Encoder = Any experience?

Hi!

Recently we had a mysterious fault with our large scale 3D printer. One of the motors stopped without any obvious reason. After tedious debugging we found out that the motor had been running very hot melting partly its 3D printed bracket. But this wasn’t the source of the fault, just a cause. After we had ruled out everything else only erasing the odrive’s flash helped, with a fresh config.

We even swapped every component of the drive. Board and motor. Only after changing the encoder we got the system working again. So, basically we narrowed down the issue to the encoder. A malfunctioning encoder would likely lead to overheating the motor?

A few weeks ago we had a small accident with the printer with a jammed axis which caused some heavy vibrations and heavy drag on this motor. As the brackets took damage by deformation the motor shaft line has also been altered and that had a direct affect on the encoder sitting on the secondary motor shaft. I suspect that there has been some damage to the encoder disc. There is some silent click noise when I move it slightly by hand.

But I can’t be sure if this is the source of the fault. It can be a secondary damage. Once I opened the encoder I noticed small gray dots on the encoder bracket in a circular pattern that matches the encoder pcb via’s as if there has been smoke or something coming through the pcb. But there are no other signs of smoke, neither does the pcb smell burnt. Also on the outside there are no signs of external smoke, for example from the motor (which btw is ok).

This is somewhat a mystery. I mean the only cause I can think of is dust. Specifically nano-sized plastic dust from the print process. When the printer is running, it generates lots of it. We have it in a separate room where you will need to wear a particle filtering face mask.

Long story short, does anyone have experience with failing encoders due to dust?

1 Like

Yes, encoders in general can fail due to dust, and ODrive is not very robust to encoder failure in my experience either.

Have you tried running the liveplotter, or some other way to verify that the encoder is faulty? Maybe you can check if the index pulse occurs after exactly $CPR counts? (tbh, it would be nice if ODrive did that for you…)