ODrive GUI Request for Comments

I think the app needs to make use of the existing failsafe “watchdog” command which informs the ODrive that it will be sending commands at least once every 100ms and if it doesn’t, then stop. That way the software can have a fairly reliable BRB (Big Red Button) in the top left corner of the screen, which the user can click on or hit ESC on their keyboard if their robot is “vibrating itself to death”. :slight_smile:

Not sure about working via ST-Link - sounds like scope creep to me.
CAN on the other hand… :stuck_out_tongue:

Scripting is definitely good, but not sure what a GUI would provide that python/odrivetool doesn’t already?



I’m quite unsure about the role of a GUI, but may be the following:

  • run (CNC) jobs and show their progress
  • can be run on a remote machine (office PC) for monitoring purposes - this implies a client server architecture
  • shows alerts
  • emergency stop
  • show coordinates
  • Digital read-out (DRO) functionality for running semi-automated CNC tasks, therefore…
  • runs on any system (PC, tablet or phone) and…
  • runs an any OS
  • run odrivetool macros
  • configuring odrive controllers
  • multiple client instances

Trinamic has some software tools for their products, it may be worth having a look at it.

Feature requests:

  • Auto-tuning functionality with live plots.
  • Real-world units: e.g. -
    • radians/degrees/metres instead of encoder counts
    • Nm instead of Amps

As for the app framework:
My recommendation would be to build the app around the Theia IDE framework, which is an open source, extensible browser IDE framework based on VS Code (see theia-ide.org ).
The app you develop based on Theia obviously won’t be an IDE, just a series of widgets (e.g. setup, tuning, I/O monitor, parameter setting, plotting etc.) that take advantage of the flexible window layout and stock widgets offered by the framework.

The Theia framework is highly modular with well-defined interfaces which streamlines development - i.e. separate widgets/components can be developed separately with ease. I think this modularity will save the ODrive team a lot of time, not only during initial development, but also when maintaining and adding new features to the app.

Theia is a very active project run by the Eclipse Foundation, with a large community, and so naturally support is quite good.

Theia also supports building to Electron if that’s of any interest to the ODrive team.

A really cool additional benefit of this is that the user would be able to install the app on their Linux-based robot controller (an RPi for example, which would presumably be mounted on their robot), and then access the app from their laptop’s browser over WiFi, which I think is a bit cleaner than having to remote into the Pi.

Thank you!

1 Like
  • autoturning function for pos_gain,vel_gain and vel_integrator_gain.

:cupid: :cupid: :cupid: :cupid:
thank you

1 Like

I got your email a few days ago and tried to reply yesterday. It bounced, not too surprising when I looked at the return address.

What is the good way to communicate with you, Towen and the group?
I have a start on a gui interface for odrivetool. It’s taking more time than I thought to remember how to make pyqt work. I have been out of it for 3+ years though, so not too surprising. I should have a start that will work for a the initial tasks in another day or three. Nothing that is even sort of ready for anyone but fellow devs. How do I share it with you?

The email I tried to send –

From: James Hurlburt hurlburtjl@gmail.com
To: Claude Garrett via ODrive Community noreply@discourse.odriverobotics.com
Date: Sat, 18 Jul 2020 12:52:16 -0700
Subject: Re: [ODrive Community] Calling all UI/UX experts
Sorry for not getting back to you sooner. Things got busy.
I will see if I can knock something together today and tomorrow.
Just a start of a front end for odrivetool.

How do I contact Towen?
What is the process of getting github permission to upload the work I do?


Might I suggest linuxcnc on a pi4.
I have one running headless beside me and can connect to it with vnc from linix. I’m sure there are ways to do the same from windows or mac.

Jim Hurlburt

This discourse forum has PM functions, maybe try sending them a message here

the ability to connect to many odrive ,
no need to apply parameters one step by step .


Dockerise, or at least design it with that in mind.

Much like VSCode can be run natively or in docker for remote access.

Git integration for backups and version control of config changes.

high level API to allow tight integration with other web apps / creating whole machine control apps

Influx DB integration for longer term monitoring