Here's a long post about my first attempt at building a quadcopter.
One interesting and rather different feature is that I tried to use a .NET micro framework board (FEZ DOMINO) to do the balancing... it did not work so I moved to a basic Arduino, thinking it's the garbage collector and especially the switching from one thread to another that caused the instability... Right now it still doesn't work :) and it looks it's because I was using the Euler angles rather than the raw gyros outputs.
So I'm really wondering if I shouldn't go back the the .NET board?
There si VERY little on the net about this, except a few people saying that it can't be done because of managed code not being real time, etc. ... Most people "complain" about the garbage collector kicking in unexpectedly, but with my code it would run every 5-10 seconds and take 3-5ms, which to be honest is negligeable... there was definitely something else stopping my quad from proper stabilisation !
Right now, it still doesn't fly as I've been having several issues with the IMU and Wii motion gyros lately, but even just the experience of building it was a really pleasant and interesting one !
Anyhow, I would love to hear any feedback or experience with this kind of board, or eventually a Java based one !