I also designed some toys (such as the SmartRing I love to play with).
Recently, we had a huge update of VESC FW and lot’s of things moved.
Unfortunately, VESC project is really bad documented, so each time, we have to dig into source code and reverse-engineer stuffs to check/repair compatibility with our products.
Due to this lack of documentation, I started to build some personal tools.
I realized that they would be even more useful if they were shared !
Hi @Pimousse, thanks for sharing those resources! Useful stuff.
It would be really nice to have a well maintained open source VESC communication library. I personally would be happy to contribute. I imagine that each of us would have different requirements and the question is if we can find enough overlap such that we could collaboratively create something that each of us could benefit from.
For me, the requirement would be that it compiles from the Arduino IDE since that’s what I mostly use. I would also need to be able to compile it such that its footprint is small when I use only a small part of available functionality. I currently don’t have a use case for writing into the VESC. I only read from VESC.
For some (@rpasichnyk?), the GPL license would likely be a stopper. It would have to be something less restrictive (MIT, BSD, Apache). I guess that would imply we start from scratch since the existing resources I know of (@solidgeek’s VescUart, RollingGecko’s VescUartControl) are GPL.
To start, I guess it would be best if everyone could say (1) whether and how much they would be willing to contribute to the project and (2) what their expectations/requirements would be.
It’s very basic right now, but adding more features really shouldn’t be too hard. It is, however, written in Rust and the major drawback is that using it from a C/C++ project isn’t simple, but it is definitely doable.
Yeah, you’re right.
Having an official Arduino library that can be updated directly in the IDE would be very useful !
I think @solidgeek 's one is a real candidate as it embbeds examples, readme, and so on.
Great idea @Pimousse, as @janpom said a universal communication library would be awesome, I stopped updating the firmware since while ago since it may mean a few hours cross checking everything and a lot of headache to make it work
Ah I neee to learn rust lol. I took 2 c++ classes back in the early days of college, but I’ve never really found a good use for it. I usually end up using java or python these days (mostly python). Though I am studying machine learning, so… lol.
Love the work of putting these all together. I did drastically improve the original implementation for Bluetooth communication and it’s updated for the latest firmwares. Though I need to push the latest code, you can find it on my GitHub.
I do not see why the GPL (GNU) license is an issue? I guess you refer to the “Disclose source” part, however, this does not mean that one is forced to release his software open source, only that if he does, it has to be under the same license as the library. That is at least how I understand GPL.
I would love to expand the VescUart library, however, I am not sure what features are needed/wanted.
Yeah, you are right, I have misunderstood how GPL works Unfortunately, I cannot change the license of the library, as some files are borrowed directly from the VESC bldc firmware (GPL).