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”.
Not sure about working via ST-Link - sounds like scope creep to me.
CAN on the other hand…
Scripting is definitely good, but not sure what a GUI would provide that python/odrivetool doesn’t already?
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.
Garrett:
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
Cc:
Bcc:
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.
Hi! Any updates (progress) on your plans for making an ODrive GUI?
Have you seen this ODrive UI (see below)? It seems pretty cool and functional already? Maybe you could partner with its creator (tinker_inc) or use its code?