Originally Posted by MikeTheCrash
this doesn't work for me, I just get a static horizon. Reverting to previous FW until I find my error!
Mike, thats odd, static horizon means that roll and pitch is not being sent across but DOSD is picking up the I2C address for the IMU. Something really strange happened to me in that I changed the speed to the AP30 to 19200, worked fine, then a few days later I had to change it to 38400 as Virgis had it. The clue was monitoring the serial output from the Arduino. I do not have an explanation for this but my last effort uploaded and has not failed at all now, loads of bench testing and fresh boot ups done, I would say its 100% for me.
BTW monitored an AP31 for interest, on the way to reverse engineer, the format, its not as simple as there are 4 sentences in byte format that are sent out, I have found the header, sentence length byte and end of sentence marker. Just need to find out what each byte does, may reverse the problem and make a program to vary each byte and send to the Hornet OSD and watch what happens. Cant think of any RS232 analyser that can do this.
Post edit: found the speed glitch problem, I first used my desktop to program the device and selected the correct board in the Arduino environment. Then working in my shed, I switched to my Laptop and forgot to select the correct Aduino mini board, I had Duemilanove w/Atmega328P selected. Aha, so the Arduino clock divide registers will be different when compiled, this gave me the clue: http://forum.arduino.cc/index.php/topic,46458.0.html
So select the correct Arduino in the environment and the Baud rate should be 19200, thank god I wasnt going crackers then!