MSPPG: Multiwii Serial Protocol Parser Generator


3689658877?profile=originalFor 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!

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

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

  • 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..   

This reply was deleted.