I wanted know if position control of a BLDC motor would require the use of both the inbuilt sensors of the motor as well an external encoder such as the AS5047p with odrive?
Can position control be established on a sensorless BLDC with only encoder such as AS5047p with the odrive?
I actually want to give angular input in degrees and make the motor rotate to that position, the angular position input value would be dynamic and would change 2-3 times per second it would have to rotate in both directions, would this be possible?
Hi! If you have an AS5047P, that’s all you need. The point of the ODrive is to use external encoders to turn motors without hall sensors into high precision servomotors
Yes, that position control is a perfect use for the ODrive!
I’d recommend looking at the ODrive S1 instead of the ODrive v3.6 – the latter is not recommended for new designs, and has some performance and reliability limitations. The S1 is the next generation of ODrive products, and is much easier to use and more powerful and precise.
Thanks you. Also could you suggest the appropriate control mode if I want to rotate the motor from initial 0 to 90 degrees in counter clockwise direction and back from 90 to 0 in clockwise direction while holding at different positions in between?
Sounds like a job for the position control mode you can just specify the position you’d like to achieve, and the ODrive will do it! Note you’ll want to tune pos_gain, vel_gain, and vel_integrator_gain for best performance. You can use different input modes such as POS_FILTER and TRAP_TRAJ to smooth the movements or automatically generate and execute a trajectory, respectively.