Hello,
I’m looking at the motordriver’s design and would like to know what lead to the use of the MotorWare lib. For one part it is not so obvious what features of it are actually used. Also, it doesn’t look like the most favorable choice in a lot of non-functional aspects (not open-source, windows installer, tied to one MCU family to name a few).
Is it essential magic sauce or just a side effect of other design choices taken?
I think the main reason is that we decided to use the Texas Instruments MCU when we started the project and MotorWare simply was the software that came with it. So using it was the easiest way for us to get started (especially as none of us was an expert on the low level motor control stuff at that time). A pro argument was also that the TI support is quite responsive and helped us with a lot of questions/problems we had while implementing our software.
Most of it is actually open source (there is some US export regulation thing, though, which might be relevant depending on the country you are in and which is the reason why we do not directly provide a fork). There is just one module, the “FAST Estimator” which is closed. I might have missed something but I think we are only using this for identifying the motor parameters (like resistance, inductance, etc.) and then at runtime to measure the torque on the motors. So to go full open source one would need to provide implementations for these things.
I agree that the windows installer is a bit annoying. There was a beta version for Linux once but apparently they did not proceed on that. The relevant part is just a collection of source files, though, nothing that actually needs to be “installed” in a specific way. If you have a Windows PC available, you can install it there and then just copy the files. Or alternatively use Wine on Linux to extract the files.