ODrive 3.6 - How to connect?


It seesm something has updated and now odrivetool doesn’t work at all on my linux installation:

File “/usr/local/bin/odrivetool”, line 26, in
from fibre import Logger
File “/usr/local/lib/python3.9/dist-packages/odrive/pyfibre/fibre/init.py”, line 4, in
from .libfibre import Domain, ObjectLostError
File “/usr/local/lib/python3.9/dist-packages/odrive/pyfibre/fibre/libfibre.py”, line 76, in
lib = cdll.LoadLibrary(lib_path)
File “/usr/lib/python3.9/ctypes/init.py”, line 452, in LoadLibrary
return self._dlltype(name)
File “/usr/lib/python3.9/ctypes/init.py”, line 374, in init
self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/python3.9/dist-packages/odrive/pyfibre/fibre/libfibre-linux-aarch64.so: wrong ELF class: ELFCLASS64

No idea why its stopped working but the live plotter wasn’t working anyway so I couldn’t tune my new drives. Now I can’t use the other drives either.

Any ideas as I’m completely stuck now!
How do I use the GUI tool with this drive?

What was updated? The operating system? Or odrivetool?

What distribution is this and is it a 32-bit or a 64-bit system? On some Linux distributions you can do uname -a to check (copy the output).

The GUI is only compatible with newer ODrives (Pro/S1).

Its running on a raspi 4,

Linux raspberrypi 6.1.19-v8+ #1637 SMP PREEMPT Tue Mar 14 11:11:47 GMT 2023 aarch64 GNU/Linux

I updated the operating system which seems to have broken it…


Have you tried to remove and install Odrive again? For me that did the job a couple of times. @MattSav

Just happened to me, too. This is the 3rd pi I’ve put odrive on in the last 5 days, and for some reason the install went sideways on this one and gives me the ELFCLASS64 error. I’ve tried

  • uninstalling and reinstalling (didn’t help),
  • uninstalling, rebooting, and reinstalling (didn’t help).

I guess I’ll try more times?

I have a Raspberry Pi 4 and a 3.5 ODrive. I just installed the odrivetool with

sudo pip3 install --upgrade odrive

I got

OSError: /usr/local/lib/python3.9/dist-packages/odrive/pyfibre/fibre/libfibre-linux-aarch64.so: wrong ELF class: ELFCLASS64

when I ran odrivetool. I have python 3.9.2 and it reports as 32bit. The library is 64bit, hence the error. My, admittedly kludgy, fix was to copy the 32bit armhf library over the aarch64 one.

It would be wise to make a backup of libfibre-linux-aarch64.so first, or move it somewhere.

cd /usr/local/lib/python3.9/dist-packages/odrive/pyfibre/fibre
sudo cp libfibre-linux-armhf.so libfibre-linux-aarch64.so

odrivetool works fine now, hope this helps.