This video shows an ODROID U-3 single-board computer running a Python program that talks to a an AcroNaze32 flight controller (FC) over USB. The Python program uses MSPPG, our Multiwii Serial Protocol Parser Generator library, to serialize up/down/up/down MSP_SET_RAW_RC messages to the FC. By polling the incoming R/C receiver channels using an MSP_RC message, we were able to have the Python program switch the autopilot on and off without the need for an additional microcontroller. The ODROID is powered by the clean 5v ESC output on the FC.
You can get the code for this example from https://github.com/simondlevy/MSPPG. Remember to remove all propellers before testing!
Comments
I'm writing you an email :D
Nice work, Aldo! I was looking for something like your library before I wrote MSPPG. I'm not sure how I missed it, but I'm glad we found each other. I too am working on mocap.
Two advantages of the MSSPG approach are (1) multi-language code generation (Python, Java, C++). Some of my students have written an Android app using the Java output. (2) Adaptability: if someone wants a new kind of message (for example, modifying the firmware to handle new kinds of sensors), you only have to add a new message spec to the JSON file, and the compiler does the rest.
Anyway, it's great to meet another person doing what I'm doing. I look forward to seeing what you come up with, and I'll be happy to share with you any mocap progress I make.
Hi Simon!
I have a similar library to talk MSP with python, take a look (https://github.com/alduxvm/pyMultiWii)
And I'm doing some indoor position controllers with rpi/naze32 and a Mocap system...
maybe we could collaborate! :)
great demo!
Hi Miguel,
Yes: you should be able to communicate with any FC that has been flashed with MSP-based firmware. Although I do not currently have any other FCs (CC3D, Sparky, etc.) that work with Cleanflight, I just flashed the Cleanflight firmware onto my Naze and ran the MSPPG code successfully.
Hi Simon,
If you communicate with the FC board using MSP it is possible to use other FC using the same protocol, for exemple, the FC boards supported by CleanFlight or MultiWii?
I set the messages-sending rate at 200 Hz.
I don't have an APM, so can't compare that. Have not tried it with Oneshot125.
I am working this week on a Pixhawk version of the demo, so stay tuned ....
Interesting, thank you for sharing!
How frequently can you send/receive messages to/from the FC ?
How is it compared (Performance wise) to controlling an APM from an ODROID?
Have you tried it with Oneshot125 ESC by any chance?
Trying to figure out what is the best setup for precision computer control quad.