Hi Friends!
Your friendly neighborhood robot here- had some interesting conversations in recent weeks and was looking to get some input from the community.
Let’s call this a thought experiment:
Say that I was looking at the VESC project as an outsider, coming into it as a new developer that wanted to choose a firmware to designate for stable production in a VESC based derivative product. New peripheral features don’t matter, stable FOC operation and standard VESC features would be sufficient.
I ask this, because working in embedded systems, often at a certain point in the design process I have to choose a ‘stable/LTS’ kernel to build my distribution from, and commit to that as OTA updates on production devices are considered for critical security updates only. Often a kernel is chosen for its stability and support over its cutting edge features. I’d like to approach this question the same way.
The current release structure of the VESC project, in my opinion, leaves a lot to be desired.
- There is no Stable/Dev release branch cycle for the VESC project. This creates a situation where untested code is released to the main code branch. This has been brought up repeatedly and disregarded so far.
- We have an obfuscated or unclear QA/QC process when it comes to testing out new features and testing against code regressions. ie: How much testing did HFI get before it was released? How many riders? How many miles? Was there a feedback process with BV prior to release?
- We have experienced a few instances (VESC 3.63/3.64, Unity also had 2 major code flaws in it’s first year) of code regression or critical bugs that impact rider safety, within the last 6 months even.
- Lack of modern/sensible versioning/release control.
This project has a LARGE active userbase. There is really zero excuse as to why things continue forward in a flawed manner. Improvements have absolutely been made on Github in regards to accepting external PRs/responding to issues, etc. However insistence is that everyone should update immediately to the latest firmware/vesc tool, but that’s counter-intuitive to a lot of industries, and as someone that has been personally injured due to firmware bugs I lack trust in the more recent releases as the track record over the last year is not great.
Without a clearly defined developmental branch to test new code changes to, and a group of people that sign off on that after a specified period of time before its merged into a new branch, we will continue to have this completely avoidable risk at play.
This is the exact reason why ‘community stable’ forks such as Ackmaniac popped up and are still used & trusted to this day.
Personally, I don’t care about new features so much as I care about why we’ve had throttle runaway issues on recent firmware and how that could have been avoided in the first place.
So my question is, what firmware do you use & trust right now? I’m throwing in as many as I can think of that were semi-major releases, feel free to respond below if I’ve missed some.
(POLL DOWN BELOW SINCE DAMON KEEPS BREAKING SHIT)
Extra Credit Question: Would there be interest in a ‘Community Stable’ fork, potentially picking up where Ackmaniac/Nico left off and bringing things up to a more modern-yet-stable firmware and release fork & focused on stability/community driven app-side features?
Cheers loves!