Git Product home page Git Product logo

vesc_tool's Introduction

VESC® Tool

This is the source code of VESC Tool. A pre-compiled binary of both the stable release as well as the development release packaged with all the matching firmware for all supported hardware can be downloaded at http://vesc-project.com/

The stable binary is available for Linux, Windows, MacOS, Android and iOS. The development binary is available for Linux, Windows and Android and is updated every few days.

All binaries can also be downloaded free-of-charge for all platforms except for iOS, which only is available via the Apple App Store as they do not allow any other distribution channel.

Code Contribution, Distribution and Trademark Usage

VESC is a registered trademark of Benjamin Vedder. Read the trademark policies for more information.

The "official" binary release of VESC Tool is done via VESC Project only, as that gives users a way to verify that releases, that use the registered VESC trademark, originate from the VESC Project. It is not ok to host a binary release on a different channel and use the VESC trademark for that release.

It is ok to use the github fork function to make contributions to the code. That is because 1) it is the most convenient way to make contributions and 2) the forked repository states clearly that it is a fork and points back to the main repository where the original code can be found. Further, it is easy to see what the code changes are from the forked repository compared to the main repository via github, but that information is lost in a binary release.

Forks of VESC Tool on github are not encouraged to provide a binary release in the repository. That is because there is no way to tell the final binary apart from the official release once downloaded. Further, packaging the firmware, which has to be done as an additional step from a different repository, also cannot be verified whether it is done correctly.

Forks without branding

Because the topic came up, here are some words about forking VESC Tool and removing the branding.

If you make a fork of VESC Tool and remove all traces of the VESC trademark you are not breaking the trademark policies, but we still do not encourage that. The reason is that such forks are 1) confusing to users and 2) divert users away from the VESC Project itself and take away the opportunity to learn about it and to make donations if they choose to. For example, the majority of VESC donations today come from VESC Tool downloads.

If you see a missing feature and you want to put in some work and make that feature available, we would appreciate if you contribute that back to the main VESC repositories. That way there is only one consistent and compatible release for everyone that is managed by the main authors of the VESC code who make the vast majority of the development. It also gives the main authors, who are the most familiar with the code, a chance to review features to make sure that they are as safe as possible and don't break other parts of the functionality.

Add Your Hardware to the Binary Release

If you have custom hardware and you want to add support for it in the official release of VESC Tool, you can use the following steps:

  1. Go to https://github.com/vedderb/bldc and use the github fork function.
  2. Make your changes, test them and make a pull request to the main repository.
  3. If the pull request gets accepted your hardware will become part of the next official release. It will show up in the binary beta typically after a few days and in the stable version the next time a stable release is made.

vesc_tool's People

Contributors

ackmaniac avatar b264 avatar bionade24 avatar daddye avatar dcodeio avatar ddosoff avatar github-actions[bot] avatar guillaume227 avatar jaykup26 avatar jfriesen222 avatar kubark42 avatar kvandt avatar lukash avatar lukaspfitscher avatar manoukianv avatar maxicor88 avatar mitchlol avatar netzpfuscher avatar nitrousnrg avatar peemouse avatar r3n33 avatar rpasichnyk avatar rusins avatar surfdado avatar teslafly avatar tipsmiller avatar totosolat avatar trosenband avatar vedderb avatar zachob avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vesc_tool's Issues

Please provide documentation for building support to a FW version

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

Linux: no font directory warning from Qt

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

Please create version tags and github "releases"

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.

Please add Dev branch to keep a clean production version

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

Precompiled linux binary from here fails immediately on finishing first-time-used intro

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

vesc tool V1.15-1.16 too old firmware even after fw update

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.

Better place for FOC Temp Comp control inputs

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.

build_lin tries to rm stuff around root if builds fail

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                                                                                                                     

New to github plus all VESC tool online is down.

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.

Speed control PID noisy

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 input ADC/ADC2 throttle/brake input is incorrectly represented

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):

    Captura de pantalla de 2021-01-11 02-14-21

  • Current Reverse Center (this looks correct):

    Captura de pantalla de 2021-01-11 02-14-57

  • 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.

    Captura de pantalla de 2021-01-11 02-16-25

    current-no-reverse-brake-center.mp4
  • Current No Reverse Brake ADC2 (ADC shows an incorrect center input, and ADC2 is wrongly disabled):

    Captura de pantalla de 2021-01-11 02-16-06

    current-no-reverse-brake-adc2.mp4
  • 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.

    Captura de pantalla de 2021-01-11 02-15-11

After select any of them, next page sets always "Current" as control type:

next-page-current-is-selected.mp4

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

Captura de pantalla de 2021-01-11 02-54-46

Workaround:

  • Use "Current Reverse Button Brake Center" to setup min/max voltage for ADC and ADC2
  • Go to next page
  • "Current" mode is selected.
  • Check that "Current No Reverse Brake Center" do not use input from ADC2 as expected, accelerates presssing throttle on ADC and brakes when throttle is not pressed (pass the center I guess).
  • Check selecting "Current No Reverse Brake ADC2" works as expected. Accelerating pressing throttle and braking using brake.

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.

build_lin deleted most of my home and tried to delete folders from /*

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

App Wizard randomly fails

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

Distribute through flatpak

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

flathub/flathub#680

Adding serialbus to Qt seems to break the serial port on static builds

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?

Instant FAULT_CODE_HIGH_OFFSET_CURRENT_SENSOR_2 on HW v4.12

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.

NRF52 firmware source? NRF52840 SKB501 module

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

Mini FSESC4.20 with two hall sensors as throttle (ADC) and brake (ADC2), brake signal polutes throttle

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!

vesc_tool_adc1_2.mp4

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

Motor/App Data (often) not saved to VESC

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:

  • Connect VESC via USB-cable to the PC
  • Start VESC-Tool (Windows 7) - Connect > OK
  • Motor Settings > General > Wattage > Enter some unique value like 777
  • 'Write Motor Conf' > 'MC update OK' message
  • Testing: change value to 55 > Read Motor data > 777 appears again > OK
  • Disconnect button > OK - disconnect USB - disconnect battery from VESC
  • Reconnect VESC > 'Read Motor Conf' > 1500000 appears (default) and not 777
  • Sometimes (!) the value 777 is stored, but most trials > Fail

Hard/ -Firmware:
Maytech SUPERFOC6.8 50A VESC6-based speed controller - two VESCs with different Soft/firmware show the same bug:

  • One with 4.2 firmware and 2.03 Tool
  • One with 5.1 firmware and 2.06 Tool

VESC_TOOL communcation stops.

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)

Input pin to allow BMS discharge circuit to be monitored by vesc

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.

FOC sensing returns R=0

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).

mobile app terminal input box does not force lowercase

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:

  • vesc fw should internally force lowercase and be case insensitive.
  • vesc tool should force lowercase in sent commands.
  • vesc tool should use a "password" style text input field that will default to the first letter lowercase instead of uppercase.

Additionally there is no way to recall a previous command in the mobile version.

vesc tool android first time run popup is unclickable

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.

VESC Tool crashing on windows

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

C++11 Flags

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? :)

Please add a beta version number or similar

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!

Setup input wizard do not follow control type selected

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 can't communicate with the VEsc !

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.

Data.pdf

WARNING (:0 ): BLE UART service not found

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

Dynamic arrays supported by GCC compiler but not for ms compiler in digitalfiltering.cpp

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...

Can't do datalogging on some Android phones

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:
image

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

Missing source files in V2.01

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.

Add compiling documentation

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.

adc voltage mapping wrong greyout options

"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.

Electrical RPM vs RPM in numeric up down controls

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:

image

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?

image

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.

Window minimum width too large?

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:
image
But its not possible anymore.

Any clue if/where we can change this minimum size limit?

Parameter Editor doesn't save any changes

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.

VESC Tool incorrectly reports firmware mismatch during Input Setup Wizard

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.

Native CANbus support

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.

image

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.

Motor Wizard Bugged when started from a CAN FWD device on Windows

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.