For accurate control of the joint, ODrive requires an encoder. There are many options here, but I wanted something as lightweight and small as possible. Without the need to write a new device driver, ODrive supports encoders using the ABI format so I picked out a magnetic encoder; the AS5047 (in retrospect, I should probably have gone with the AS5147 which has better resolution). This is a single chip encoder which relies on a spinning magnet, attached to the motor shaft, to monitor the motor position.
Attaching the magnet to the motor shaft was a bit of a pain. I tried a couple of epoxies and 3d-printed jig setups before I found something which would center the magnet well and keep it stuck in place - JB Weld for the glue and a two part jig which snuggly held the magnet in place on the motor shaft while the glue dried.
Once the magnet was stuck, the AS5047 board was mounted, face down, above it. I cut down the 3.3V/5V selector and hard-wired it to 5V (see the unsightly solder blob).
With everything assembled I now need to run though the ODrive configuration and calibration process.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Sorry, I was wrong. Different suffixes mean different max speeds. Both have DAEC™ (dynamic angle error compensation). AS5147 has "SEooC (Safety Element out of Context) according to ISO26262, including FMEDA" and AS5047 doesn't. There are slight differences in the incremental encoder output resolution. I buy which ever is cheaper and they operate the same over SPI.
Are you sure? yes | no
What's the difference between AS5047 and AS5147? To me, both of them seem to be equal in terms of precision.
Are you sure? yes | no
AS5147 is better at high acceleration position measurement
Are you sure? yes | no
Can you please explain how AS5147 achieves better performance for high acceleration? Is there any particular element in AS5147 that is not present in AS5047?
I just asked because I read the datasheets of both sensors and I did get much difference. Perhaps I neglected something...
Are you sure? yes | no