SimpleFOC GUI Configuration/ Tunning tool

Hi @David_Gonzalez @Owen_Williams

Hi, I have done a workaround that solved the problem by moving all the files to the same folder. It is not the most elegant solution but it should work after running: python simpleFocStudio.py

Let me know if this solves the issue :slight_smile:

I made a worarraond https://tinyurl.com/y4ul9psf

EDIT: Fixed, it should work without problems as it is in the repository.

That’s better. I got some plots out of it.
image
The UI looks well thought out.

It runs a bit hot on my i7 at faster baud rates but, to be fair, so does platformio serial monitor (which is also python).

The only thing I could set was target. All other ‘sets’ ended up with a response of Target: 0 which suggests the value sent was changed to 0 somehow.

Hi @Owen_Williams

In theory using buttons you can set each parameter and using command line interface you can send any command as if you where typing on the serial console. i just run a test to verify it and it seems to work for meGrabaciĂłn de pantalla 2021-01-20 a las 22.33.33

This version is working perfectly for me :slight_smile: Awesome tool!

Two observations though:
Default bit rate is set to 11520 instead of 115200. Couldn’t find why it wouldn’t work until I saw this :stuck_out_tongue:

Would be nice to see more than two decimal places, sometimes I set my P to 0.002 or less.

Edit: forgot to mention, had an issue with my windows machine, but I found the fix here: This Windows version (6.3.9600) does not support the required bluetooth API. · GIS4WRF/gis4wrf (github.com).

Hi @David_Gonzalez

Nice to hear the you like it :slight_smile: The limitation on the number os decimals comes from SimpleFOC library I do not trim the nunber of decimals neither when sending or receiving , I just take the string and sent it via serial port to the device. I guess that the limitation comes from here:

Captura de pantalla 2021-01-21 a las 3.26.06

It could be easy solved adding a new monitoring function with a an extra parameter, something like this:

void FOCMotor::useMonitoring(Print &print, int numerOfDecimals);


 but this is out of the scope of my application.

1 Like

Hey @JorgeMaker,
This is a great tool, I did not have time to thank you yet. :smiley:
We have already looked into developing a tool like this and you have made our life a lot easier now!

I will resolve this issue of decimal point for the next release, its noted in my todos. Basically print function receives the number of decimal points already.

monitoring_port->print(value, 4); // for 4 decimal places

I would actually like to advise you not to use the monitoring function motor.monitor() but to use the motor commands using commands V1, V2 and V3. It is async but then you can decide your own sampling rate and more time for the motor to do its focing :smiley:
But downsampling works well as well!

Also for the next release I’ll introduce the “verbose” option to the motor commands so that we can avoid the textual outputs.

Finally, based on your interest on node/value interface for simplefoc I have some ideas and I think it would be interesting to discuss more thoroughly in the new thread. Let me create it and explain my vision for the simplefoc and I would love to hear what you think.

Cheers!

1 Like

Hi @Antun_Skuric

The only dependency that I have assumed is what the motor.monitor() function returns through the serial port, which I consider as an external interface. Great, go ahead and create a new thread :slight_smile:

no luck running it with Mac OS

import serial
ModuleNotFoundError: No module named ‘serial’

try doing from the console:

pip install pyserial

Hi @JorgeMaker,
Would be it possible to do worked this HMI under MACOSX, and how ? It seems there is an issue with pyQt5


Thank you in advance.

I went further, but even after to have installed “pip install pyserial”, it replies

import serial

ModuleNotFoundError: No module named ‘serial’

However, I got from console:
Requirement already satisfied: pyserial in /usr/local/lib/python3.7/site-packages (3.5)

Hi @Marc_O,

The tool should work perfectly on MacOS, since in addition to being developed with Python, I made it with my MacBook.

If you describe to me what problem you have with PyQt5, I can try to figure out what is happening.

A couple of days ago I was able to create a SimpleFOCStudio.App to use the tool in MacOS without needing Python installed on your computer. It is not in the repository yet as I am hoping to be able to create the Windows app and add them simultaneously.

On my computer it works perfectly but has not been tested in any other computer. Let me know it works for you.

regards

@JorgeMaker,
Your link works, but the keyboard to enter the parameters of PID, or a command line doesn’t work, and the plotting seems little small


Capture d’écran 2021-02-13 Ă  19.42.38

If you are right @Marc_O , I just realized that when PyInstller generates the application something changes and the validator of the fields stops working correctly. I have to see what exactly happens. The size of the plot is proportional to the dimensions of the main window. If you change the size of the main window it should change.

What I don’t know is what problem PyQt5 can give you, I just ran it on my MacBook from the command line and it doesn’t give me any problem:

       python simpleFOCStudio.py

Although, in principle, executing the requirements.txt file should be done by PyQt5, try to see if this will solve it:

       pip install PyQt5 == 5.15.2

Thank you @JorgeMaker , I will try tomorrow, because I saw I got some issues of file path

I confirm you about your standalone application.

1 Like

Hi @JorgeMaker,
I solved my file path issue, with

export PATH=/usr/local/opt/python/libexec/bin:$PATH

Now, it works with my version python 3.9.1.

Thanks for your help.

Your idea of standalone application is good.

Have a good day.

2 Likes

I’ve noticed that if you change the pen width here to width=1, it uses about 1/2 the cpu usage:


(also change the 2 similar lines below)
1 Like

a few things:

  1. maybe putting “tuning” in the thread title will make this more findable?
  2. I think the new version changed a lot and I can’t seem to find the example that parses out the commands this sends, can you direct me to a working example directly maybe via a github gist?
  3. will this be supporting the new commander protocol? maybe it already does but I can’t find a working configuration.
1 Like

Hi @Jason_Kirsons ,

I have not done any kind of study about CPU usage. I will take a look at what you tell me :slight_smile: Thank you very much for the observation.

Hi @schoch,

The tool is designed to work with SimpleFOC 2.0. I plan to update it to work with the new release but I have not had time yet. The idea is to add support the new commander interface.

Regards