Keszoox
AS5600 12-Bit Magnetic Encoder Module — I²C/PWM, 0.087° Resolution, Arduino Motor Control
AS5600 12-Bit Magnetic Encoder Module I²C/PWM, 0.087° Resolution, Arduino Motor Control
Couldn't load pickup availability
AS5600 12-Bit Magnetic Encoder Module — I²C/PWM, 0.087° Resolution, Arduino Motor Control
The AS5600 module is built around the AS5600 contactless magnetic rotary position sensor from ams OSRAM. Using a diametrically magnetized magnet above the IC, it measures absolute angular position from 0° to 360° with 12-bit resolution (0.087° per step) over I²C or analog/PWM output. With no mechanical contact, it provides wear-free position sensing for motor shaft encoders, robotic joint angle measurement, and gimbal control applications.
Key Specifications
| Parameter | Value |
|---|---|
| Sensor IC | AS5600 (ams OSRAM) |
| Resolution | 12-bit (4096 positions per revolution = 0.087°/step) |
| Output Interface | I²C (address 0x36 fixed) + PWM + Analog |
| Supply Voltage | 3.3V – 5V |
| Max Rotation Speed | ~1000 RPM (I²C polling limited) |
| Magnet Type | Diametrically magnetized, 6mm diameter (included on some modules) |
| Operating Temperature | -40°C to +85°C |
| Accuracy | ±0.5° (with proper magnet alignment) |
AS5600 vs AS5048A vs Incremental Encoder
| Feature | AS5600 | AS5048A | Incremental Encoder |
|---|---|---|---|
| Resolution | 12-bit (4096 steps) | 14-bit (16384 steps) | Varies (PPR) |
| Output | I²C / PWM / Analog | SPI / PWM | Quadrature A/B pulses |
| Absolute position | Yes (no homing needed) | Yes | No (relative only) |
| Contactless | Yes | Yes | No (mechanical) |
| Best for | Motor FOC, robotics, gimbal | High-precision servo | Simple speed/direction |
Why Choose AS5600?
- 12-bit absolute position — 4096 unique positions per revolution, no homing required after power-up
- Contactless magnetic sensing — no wear, no mechanical contact, works through non-magnetic enclosures
- I²C interface — only 2 wires needed, easy integration with Arduino and ESP32
- 3.3V–5V supply — compatible with both Arduino (5V) and ESP32/STM32 (3.3V)
- PWM + Analog output — alternative outputs for systems without I²C capability
Compatible With
-
Arduino: AS5600 library by Rob Tillaart —
encoder.getAngle()returns 0–4095 (0–360°) - ESP32: Wire.h I²C at 3.3V or 5V (with level shifter)
- STM32: HAL I²C driver
- SimpleFOC library: AS5600 is natively supported as position sensor for Field-Oriented Control (FOC) motor drives
- Raspberry Pi: smbus2 Python library
Frequently Asked Questions
Q: What magnet do I need for AS5600?
A: Use a diametrically magnetized cylindrical magnet, 6mm diameter × 2.5mm height, placed 0.5–3mm above the AS5600 IC center. The magnet must be diametrically magnetized (N-S poles on the flat faces, not the curved side). Neodymium (NdFeB) grade N35 or N52 works well. Some AS5600 modules include the magnet.
Q: How do I use AS5600 with SimpleFOC for brushless motor control?
A: Install SimpleFOC library in Arduino IDE. Connect AS5600 SDA/SCL to Arduino I²C pins. In code: MagneticSensorI2C sensor = MagneticSensorI2C(AS5600_I2C); sensor.init(); motor.linkSensor(&sensor); SimpleFOC uses AS5600 angle feedback for Field-Oriented Control of BLDC motors with DRV8302 or similar gate driver.
Q: Can AS5600 measure angles greater than 360° (multi-turn)?
A: No — AS5600 measures absolute position within one revolution (0–360°). For multi-turn absolute position, use AS5048A with multi-turn counter or add an external turn counter in firmware by tracking direction changes. For simple multi-turn tracking, use an incremental encoder with a counter register.
Package Contents
- 1× AS5600 12-Bit Magnetic Encoder Module (I²C/PWM/Analog)
