Position Sensors

This library supports these types of off-the-shelf position sensors:

  • Encoder:
    • Sensor that counts A, B and index channels impulses to estimate the position.
    • Examples:
  • Magnetic sensor:
    • Sensor that uses precise magnetic field measurement to estimate the position.
      • They come with multitude of different communication standards such as: SPI, SSI, I2C, ABI, UVW, PWM…
      • Supported communications: (releases )
        • SPI, I2C, Analog, PWM
        • UVW (using the hall sensor interface)
        • ABI (using the encoder interface)
    • Examples : AS5048A , AS5047U , AS5600
  • Hall sensors:
  • Generic sensors: NEW📢
    • Simplified implementation of your custom sensors - only one function to implement

All classes of sensors are implemented in generic way in order to support as many of their versions as possible.

Supporting additional sensors

If you are interested to see what does it take to enable your code to run with different type of sensor or with the communication interface that has not been implemented in the Arduino SimpleFOClibrary yet, check out the short example how to implement new sensor source. For more details about the theoretical parts of the code and the source code documentation visit digging deeper section.


We've also created a simplified interface for implementing new sensors in a context of the GenericSensor class. With it you can add your custom sensor to the SimpleFOClibrary by implementing only one function. Check the new sensor class

SimpleFOC Community

Finally, if you have implemented a new type of sensor to the library or you are searching for help to implement some specific sensor type don’t hesitate to post in community forum

It is always helpful to hear the stories/problems/suggestions of people implementing the code and you might find a lot of answered questions there already!