Edit 2022-12-09: The release is now done!
Now that firmware 5.03 is released the development of 6.00 has started. Considering the amount of changes that made it into 5.03 it should really have been called 6.00, but that is now done for this release instead (which probably also will include some major new features).
The master branch on github is now the version where all development happens and each stable release will be put in its own branch with the release name. There are a few reasons for that:
- It will make it easier to find old releases by going to that branch instead of searching through commits.
- When people contribute and make pull requests they should be working against the development branch and not the stable release.
- It makes it easier to see where development happens if it is on the default branch.
From now on I'm also not going to put a link to the beta binaries here, they can instead be downloaded from these (including free of course):
The reason for that is that it makes it easier to update the beta for me (just run a script instead of manually editing this post) and it will also be easier to explain where people can find the beta.
I will try to keep this post updated with changes and what to look out for.
One of the main new features for this release is scripting support on the vesc hardware using the old-but-still-useful language Lisp. Here is an early demo of that:
The intention is to make the scripting as simple as possible and have it completely sandboxed so that you cannot brick the vesc by uploading code that gets stuck, runs out of stack, writes to bad memory locations etc. So far is seems quite solid, but there is a lot of work left to make new features, examples and hopefully some documentation.
The reason for the scripting is to make it easier to connect different VESC-supported hardware (and others too with a bit more code) modules together and build e.g. an electric motorbike that has an IO-board controlling indicators, brake light, speed modes etc. You can already do this with custom applications, but then you have to get the entire toolchain up and running, get a debugger, understand how to compile the correct firmware, not interfere with other critical parts of the vesc code from your code and so on. The Lisp scripting is already in vesc tool, takes care of memory management (garbage collection) and dies nicely when something is wrong in the code.
- Motorbike with indicators, speed modes etc.
- Gokart with lap timer
- IO-board for controlling LEDs
- MPPT control for wind turbine
- Control cooling fan or pump based on external temperature sensors
- Automated production test rig
- Button for changing profiles on longboard, ebike, scooter
- Make your perfect PAS control for your ebike
- Share your scripts with others on e.g. github or gitlab and document how they work
- Custom throttle behavior
- Control RC servo
- Connect multiple VESCs over CAN and control motors based on inputs on the COMM-port
- Educational platform for teaching about motors, actuators and programming interactively
- Essentially anything that you would hook up an arduino to the VESC for
If you have ideas for applications in lisp let me know about them, and I can see if they can be done and/or add VESC extensions to support them.
Here you can see what currently is supported, adding more extensions is easy:
Here are a few screenshots: