3 axis auto stabilized platform

If this is for a school project then keeping your professor happy is an important requirement :wink:

My suggestion is that this is a good time to try and determine how much processing time you need per frame. If this time is more than around 15 milliseconds but less than around 30ms then consider if it is acceptable to use two frames for your calculations (the channel inputs are only updated every other frame because of the way we have implemented the multiplexer). If you need a lot more than 15 milliseconds and the data does need to be refreshed every frame (20 ms), or you need more than 30ms to do your calculations using two frames, then you are getting close to exceeding the Arduino's processing capability even if you could run the servos and input capture all on interrupts.

for example, the following pulses the servos every 20ms and give around 30ms of calculation time every 50ms (two frames):

start of frame n
pulse three servos in sequence (4-6 ms)
start calculating new pulse width (15ms)
end of frame n

start of frame n+1
pulse three servos in sequence using previous frame data (4-6 ms)
finish calculating new pulse width (15ms)
end of frame n+1

repeat...