Magnetic Sensor - Measurements

Hello everyone,
I’m currently working on developing a closed-loop system for microstepping in a stepper motor, utilizing the AS500 magnetic sensor to obtain angle values. However, I’ve noticed that its resolution of 12 bits seems to introduce a significant error in the measurements. Can anyone advise if a 12-bit resolution is sufficient or if there are better alternatives available? I’m open to suggestions for new components with higher resolutions that might be more suitable for this application. Any insights would be greatly appreciated!

Angle output:

First, I’m not sure if you’re aware, but simplefoc does support running stepper motors in closed loop, however it doesn’t support using classical step/dir stepper drivers to do so.

Second, nobody here can tell you what resolution is sufficient for your use case unless you share a bit more about your use case. 12 bits is around 20% higher resolution than 16x microstepping. Make sure you’re not interpreting real shaft angle error as the encoder being wrong, microstepping does not guarantee position accuracy inside of one full step.

Last, the as5600 is fairly poor for closing the loop on motion due to the low speed of the i2c interface. There are lots of better choices like the 14bit as5048 with an SPI interface, the mt6701, or the 21bit mt6835. I’ve got some experience with the mt6835 and can definitely suggest it. It has both SPI and an ABZ quadrature interface, the quadrature interface is extremely appealing because many microcontrollers have hardware peripherals that can keep track of the position without any CPU usage.

1 Like

Thank you for the considerations and suggestions. I’ll take a closer look at these components.

Sensor resolution and noise are two separate things.

You can control stepper smoothly even with 10bit resolution and a bit of oversampling. Random noise actually helps with getting average value with oversampling.

In your case +/-2deg of noise seems huge though.

A1333, TLE5012B, AS5047, AS5600 were all used in commercial close loop stepper controllers.