I am working on building a quad copter controller board and had a question about communications. The spektrum satellite receiver I am using transmits data at 115200 baud and I have a gyro/ accelerometer (MPU6050) that communicates over I2C. Will this be possible to implement on the arduino? I know that the I2C hardware is separate from the serial comms but I just wanted to make sure that the arduino could handle the high baud as well at I2C and not have any problems. Thanks for your time!
Yes it can cope with the two. You might be able to speed things up by increasing the I2C clock from 100KHz or 400KHz.
Both use interrupts so in principle it should work. Having said that interrupts take time themselves, something like a minimum of 3 to 4 uS to service one.
At 115200 baud you will be handling serial interrupts every 87 uS. So you have some leeway. You have some flexibility in choosing the clock speed of the I2C interface.
So it would be better to have a slower I2C speed around 100khz? I will still need some time to run the gyro and accelerometer readings through a kalman filter or some thing similar as well as sending pwm to the 4 motors. As I understand it, when data is coming in, the program stops, waits for the data to finish arriving and then continues running the code. Will I need to disable the interrupts at all in my code, for example when reading in the data or sending out values to the hardware pwm pins?
Slower might not be better. The program does not stop when data is incoming, the hardware handles that and raises an interrupt when it is ready to be moved somewhere (eg. a buffer in memory). That interrupt briefly stops your code running. I would not disable interrupts unless you have a good reason.
The hardware PWM pins also run on their own, once configured. Quite a bit of stuff runs asynchronously with your executing code.