vedderb / vesc_tool Goto Github PK
View Code? Open in Web Editor NEWThe source code for VESC Tool. See vesc-project.com
License: GNU General Public License v3.0
The source code for VESC Tool. See vesc-project.com
License: GNU General Public License v3.0
When I issue a terminal command with "realtime data" running, I can't issue further commands without disconnecting and reconnecting. When I turn off realtime data, I can issue further commands.
I'm running vesc_tool_free 0.84 . My self-compiled version does not work (see issue #7)
Tested on 2.06 and 3.00
After select "Current No Reverse Brake ADC2" on input wizard, next page shows "Current" as control type selected.
Only after select "Current No Reverse Brake ADC2" (or whatever type you're configuring) and write config it behaves as expected.
I made a video here:
https://www.youtube.com/watch?v=QmVxjRLJ99U
so it moves a bit but does not make a full rotation.
Some more context here:
https://vesc-project.com/node/2637
Using Mini FSESC4.20 with two hall sensors as throttle (ADC) and brake (ADC2), why brake signal polutes throttle?
"Current No Reverse Brake ADC2" is even worst as suppose I have a center throttle and I start backwards!
I'm using VESC tool 2.06 free on linux (downloaded from your website) and upload last firmware on my VESC.
NOTE: I probably can rebuild tool if there's anything I can try
To ease distribution on *nix environments I have created flathub/flathub#2043 so VESC tool can be distributed through flatpak.
Let me know if you're interested on that kind of release to polish icon, metadata and do final submit.
flathub allows beta version if you need feedback for unrelease code.
I'm not sure about the options to release Platinum, Gold, Silver, Bronze through an app store that allows payments: More info here
I have VESC Tool 2.06 on Windows 10 and attempting to run the Input Setup Wizard causes the following error even though both of my ESCs are running the same version:
"Your VESC (or one of the VESCs on the CAN-bus) has old firmware, and needs to be updated. After that, the motor configuration has to be done again."
I am connected to the primary VESC over USB, and the secondary VESC is connected to the primary over CAN bus. Here is the output from the debug console and you can see both report as having firmware version 5.1:
2020-07-05 18:18:52: Status: MC configuration updated
2020-07-05 18:18:52: Status: App configuration updated
2020-07-05 18:18:55: Status: VESC Firmware Version 5.1, Hardware: 410, UUID: 43 00 35 00 10 50 4D 4D 4E 39 37 20
2020-07-05 18:18:56: Status: VESC Firmware Version 5.1, Hardware: 410, UUID: 35 00 1F 00 06 50 4D 4D 4E 39 37 20
2020-07-05 18:18:59: Status: MC configuration updated
2020-07-05 18:18:59: Status: App configuration updated
...
2020-07-05 18:24:04: Status: App configuration updated
2020-07-05 18:24:04: Status: APPCONF Write OK
2020-07-05 18:24:06: WARNING (:0 ): Appconf not received
2020-07-05 18:24:06: Status: App configuration updated
2020-07-05 18:29:07: Status: App configuration updated
The WARNING message appears right before the moment the firmware mismatch error occurs, so maybe there is a timeout occurring during the wizard and causing the isLimitedMode()
codepath? https://github.com/vedderb/vesc_tool/blob/master/setupwizardapp.cpp#L104
It would be nice if there was a checkbox that could override the firmware version check and allow the wizard to continue.
This is the silliest complain, but I can't find where can I fix it in the code.
In our dyno we are running 2 instances of vesc tool on the same monitor, and until very recently we could fit the 2 instances in the same screen:
But its not possible anymore.
Any clue if/where we can change this minimum size limit?
I've gone to every website to get this VESC tool because I think it will help me get my electric longboard running but I can't seem to find anything other than this source code. I have it extracted but have no idea what to do from here. Any help would be much appreciated.
In addition, I've tried using the BLDC tool and it said my VESC firmware is too old. I have a 4.12 VESC and 2.18 BLDC tool. I tried turning on the motor without adjusting anything on a online tool and I'm scared I might be damaging the motor by doing so.
In some android phones you can't do realtime data loggings.
This has been reported by a user that installed the app from google play:
In our team we can reproduce the same issue with a Note 9 phone.
Logging works on my samsung S8. The hardcoded "file:///sdcard/" is a bit confusing because the phone has no SD card, but I don't think its related to the logging issue.
I wish I could help fixing this, but don't even know where to start
Starting with VESC tool version 1.09 (on linux), I'm having trouble with the FOC section to detect and calculate parameters. It keeps leaving R=0, but gives a value for L. I can't manually enter an R value with the detection tool.
This is a small hobby motor (Turnigy DST-1200) that worked ok with VESC tool version 1.08 on windows. I'll go back to that version and see if I can do the sensor detection again.
As a side note, it would be nice if the git repo had tags corresponding to tool and/or firmware release numbers (e.g., 61908a5 for tool v1.08).
Our VESCs hardware Version 6 show some erratic behaviour with saving the Motor and App parameters from the VESC-Tool to the VESC controller.
The wizards for setting up Motor and Input work fine.
Steps to reproduce:
Hard/ -Firmware:
Maytech SUPERFOC6.8 50A VESC6-based speed controller - two VESCs with different Soft/firmware show the same bug:
While working with an issue we are trying to solve in Axiom, I encountered that Temperature Compensation control, in VESC firmware, was not only being used in "observer_update()" function, that is used when using Sensorless mode, but also in "control_current()" function, that is used in every mode.
So maybe we can move the "Temp Comp" and "Temp Comp Base Temp" inputs, to the Advanced tab, as a user with a setup that is not using Sensorless Mode, may not be aware that these controls, are also being used.
This line says that serialbus breaks serialport:
https://github.com/vedderb/vesc_tool/blob/master/vesc_tool.pro#L44
I tried building VESC Tool 2.04 statically for linux (./build_lin_original_only) and both USB serial and canbus interfaces work for me.
I also compiled VESC Tool for ARM and tested this on a raspberry pi and both serial and canbus worked for me using ./build_lin_original_only (the binary needs some dependencies to run there)
So I couldn't reproduce the issue... should I test it on windows machines?
"current no reverse brake button" ungreys adc2 reading when it does not appear to use it while
"current no reverse brake adc2 greys out adc ch2 reading while obviously reading it. perhaps the greyout mask is set or indexed wrong?
(fyi, this is currently on adc + uart mode if it makes a difference)
also, the voltage mapping list is very nondescriptive. the help could use a list of what the different options do. or perhaps a table of what options enable what inputs and what they do.
Going off of that, is it possible/implemented to have a current brake center like option, but where there is a button input to do reverse? The mapping options do not make it obvious if something like this is possible. another reason to have a table.
Haven't checked if this is true for linux, but on windows if you start the detect_all_foc command with CAN forwarding already enabled it bugs out after detection and throws "all vescs must have same firmware" error.
Probably easy fix is just to assert no CAN forward before process begins.
All PID controllers lack a low pass filter for the D part (as far as I see). This is essential to get
a good response of the PID speed controller with low noise and low overshoot. Should be easy to implement.
Setting an VESC with a throttle (ADC) and a brake (ADC2) input wizard seems confusing.
In "Current Reverse ..." modes throttle is suppossed to have a center position (accelerating on forward and braking or going back on backward) and "Current No Reverse ..." modes the input is linear (start position do nothing and max position accelerates or brakes at maximum) but they seem mixed.
Off (All input disabled/greyed as expected):
Current Reverse Center (this looks correct):
Current No Reverse Brake Center (shouldn't brake be greyed? and throttle have a center?):
Current control. The output is off when the input is centered. Input less than center brakes until the motor stops, but not further.
Current No Reverse Brake ADC2 (ADC shows an incorrect center input, and ADC2 is wrongly disabled):
Current Reverse Button Brake Center (shouldn't current have a center position?)
Current control with a button for reversing throttle. The output is off when the input is centered. Input less than center brakes until the motor stops, but not further.
After select any of them, next page sets always "Current" as control type:
In this page, the control type behaves as expected, with "Current No Reverse Brake ADC2" being the correct choose for two separate inputs to control acceleration and brake.
VESC tool is 2.06
Workaround:
This seems just a wrong match between enum for control type and widgets representing ADC and ADC2:
Looking at enum definition:
0 <enumNames>Off</enumNames>
1 <enumNames>Current</enumNames>
2 <enumNames>Current Reverse Center</enumNames>
3 <enumNames>Current Reverse Button</enumNames>
4 <enumNames>Current Reverse ADC2 Brake Button</enumNames>
5 <enumNames>Current Reverse Button Brake Center</enumNames>
6 <enumNames>Current No Reverse Brake Center</enumNames>
7 <enumNames>Current No Reverse Brake Button</enumNames>
8 <enumNames>Current No Reverse Brake ADC2</enumNames>
9 <enumNames>Duty Cycle</enumNames>
10 <enumNames>Duty Cycle Reverse Center</enumNames>
11 <enumNames>Duty Cycle Reverse Button</enumNames>
12 <enumNames>PID Speed</enumNames>
13 <enumNames>PID Speed Reverse Center</enumNames>
14 <enumNames>PID Speed Reverse Button</enumNames>
and code: https://github.com/vedderb/vesc_tool/blob/master/widgets/adcmap.cpp#L129-L155
void AdcMap::on_controlTypeBox_currentIndexChanged(int index)
{
switch (index) {
case 2: // Current Reverse Center
case 4: // Current No Reverse Brake Center
case 8: // Duty Cycle Reverse Center
ui->displayCh1->setDual(true);
break;
case 0: // Off
case 1: // Current
case 3: // Current Reverse Button
case 5: // Current No Reverse Brake Button
case 6: // Current No Reverse Brake ADC2
case 7: // Duty Cycle
case 9: // Duty Cycle Reverse Button
ui->displayCh1->setDual(false);
break;
default:
break;
}
ui->displayCh1->setEnabled(index != 0);
ui->displayCh2->setEnabled(index != 0);
ui->displayCh2->setEnabled(index == 6);
}
Seems it is using and old definition:
case 0: // Off
case 1: // Current
case 2: // Current Reverse Center
case 3: // Current Reverse Button
case 4: // Current No Reverse Brake Center
case 5: // Current No Reverse Brake Button
case 6: // Current No Reverse Brake ADC2
case 7: // Duty Cycle
case 8: // Duty Cycle Reverse Center
case 9: // Duty Cycle Reverse Button
I don't understand all the modes, but probably can figure out a PR to fix most of them.
old | new | type |
---|---|---|
0 | 0 | Off |
1 | 1 | Current |
2 | 2 | Current Reverse Center |
3 | 3 | Current Reverse Button |
not exists | 4 | Current Reverse ADC2 Brake Button |
not exists | 5 | Current Reverse Button Brake Center |
4 | 6 | Current No Reverse Brake Center |
5 | 7 | Current No Reverse Brake Button |
6 | 8 | Current No Reverse Brake ADC2 |
7 | 9 | Duty Cycle |
8 | 10 | Duty Cycle Reverse Center |
9 | 11 | Duty Cycle Reverse Button |
not exists | 12 | PID Speed |
not exists | 13 | PID Speed Reverse Center |
not exists | 14 | PID Speed Reverse Button |
Probably your gently reminder to not use "magic" numbers on code.
on high resolution screens (lg g6 in this case) the first time run terms and agreements popup is so small it is impossible to scroll through the terms / warnings and click on the check boxes. This popup should be disabled on android or scaled properly.
kudos to getting it working on android though.
An input to allow the discharge side of a BMS setup as charge only to be monitored by the vesc, to notice if the BMS is cutting power to protect a cell in the battery. This would then initiate the vesc into a soft power cut-off to protect both the battery and rider from damage. This would enable the functionality of a discharge BMS with much improved safety to the rider, and does away with the need for a high power BMS to protect cells from under voltage.
The compiling documentation on http://vedder.se/2015/01/vesc-open-source-esc/ is out of date.
the compiling information should really live in vcs .md files to be a single source living document.
The readme.md or a separate compiling.md should give step by step instructions on how to set up an environment and compile vesc tool from a clean system. Preferably working on at least ubuntu 20.04 and windows (possibly through wsl)
I will take a stab at creating this documentation as I figure it out.
Hi Benjamin,
The new VESC Tool 2.0 is a huge step in the history of the project !
Thanks for this amazing work.
Could you provide a quick HOW-TO or tutorial for letting us build and contribute to add support to older FW than 3.60 ?
I guess that is a tedious work to do and you may wish focus on more interesting points.
Thanks in advance !
Clément
In the GUI it should be mentioned, which hardware version must be selected for Focbox/ Vesc-X.
It is hardware 410 & 411 & 412.
I'm using an esp8266 module for communicating with VESC. It makes sense to add such a feature inside the mobile GUI, since the implementation is already there.
I've made a quick and dirty patch for this on my branch:
walmis@fb94f8c#diff-d29046475a571f2dda6e687faa0c3f80
Luckily i have backups so i don't think i loosed anything but still
anyway here is the ouptut it made
❯ ./build_lin
Info: creating stash file /home/alkeryn/tmp/vesc_tool/.qmake.stash
Project ERROR: Unknown module(s) in QT: quickcontrols2 serialport
make: *** Aucune règle pour fabriquer la cible « clean ». Arrêt.
make: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt.
./build_lin: ligne 31 : cd: build/lin: Aucun fichier ou dossier de ce type
adding: android/ (stored 0%)
adding: application/ (stored 0%)
adding: bleuart.cpp (deflated 73%)
adding: bleuart.h (deflated 59%)
adding: build_all (deflated 66%)
adding: build_android (deflated 67%)
adding: build_cp_fw (deflated 27%)
adding: build_lin (deflated 66%)
adding: build_lin_original_only (deflated 23%)
adding: build_win (deflated 71%)
adding: build_win_original_only (deflated 28%)
adding: commands.cpp (deflated 79%)
adding: commands.h (deflated 64%)
adding: configparam.cpp (deflated 58%)
adding: configparam.h (deflated 53%)
adding: configparams.cpp (deflated 87%)
adding: configparams.h (deflated 74%)
adding: datatypes.h (deflated 68%)
adding: digitalfiltering.cpp (deflated 69%)
adding: digitalfiltering.h (deflated 52%)
adding: main.cpp (deflated 62%)
adding: mainwindow.cpp (deflated 79%)
adding: mainwindow.h (deflated 69%)
adding: mainwindow.ui (deflated 89%)
adding: mobile/ (stored 0%)
adding: packet.cpp (deflated 64%)
adding: packet.h (deflated 48%)
adding: pages/ (stored 0%)
adding: parametereditor.cpp (deflated 78%)
adding: parametereditor.h (deflated 59%)
adding: parametereditor.ui (deflated 91%)
adding: README.md (deflated 19%)
adding: res/ (stored 0%)
adding: res_bronze.qrc (deflated 43%)
adding: res_free.qrc (deflated 44%)
adding: res_fw_original.qrc (deflated 74%)
adding: res_fw.qrc (deflated 85%)
adding: res_gold.qrc (deflated 43%)
adding: res_neutral.qrc (deflated 44%)
adding: res_original.qrc (deflated 44%)
adding: res_platinum.qrc (deflated 44%)
adding: res.qrc (deflated 84%)
adding: res_silver.qrc (deflated 44%)
adding: setupwizardapp.cpp (deflated 82%)
adding: setupwizardapp.h (deflated 79%)
adding: setupwizardmotor.cpp (deflated 80%)
adding: setupwizardmotor.h (deflated 78%)
adding: startupwizard.cpp (deflated 76%)
adding: startupwizard.h (deflated 64%)
adding: utility.cpp (deflated 65%)
adding: utility.h (deflated 50%)
adding: vbytearray.cpp (deflated 73%)
adding: vbytearray.h (deflated 58%)
adding: vescinterface.cpp (deflated 76%)
adding: vescinterface.h (deflated 65%)
adding: vesc_tool.pro (deflated 67%)
adding: widgets/ (stored 0%)
rm: impossible de supprimer 'android': est un dossier
rm: impossible de supprimer 'application': est un dossier
rm: impossible de supprimer 'mobile': est un dossier
rm: impossible de supprimer 'pages': est un dossier
rm: impossible de supprimer 'res': est un dossier
rm: impossible de supprimer 'widgets': est un dossier
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *; *; *; *.ts; *.xlf; *.qrc
Note: The created .pro file probably will
need to be edited. For example add the QT variable to
specify what modules are required.
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings; specific ones may be re-enabled by
later -W options
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings (on by default)
-Wdeprecated Turn on deprecation warnings (on by default)
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be *
* processed before [files] by default. *
-o file Write output to file
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-early All subsequent variable assignments will be
parsed right before default_pre.prf
-before All subsequent variable assignments will be
parsed right before [files] (the default)
-after All subsequent variable assignments will be
parsed after [files]
-late All subsequent variable assignments will be
parsed right after default_post.prf
-norecursive Don't do a recursive search
-recursive Do a recursive search
-set <prop> <value> Set persistent property
-unset <prop> Unset persistent property
-query <prop> Query persistent property. Show all if <prop> is empty.
-qtconf file Use file instead of looking for qt.conf
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
make: *** Aucune règle pour fabriquer la cible « clean ». Arrêt.
make: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt.
./build_lin: ligne 41 : cd: build/lin: Aucun fichier ou dossier de ce type
zip warning: name not matched: This
zip warning: name not matched: video
zip warning: name not matched: is
zip warning: name not matched: blocked.-x4aD_cJAoJE.mp4
updating: App/ (stored 0%)
updating: bin/ (stored 0%)
updating: Cloud/ (stored 0%)
updating: Downloads/ (stored 0%)
updating: Drives/ (stored 0%)
updating: tmp/ (stored 0%)
rm: impossible de supprimer 'App': est un dossier
rm: impossible de supprimer 'bin': est un dossier
rm: impossible de supprimer 'Cloud': est un dossier
rm: impossible de supprimer 'Downloads': est un dossier
rm: impossible de supprimer 'Drives': est un dossier
rm: impossible de supprimer 'This': Aucun fichier ou dossier de ce type
rm: impossible de supprimer 'video': Aucun fichier ou dossier de ce type
rm: impossible de supprimer 'is': Aucun fichier ou dossier de ce type
rm: impossible de supprimer 'blocked.-x4aD_cJAoJE.mp4': Aucun fichier ou dossier de ce type
rm: impossible de supprimer 'tmp': est un dossier
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *; *; *; *.ts; *.xlf; *.qrc
Note: The created .pro file probably will
need to be edited. For example add the QT variable to
specify what modules are required.
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings; specific ones may be re-enabled by
later -W options
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings (on by default)
-Wdeprecated Turn on deprecation warnings (on by default)
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be *
* processed before [files] by default. *
-o file Write output to file
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-early All subsequent variable assignments will be
parsed right before default_pre.prf
-before All subsequent variable assignments will be
parsed right before [files] (the default)
-after All subsequent variable assignments will be
parsed after [files]
-late All subsequent variable assignments will be
parsed right after default_post.prf
-norecursive Don't do a recursive search
-recursive Do a recursive search
-set <prop> <value> Set persistent property
-unset <prop> Unset persistent property
-query <prop> Query persistent property. Show all if <prop> is empty.
-qtconf file Use file instead of looking for qt.conf
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
make: *** Aucune règle pour fabriquer la cible « clean ». Arrêt.
make: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt.
./build_lin: ligne 51 : cd: build/lin: Aucun fichier ou dossier de ce type
zip I/O error: Permission denied
zip error: Could not create output file (vesc_tool_gold_linux.zip)
rm: impossible de supprimer 'bin': Permission non accordée
rm: impossible de supprimer 'boot': est un dossier
rm: impossible de supprimer 'dev': est un dossier
rm: impossible de supprimer 'etc': est un dossier
rm: impossible de supprimer 'home': est un dossier
rm: impossible de supprimer 'lib': Permission non accordée
rm: impossible de supprimer 'lib64': Permission non accordée
rm: impossible de supprimer 'mnt': est un dossier
rm: impossible de supprimer 'opt': est un dossier
rm: impossible de supprimer 'proc': est un dossier
rm: impossible de supprimer 'root': est un dossier
rm: impossible de supprimer 'run': est un dossier
rm: impossible de supprimer 'sbin': Permission non accordée
rm: impossible de supprimer 'srv': est un dossier
rm: impossible de supprimer 'sys': est un dossier
rm: impossible de supprimer 'tmp': est un dossier
rm: impossible de supprimer 'usr': est un dossier
rm: impossible de supprimer 'var': est un dossier
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *; *; *; *.ts; *.xlf; *.qrc
Note: The created .pro file probably will
need to be edited. For example add the QT variable to
specify what modules are required.
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings; specific ones may be re-enabled by
later -W options
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings (on by default)
-Wdeprecated Turn on deprecation warnings (on by default)
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be *
* processed before [files] by default. *
-o file Write output to file
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-early All subsequent variable assignments will be
parsed right before default_pre.prf
-before All subsequent variable assignments will be
parsed right before [files] (the default)
-after All subsequent variable assignments will be
parsed after [files]
-late All subsequent variable assignments will be
parsed right after default_post.prf
-norecursive Don't do a recursive search
-recursive Do a recursive search
-set <prop> <value> Set persistent property
-unset <prop> Unset persistent property
-query <prop> Query persistent property. Show all if <prop> is empty.
-qtconf file Use file instead of looking for qt.conf
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
make: *** Aucune règle pour fabriquer la cible « clean ». Arrêt.
make: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt.
./build_lin: ligne 61 : cd: build/lin: Aucun fichier ou dossier de ce type
zip I/O error: Permission denied
zip error: Could not create output file (vesc_tool_silver_linux.zip)
rm: impossible de supprimer 'bin': Permission non accordée
rm: impossible de supprimer 'boot': est un dossier
rm: impossible de supprimer 'dev': est un dossier
rm: impossible de supprimer 'etc': est un dossier
rm: impossible de supprimer 'home': est un dossier
rm: impossible de supprimer 'lib': Permission non accordée
rm: impossible de supprimer 'lib64': Permission non accordée
rm: impossible de supprimer 'mnt': est un dossier
rm: impossible de supprimer 'opt': est un dossier
rm: impossible de supprimer 'proc': est un dossier
rm: impossible de supprimer 'root': est un dossier
rm: impossible de supprimer 'run': est un dossier
rm: impossible de supprimer 'sbin': Permission non accordée
rm: impossible de supprimer 'srv': est un dossier
rm: impossible de supprimer 'sys': est un dossier
rm: impossible de supprimer 'tmp': est un dossier
rm: impossible de supprimer 'usr': est un dossier
rm: impossible de supprimer 'var': est un dossier
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *; *; *; *.ts; *.xlf; *.qrc
Note: The created .pro file probably will
need to be edited. For example add the QT variable to
specify what modules are required.
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings; specific ones may be re-enabled by
later -W options
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings (on by default)
-Wdeprecated Turn on deprecation warnings (on by default)
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be *
* processed before [files] by default. *
-o file Write output to file
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-early All subsequent variable assignments will be
parsed right before default_pre.prf
-before All subsequent variable assignments will be
parsed right before [files] (the default)
-after All subsequent variable assignments will be
parsed after [files]
-late All subsequent variable assignments will be
parsed right after default_post.prf
-norecursive Don't do a recursive search
-recursive Do a recursive search
-set <prop> <value> Set persistent property
-unset <prop> Unset persistent property
-query <prop> Query persistent property. Show all if <prop> is empty.
-qtconf file Use file instead of looking for qt.conf
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
make: *** Aucune règle pour fabriquer la cible « clean ». Arrêt.
make: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt.
./build_lin: ligne 71 : cd: build/lin: Aucun fichier ou dossier de ce type
zip I/O error: Permission denied
zip error: Could not create output file (vesc_tool_bronze_linux.zip)
rm: impossible de supprimer 'bin': Permission non accordée
rm: impossible de supprimer 'boot': est un dossier
rm: impossible de supprimer 'dev': est un dossier
rm: impossible de supprimer 'etc': est un dossier
rm: impossible de supprimer 'home': est un dossier
rm: impossible de supprimer 'lib': Permission non accordée
rm: impossible de supprimer 'lib64': Permission non accordée
rm: impossible de supprimer 'mnt': est un dossier
rm: impossible de supprimer 'opt': est un dossier
rm: impossible de supprimer 'proc': est un dossier
rm: impossible de supprimer 'root': est un dossier
rm: impossible de supprimer 'run': est un dossier
rm: impossible de supprimer 'sbin': Permission non accordée
rm: impossible de supprimer 'srv': est un dossier
rm: impossible de supprimer 'sys': est un dossier
rm: impossible de supprimer 'tmp': est un dossier
rm: impossible de supprimer 'usr': est un dossier
rm: impossible de supprimer 'var': est un dossier
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *; *; *; *.ts; *.xlf; *.qrc
Note: The created .pro file probably will
need to be edited. For example add the QT variable to
specify what modules are required.
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings; specific ones may be re-enabled by
later -W options
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings (on by default)
-Wdeprecated Turn on deprecation warnings (on by default)
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be *
* processed before [files] by default. *
-o file Write output to file
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-early All subsequent variable assignments will be
parsed right before default_pre.prf
-before All subsequent variable assignments will be
parsed right before [files] (the default)
-after All subsequent variable assignments will be
parsed after [files]
-late All subsequent variable assignments will be
parsed right after default_post.prf
-norecursive Don't do a recursive search
-recursive Do a recursive search
-set <prop> <value> Set persistent property
-unset <prop> Unset persistent property
-query <prop> Query persistent property. Show all if <prop> is empty.
-qtconf file Use file instead of looking for qt.conf
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
make: *** Aucune règle pour fabriquer la cible « clean ». Arrêt.
make: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt.
./build_lin: ligne 81 : cd: build/lin: Aucun fichier ou dossier de ce type
zip I/O error: Permission denied
zip error: Could not create output file (vesc_tool_free_linux.zip)
rm: impossible de supprimer 'bin': Permission non accordée
rm: impossible de supprimer 'boot': est un dossier
rm: impossible de supprimer 'dev': est un dossier
rm: impossible de supprimer 'etc': est un dossier
rm: impossible de supprimer 'home': est un dossier
rm: impossible de supprimer 'lib': Permission non accordée
rm: impossible de supprimer 'lib64': Permission non accordée
rm: impossible de supprimer 'mnt': est un dossier
rm: impossible de supprimer 'opt': est un dossier
rm: impossible de supprimer 'proc': est un dossier
rm: impossible de supprimer 'root': est un dossier
rm: impossible de supprimer 'run': est un dossier
rm: impossible de supprimer 'sbin': Permission non accordée
rm: impossible de supprimer 'srv': est un dossier
rm: impossible de supprimer 'sys': est un dossier
rm: impossible de supprimer 'tmp': est un dossier
rm: impossible de supprimer 'usr': est un dossier
rm: impossible de supprimer 'var': est un dossier
Also yeah output is french
Add i run it as root, might have break my system
but how comes a build script delete home files
While running qmake, I get this error:
> RCC: Error in '../../../powerdesigns/drive_vesc/vesc_tool/res_config.qrc': Cannot find file 'res/config/4.00/info.xml'
> RCC: Error in '../../../powerdesigns/drive_vesc/vesc_tool/res_config.qrc': Cannot find file 'res/config/4.00/parameters_appconf.xml'
> RCC: Error in '../../../powerdesigns/drive_vesc/vesc_tool/res_config.qrc': Cannot find file 'res/config/4.00/parameters_mcconf.xml'
And build fails. Probably just missing files in the repo.
bldc-tool has some nice instructions on how to compile from source. Can you add instructions to compile vesc_tool
from source too?
Hi,
After changes in parameter editor (app, motor or info), I apply, see the green highlighted message telling me that the xml has been saved.
But if I close and reopen the parameter editor, no changes have been taken into account.
Hi!
I think there is a bit of inconsistency with RPM and ERPM notation in the VESC Tool. When performing motor detection the values you use for omega is ERPM:
In the bottom part of the program where you can request motor movement there is a numeric up down box for RPM, however it seems this one is setting ERPM as well?
At least when I'm setting the values here the value I can see in the real time data monitor is in ERPM and it closely matches the one I set in the bottom box.
The android vesc app terminal input box is configured for keyboards to capitalize the first letter. Since the vesc uses a direct string compare, a command that is capitalized will not register as the correct command.
To fix this, there are several solutions:
Additionally there is no way to recall a previous command in the mobile version.
Hello,
thank you for the great tool. It is pretty cool :). However I have problems building it on my Ubuntu 16.04. machine because is is not compiling with C++11 by default (a lot of warnings coming up). Is there any compiler flag I have to configure? :)
Hi Ben,
Hope you're well since Paris event.
May you create a Dev branch on the VESC Tool and VESC FW github repos ?
That will help to keep a clean production version.
With more and more contributors (which is fantastic !) it becomes more and more messy and final users are lost due to constant updates (also bugs leak into production code and with VESC Mobile which eases the FW deployment, bugs land into our skateboards we ride everyday...).
Thanks a lot Sir !
Cheers,
Clément
Hi Ben,
With latest version, it seems that no green message appears anymore in the status bar after uploading app conf to the VESC (was previously "App conf updated" or something).
I tried with Linux 0.92 and Mac (from @rpasichnyk ) versions.
Cheers,
Clément
Precompiled binary fails immediately on finishing the first-time-use intro. When run from a console I see:
symbol lookup error: ./vesc_tool_1.25: undefined symbol: DTLS_client_method, version OPENSSL_1.0.2
Could this be connected with change in 1.25 to static linking of open SSL lib? Platform is up-to-date OpenSUSE Tumbleweed.
A binary compiled locally (which was straightforward within QtCreator once the needed additional Qt module devel files had been installed) starts and runs without problems.
Thanks
Bill
Furthering the branching effort done in issue #47 to improve the ability for other developers to differentiate production code, it would be awesome if you could begin creating git tags for each version number that you publish. You can optionally choose to also create a Github "release" for each git tag that allows you to summarize the release notes or major feature changes, in human-readable text.
Version tags and releases are a key step to making it easier for people that need to track down what VESC Tool versions a new change first became available in, or might have been affected by a previously addressed bug. It also makes it easy to determine what changes are new since a prior version.
if make fails, build/lin folder is never created and
cd build/lin
fails, but
cd ../..
passes.
it will try to zip your whole hard drive, which is fine, but after it will run
ls | grep -v '\.zip$' | xargs rm
which will remove files in its current dir. this is most dangerous when it passes through your home folder, it ends at /
rm: cannot remove 'bin': Permission denied
rm: cannot remove 'boot': Is a directory
rm: cannot remove 'dev': Is a directory
rm: cannot remove 'etc': Is a directory
rm: cannot remove 'home': Is a directory
rm: cannot remove 'lib': Permission denied
rm: cannot remove 'lost+found': Is a directory
rm: cannot remove 'mnt': Is a directory
rm: cannot remove 'opt': Is a directory
rm: cannot remove 'proc': Is a directory
rm: cannot remove 'root': Is a directory
rm: cannot remove 'sbin': Permission denied
rm: cannot remove 'srv': Is a directory
rm: cannot remove 'sys': Is a directory
rm: cannot remove 'tmp': Is a directory
rm: cannot remove 'usr': Is a directory
rm: cannot remove 'var': Is a directory
Hello,
Can you update the naming convention of PPM vs PWM as referenced here.
I am getting this error when attempting to connect to my bluetooth module:
WARNING (:0 ): BLE UART service not found
I have tried on android, mac and linux. I also have issues connecting from most apps(android and iOS). The only app I was able to get working is xmatic on iOS:
https://apps.apple.com/us/app/xmatic-electric-skateboard/id1382937037
I have this bluetooth module: https://www.amazon.com/DSD-TECH-Bluetooth-iBeacon-Arduino/dp/B06WGZB2N4/ref=sr_1_3?keywords=HM-10+BLE+Bluetooth+4.0&qid=1583363125&sr=8-3
Seems like the provided firmware for NRF52840 uses a pin for RX (P0.11) that is not present on Skylab SKB501 modules.
VESC Tool:
https://i.imgur.com/eO2bpxR.png
SKB501 Datasheet
http://www.skylab.com.cn/uploadfile/Download/Skylab_SKB501_V1.03_Datasheet.pdf
Could we perhaps get our hands on the source of the firmware? I'd love to tinker with it.
There are several modules on the market that use the NRF52840 chip and don't have the P0.11 pin exposed for DIY soldering.
Thanks! <3
https://forum.esk8.news/t/vesc-fw-5-0-beta-testers-wanted/23342/238?u=skatardude10
As in the title. Connected to master, when backing up or restoring, the notification saying it succeeded shows two of the same UUID listed. CAN Forward to the second VESC and it shows duplicates of the other UUID on the pop up at the end.
All unique settings seem to apply just fine for each individual VESC though.
The following warnings show up when running vesc from the command line:
QFontDatabase: Cannot find font directory /opt/Qt/5.9-static/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
Solution is to configure qt with -feature-freetype -fontconfig
to allow the use of system fonts
digitalfiltering.cpp
std::vector<double> imag = std::vector<double>( taps );
std::vector<double> filter_vector = std::vector<double>( taps );
//double* imag[ taps ] = new double[ taps ];
//double* filter_vector[ taps ] = new double[ taps ];
GCC allows dynamic arrays but Visual Studio compiler does not. You can't compile VESC tool on VS. It would be better to use for example std::vector for dynamic array then it would compile.
If it is multi-platform then make it multi-platform...
I'm using Ubuntu 16.04. This causes around 30 seconds to boot up the VESC and shows this error Cannot find running Bluez, please check the Bluez installation
.
It looks like new QBluetoothDeviceDiscoveryAgent
is causing this issue.
Upon flashing a v4.12 VESC (TORQUE ESC) with the 3.55 firmware, I get a red flashing light on startup. Typing faults
into the console tells me there are no errors, but typing fault
tells me FAULT_CODE_HIGH_OFFSET_CURRENT_SENSOR_2. Since this was implemented in 3.55, I've reverted to 3.53 to resolve the issue.
Using vesc tool android version 1.15 (current on app store) or desktop linux vesc tool 1.16
trying to connect through usb or bluetooth leads to a "too old firmware" error.
The vesc reads fw 3.57, the fw that vesc tool is looking for is 3.58.
Attempting to update the firmware over bluetooth or usb succeeds, but upon reboot, the vesc still identifies as fw v 3.57 and vesc tool is unable to connect. Have the fw binaries included with vesc tool been updated to V3.58? otherwise the firmware update process is failing silently for me.
This has been tried with 2 different vesc 4.12's with usb and a 32kb ram bluetooth adapter on each.
When I received the FSESC 4.12 I connected it to the PC via USB, I updated the firmware and started the motor using the computer arrow buttons.
Today I tried to reconnect but the VESC Tool does not recognize the VESC.
The USB port is detected by Windows and when I remove power from the VESC I see that its USB port disappears from the management of Windows devices.
The COMM number is correct and the speed is at 115200.
But the VESC Tool does not communicate. The message is:
Could not read firmware version. Make sure that the selected port really belongs to the VESC.
Please help me.
VESC Tool should have a way to provide native CANbus support as Qt provides classes to manage adapters based on socketcan, peakcan, etc .
I ran a Qt example and it can see VESC traffic with a native /dev/can0 interface (socketcan), and I'm drafting this UI to manage the connection.
Unless someone is already working on this I'll try to put together some code to provide this new feature, I need it as usb is not safe on my VESC controllers.
App Wizard fails in the beginning though the behaviour is random. The problem often happens when using bluetooth or TCP. I first thought this was the reason:
waitSignal(vesc->commands(), SIGNAL(fwVersionReceived(int,int,QString,QByteArray,bool)), 100);
But after changing to larger value (2000) the flow randomly fails in the different place
vesc->commands()->getAppConf();
if (!waitSignal(ap, SIGNAL(updated()), defaultTimeoutMs)) {
res = false; ⬅️ HERE
}
I don't know what is the reason, but I think blocking Utility::waitSignal
with QEventLoop
and QDialog::exec()
do not play well together
There've been close to 10 different beta releases of the VESC Tool since the 5.1/2.06 release. Unfortunately the version number has always been the same.
Please add an additional revision/beta-version/git-commit or other ID that gets displayed in the About dialog of the VESC tool.
Thank you!
The Vesc tool is now crashing on windows, i have tested 2.02 and the 2.03.
It was working fine and i think after a windows update(not sur) it is not working any more and crashing on start with access memory violation(debug with Visual studio).
I have already tried to remove updates but no result
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.