Have someone implemented a tricopter with arduino nano???

Hi Marco,

I had a look at your code.

The first thing I noticed is that you're using different centre points for your servos:

#define OCR1A_CENTER 1150
#define OCR1B_CENTER 1500

Is that correct?

The reason why I mentioned turning off the PID I and D terms in the rate PID control loops, is to see if these terms are causing the problem. Brett Beauregard's PID library expects a constant interval in milliseconds. I see that you've set the PID sample time to 3ms, which is probably similar or slightly faster than your flight controller's loop() time. However, as the PID library is measuring the sample time intervals of 1ms, this means that your interval time measurements are not very accurate or precise. This in turn might possibly have an impact on your I and D term calculations?

It might be better to calculate the loop() time as floating point number in seconds (using the micros() function) and use this to calculate the PID integral and derivative terms instead.