AS5600 (one direction dead zone)

Hi all.

I am new to this but decided to try the AS5600 module.

And I got a problem. By turning it clockwise, the sensor works well and the data is correct. Then, at the moment of starting the rotation in the opposite direction, the sensor has a dead zone of 10 degrees, and then it stores an error of 10 degrees at each value.
Example:

  1. Current 10. I put 30. The sensor shows 30. Everything is fine.
  2. Current 30. I put 10. The sensor shows 20!!! Further, the error during rotation in the same direction (counterclockwise) remains constant. To reset the error, I need to scroll it clockwise (in the other direction).

The DIR contact does not change when pulling to ground or power, except for the direction of rotation. I work according to the i2c protocol. The magnet is axial, cubic. I read the raw angle, it does not give results.

Encoder photo: (AS5600):
image

How to fix this problem?
I would be grateful for any advice!

Hi Laytin,

Welcome to SimpleFOC!

This is a very strange error that you describe - I have never heard this before.

AS5600 is not the best sensor in terms of performance or accuracy, but it is actually not hard to use. It normally works well with the MagneticSensorI2C class, and apart from the performance people don’t tend to have problems.

If you have an oscilloscope, you can check that the sensor is working by probing the PWM pin.

But from the sounds of things the problem is your magnet. Are you sure your magnet is the correct kind? It sounds like it is not.

Magnets for this sensor are usually circular disks (not cubic) and have to be diametrically magnetized. Axially magnetized magnets can not work.

Having the wrong magnet is a common problem for inexpensive sensors bought on AliExpress.