# Reading velocity and torque from hoverboard setup

I have a hoverboard setup by following the instructions on https://docs.odriverobotics.com/hoverboard.html I can set the desired velocity.

In python, how would I read the actual velocity and torque of the motors at each instant? Thank you!

Hi Moorage

The best place to start would be having a look at odrive_demo.py. If you have trouble running the script directly you can try running it through an Anaconda Prompt window by navigating to your odrive tools directory and then entering `python odrive_demo.py`.

Any command that works in odrivetool will work in odrive_demo.py with the only difference being that you replace your normal `odrv0.axis1...` with `my_drive.axis1...`.

The number of encoder counts read per second is given by `my_odrive.axis0.encoder.pll_vel` and so to obtain your velocity in RPM for an 8192 count per rotation encoder you would use `axis0RPM = my_odrive.axis0.encoder.pll_vel)/8192)*60`.

The odrive can not measure torque directly, but instead measures current. If you know the KV of your motor then you can estimate the torque using the following relationship: `axis0Torque = 8.27*my_odrive.axis0.motor.current_control.Iq_setpoint/150) * 100), # Torque [N.cm] = (8.27 * Current [A] / KV) * 100 ])`. If you don’t know the KV of your motor you can try estimating it using this guide or one like it.

It looks like the current documentation does not mention odrive_demo.py in any way so it might be time that we change that. When you become more comfortable using odrive_demo.py would you consider adding a few words about it to the odrive docs under the odrivetool subheading?

Good luck and let us know if you are still having trouble

1 Like

• a hall feedback scheme has 6 counts/ electrical rev
• a standard hoverboard motor has 15 pole pairs, so it’s effectively 90 counts/rev

(remember you can find out by getting `odrv0.axis0.motor.config.pole_pairs`)

Thanks for taking the time to write your detailed post @Richard_Parsons!

Thank you indeed, @Richard_Parsons ! From the torque perspective, I see that there was a similar post How to read the torque of the motor? as well. I’m trying to understand the constants in this equation, and I see from the Google Sheet Motor Guide that 8.27 is from cell `B28`: `=(3/2)/(sqrt(3)*(1/60)*2*PI())`. Is there a description for this equation, I can read up on?

And I’m guessing the last `* 100` in the equation above is to convert from `N.m` to `N.cm`, right? Thank you!

And I’m guessing the last `* 100` in the equation above is to convert from `N.m` to `N.cm` , right?

Yes thats right.

Regarding the torque equation check out the wiki page on motor torque constant.