Skip to content

About

GUI to configure the ODrive Motor Controller

Resources

Stars

49 stars

Watchers

4 watching

Forks

Repository files navigation

ODrive GUI

A web-based GUI to tweak and debug the ODrive motor controller. It discovers ODrives on the USB bus and renders one live control panel per device. It also comes packaged in a Docker image for easy usage.

Usage

This project uses uv for dependency management. Install the dependencies into a virtual environment:

uv sync

and start the app:

uv run python src/main.py

Then open http://localhost:8080/.

Or just start the Docker container with

docker run -p 8080:8080 --name odrive --rm -it --privileged zauberzeug/odrive-gui:latest

It is convenient (but insecure) to use the --privileged parameter to allow access to USB. You can also provide only the device you want to use with --device=/dev/ttyUSB0 or similar.

Development

No ODrive on hand? Run the GUI against a built-in mock device — useful for UI work, screenshots and tests with no hardware attached:

uv run python tools/run_mock.py        # opens on http://localhost:8113/

Run the checks (the same gates as CI):

uv run ruff check . && uv run ruff format --check .
uv run mypy src
uv run pytest

The mock and its faithful object graph live in tools/mock_odrive.py; see CLAUDE.md for the project map and a hardware-safety note.

About

GUI to configure the ODrive Motor Controller

Resources

Stars

49 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages