I'll get straight to the point. You cannot recalibrate the compass midair! Now for the explanation. Over a period of time I have learned (the hard way) that when things are going wrong you should never panic. However this is sometimes easier said than done. Therefore as part of my learning process, I have tried to make a list of things that a person might do in a panic situation that could totally f*&k things up. One of the things that was gnawing at the back of my mind was a misuse of the compass recalibration via the controller. The generally discussed means of this is generally by way of the DJI Go App. However one can also initiate the process by toggling S1 at least 5 times. In my mind, I imagined a panic situation where the user toggles the S1 many times, thus initiating a midair compass calibration. The disastrous consequences of such an action need not be elaborated upon. Obviously I did not wish to test out this scenario. Therefore, I went on an internet quest. But nothing turned up. So I figured it was time to actually test this. I lifted the Phantom 3S about 3 feet off the ground and then tried to initiate a compass recalibration. It would not happen. I tried multiple times in many different ways and every time I got the same result. The Phantom will not recalibrate in midair! So a thumbs up to the programmers at DJI for thinking about this. It would have been very easy to overlook something like this. BTW. My DJI App is 2.8.2 and my firmware version is 1.6.8., just in case some future version of the software forgets to disable this potentially disastrous situation.