i just dicovered that the magnetometer library im using is so horribly bad and buggy that i had to rewrite major parts of it, because whoever wrote it missed importent stuff like return statements, and used the biggest most expensive datatypes possible, even when they were not needed. using type float on an 8 bit microcontroller without an fpu is inexcusable, let alone doing divides with it. and there was also a configuration function that took type float as a parameter, but then only used it as parameter in a contitional, and thd stuppid **** like 'if (floathing == 1.3) somethingNotFloaty = 2;' so no matter what number i picked, even the one it expected, it would never pass the contitional because compairing floats without a kepsilon dohicky is retarded.
in other news i added a glcanvas to my imu test script:

yes this whole thing is written in lua. im using the iup interface module which has got to be one of the easiest gui libraries i have ever used. i need to use up some of that surplus space in the mid right of the dialog. i was going to add roll and pitch indicators next to that heading gauge, but i decided that function is better off being added to the gl window. so i want to move some of those parameters from the barometric sensor over to the other side, i may get rid of the heading gauge too, it doesnt quite work. i also need to check up on my physics maths, angular velocity is coming out as some kind of pseudo-orientation. linear acceleration has the device constantly dropping through the floor, because i need to compensate for gravity, but before i do that i need to know my orientation. the magnetometer should give me a solid orientation though, but ive had library problems with that. im also not sure what to do about filtering. i think some of the chips have filtering features built it, and id rather use hardware if its available, but datasheets are like big walls of text and i dont like reading walls.