Getting started is missing details

I’m finally giving this ODrive I bought a while back a try. It’s a version 3.5. I’m trying to run two “hoverboard” motors. These are my thoughts going through the process.

  1. Hoverboard getting started requires the main getting started to be finished first. Maybe add some text to that effect and a link? Google brought me to the hoverboard getting started page.
  2. ODrive needs libjpeg-dev and libz-dev installed to install on Raspberry Pi OS Lite for the “pillow” Python dependency to install correctly
  3. ODrive setup does not add proper udev rules (as it suggests it does in the Getting Started guide)
  4. odrivetool has a bunch of distracting errors on startup:
pi@raspberrydrive:~ $ odrivetool
ODrive control utility v0.4.12
/usr/local/lib/python3.7/dist-packages/fibre/shell.py:104: RuntimeWarning: coroutine 'InteractiveShell.run_code' was never awaited
  console.runcode('import sys')
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/local/lib/python3.7/dist-packages/fibre/shell.py:105: RuntimeWarning: coroutine 'InteractiveShell.run_code' was never awaited
  console.runcode('superexcepthook = sys.excepthook')
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/local/lib/python3.7/dist-packages/fibre/shell.py:106: RuntimeWarning: coroutine 'InteractiveShell.run_code' was never awaited
  console.runcode('def newexcepthook(ex_class,ex,trace):\n'
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/usr/local/lib/python3.7/dist-packages/fibre/shell.py:109: RuntimeWarning: coroutine 'InteractiveShell.run_code' was never awaited
  console.runcode('sys.excepthook=newexcepthook')
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Please connect your ODrive.

odrivetool --help suggests running sudo odrivetool udev-setup which seems to do the udev setup. Maybe this should be added to the getting started?

Now I can run odrivetool as the pi user and it detects my ODrive!

Connected to ODrive xxxxxxxx as odrv0
In [1]: 1
Out[1]: 1

In [2]: odrv0.vbus_voltage
Out[2]: 12.221117973327637

In [3]:

Time for some fun!

Rather than continue with the firmware on your old v3.5 board, I’d highly recommend trying the latest 0.5.1-rc4 firmware - there have been a lot of improvements over the years.

Beware though that you’ll need to upgrade your odrivetool - uninstall odrive from ‘pip’ and instead run python tools/odrivetool directly from the git repo.
The first thing you’ll notice is that the ODrive connects immediately rather than taking 3-5 seconds…

1 Like

I’ve seen that floating around. I’ll give it a shot.