This is a Parallax Propeller chip running a partial implementation of Premerlani and Bizard’s work on Direction Cosine Matrix computation for orientation sensing. (Check out their paper on DIYDrones) I’m hoping to use this in a quad-rotor without a GPS or magnetometer - I wanted to see how good the algorithm was at stabilizing pitch and roll. So far it looks very promising.
All the work is done on the Propeller itself. It reads the gyro and accelerometer values on one core, and computes the DCM from those readings on another core. At this point the code is still written in the high-level language, Spin. Since all the math is fixed point, there’s a strong chance I won’t actually have to write an assembly version - I’ve timed it, and even though it’s written in high-level Spin code it’s capable of 400 updates per second.
Check out the original post (including the source code for the Propeller and an implementation on the PC) on the Parallax Forums: