As Rocketmagnet suggests, what frequency you "need" will depend on a lot of things. The more responsive your rotors are, the more sensitive your craft will be to random spikes in motor commands. These random spikes may be caused by noisy sensor readings caused by physical imperfections, which means you would need to lower your controller gains, which in turn might mean your quadrotor may become more unstable. Some other factors include the rotational inertias of the quadrotor, the propellers' blade pitch, the location of the center of mass, and the motor-to-motor distance.
I programmed a flight controller from scratch for my 2 kg tricopter running on an ATmega1280 and found that at:
- 50 Hz: It will stay in the air but is nigh impossible to control.
- 100 Hz: It will at least avoid immediately tipping to one side.
- 200 Hz: I can let it loose indoors at hover throttle and it will stay more or less in one spot.
It may be of interest to note that the higher the control frequency, the more effective your rotor inertias become at being physical dampers, which helps nullify IMU noise and improve flight stability.
But if I had to give a hard number for a minimum flight controller update frequency for a quadrotor of that size suitable for indoor navigation, based on personal experience...
I'd say 80 Hz.