I meant that you should flash the default PX4 firmware version 1.6.5, which is located in /etc/aerofc/px4/
Then, after checking with aero_get_version.py that you have the firmware version 1.6.5, please do a frame reset in QGC.
Since it's raining these days. I might need a few more days to test it out. I am just curious. Have you tested out Intel RTF with the latest firmware? It doesn't make much sense to me if the calibration doesn't work in the latest stable firmware. Anyway, I will give you feedback after I test it out.
I'm gonna end this discussion.
I tried flashing the default PX4 firmware and sometimes it behaves well but sometimes it behaves bad. Please see the discussion here. Intel Aero RTF - CRITICAL NAVIGATION FAILURE
Then I decides to switch to Ardupilot and stick on it for my project. There are a few points to keep in mind if you are also using Ardupilot with Intel Aero RTF.
1. Please flash the default firmware under /etc/aerofc/ardupilot. I would suggest you flash the latest firmware after making sure the default firmware works well.
2. Compass calibration is very important. However, even if QGroundControl tells you the calibration quality is bad (like the screenshot I showed in this thread), it might still works well if you calibrate it in the field right before your flight.
3. When testing your drone, takeoff with "attitude hold" mode, raise the drone to around 3m above the ground, change flight mode to "loiter". If the drone is out of control, quickly switch back to "attitude hold" mode to regain control. Take a look at the messages sent to your ground control station. If you see "GPS Glitch", it's highly possible you have a bad calibrated compass. Calibrate your compass again to resolve the issue.
4. If you the calibration procedure in QGroundControl cannot take in any data, try to do a compass calibration using APMPlanner. QGroundControl won't rewrite the parameters if the calibration is not successful. But APMPlanner would clear the COMPASS_OFS_X, COMPASS_OFS_Y, COMPASS_OFS_Z parameters. After this, you should be able to use QGroundControl to calibrate the compass.
After several trials I finally got to solve this compass calibration problem and make these conclusions. Hope it helps others in the community.
Thanks again for your advise!