Implementing PIDD or PIIDD on odrive 3.6

I have been using Odrive 3.6 for position control and velocity control using the implemented pid on Odrive but I would like to run my own closed-loop controller starting with a PIDD and potentially upgrading to PIIDD or PIIIDDD and have coded everything for the PIDD and I was wondering if I can use the PWM input port of the Odrive 3.6 to use my own close-loop code(PIDD) in order to control the motor and get the encoder feedback using the Odrive too. I’m sorta stuck because I don’t know if I feed the PWM port of the Odrive something like a spwm or something like that will it give me the ability to control the motor with low rpm and accurate position? would really appreciate some help on the topic

Hi there,

What’s the exact reason you’re looking to change the control loop? Is this for increased performance? What’s your application and the issue you’re having?

You can use servo PWM of course.

I think I’m missing the exact question you have - what are you looking to do / have answered?

Hello,
Thanks for the reply, the reason that I’m trying to change the control loop and write my own is increased performance and partly an experiment. This closed loop is for high precision and potentially extremely low rpm and you can run your PIDD and have a PWM output but can not achieve low rpm with a traditional PWM signal it is usually achieved using an SPWM or a three-phase BLDC driver. The question is if I feed low PWM will I be able to control the Odrive slowly, potentially as slow as the position control mode on Odrive library or will it act like a normal BLDC motor driver and spin on high rpm? I can elaborate more if its needed, thank you for your help