I'm currently working on firmware version 5 for the VESC, and the major new feature is dual motor support. This means that the focbox unity should work with this release, as well as other dual motor controllers that will come in the future. In some upcoming projects I'm going to work more closely with Jeffrey who made the unity, so the other controllers he makes should be based on the main VESC code base soon. Jeff and me collaborating should be good news for the community, and I look really look forward to seeing what we can do.
Here is a test build of VESC Tool with the new experimental firmware for Linux, Android and Windows:
It would be great if you can help me test this carefully on your setups. Please be very careful, as I haven't done much testing myself yet. Use RPM limits, wear protection and take your time.
I would appreciate feedback on:
- Dual setups with the focbox unity
- Singe setups (as a lot of the code is restructured)
- Setups with CAN-bus, including both unitys and single controllers if possible (3+ motors)
- Observer gain calculation and working parameters
- Use calculated value from old firmware vs new firmware
- Vary the input voltage and see if the observer tracks well
How does dual motor support work?
Essentially, the second motor pretends to be another VESC on the CAN-bus with the CAN-ID + 1. This means that you treat it just as a regular combinations of two VESCs on CAN. The unity will thus also get two CAN-IDs on the CAN-bus, so it should integrate well with other projects that used can.
Each motor has a unique motor configuration, and the only dependence between them is that they must have the same switching frequency as the timers must run in sync. So when the switching frequency is changed on one, the other one will be set to the same value. At the moment around 27 kHz is the highest supported switching frequency, which is not enforced, so don't set it higher than that as you might need an SWD programmer to recover. There is only one app configuration, and it runs on motor 1. Motor 1 will always see CAN status messages from motor 2, so activating multiple VESCs over CAN should run both motors for the apps. Traction control in apps also works this way.
If you are into coding and the VESC code, please also look into the code in the dev branch:
I will make more frequent updates to the dev branch than I used to do to master, so you can hopefully follow what is happening easier. There is a dev branch for VESC Tool too, but there are barely any changes as the firmware is backwards compatible.