MSPPG: Multiwii Serial Protocol Parser Generator

For a final project in a robotics class, I suggested that a few students try implementing their own version of a parser-generator program like pymavlink.  The students built a simple Python-based system in a few days, which parsed JSON message specifications and generated Python code to parse and serialize a simple variant of MAVLink.  

Since then I have added C++ and Java output to the program, and modified it to work with the popular Multiwii Serial Protocol (MSP) message format.  The program is extremely simple to use (a single Python script; you don't even have to know or care about Python to use it), and the Python output has been tested in a real-time attitude visualization program that one of the students wrote (shown in the image above). Another student is completing an Android program to do the visualization using the Java output, and I am working up a C++ example on Arduino (parsing messages over the Naze's UART pins.)

So if you are using Multiwii-based firmware like Baseflight or Cleanflight and are interested in writing code to interact with your flight controller, you might want to try out MSPPG. We could also look into adding support for other languages like JavaScript, C#, etc. -- just let me know!

Views: 2745

Comment by Harry on July 13, 2015 at 2:00pm

I want to be in that class, ha ha.  I could use the tutelage. 

I'm experimenting with a simple stabilizer program to run on a 328.  I'm using parts of code from all over the place.  I took the ArduIMU V3 program and "ported" it over to my board which uses i2c instead of spi, GPS uses the i2cnav board and MSP from multiwii, PPM from MW to read the Rx, then it serialprints in DIYDrones format so the arduIMU test program will display attitude.  It's been a good exercise to learn a few things and those things I still don't know..   

Comment by Simon D. Levy on July 13, 2015 at 2:08pm
Comment by Harry on July 13, 2015 at 2:20pm

Yes, I'm using the AB Normal brain.  Dr. FrankenSteeen would have loved open source.


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service