I am trying to understand the high-level software architecture of Ardupilot, can someone answer the following questions related to where all these files are stored, SD card or on the flight controller?
Also, it would be good to know file extensions? I am not a software engineer, so forgive me for asking these questions.
After performing a calibration, the parameters for that sensor are changed. The parameters are stored in eeprom and loaded on boot. Usually when downloading or saving the parameters from a GCS they are saved as a text file with a .parm or .param extension. It just text inside so you can use notepad to read it. Missions are also saved to eeprom after they are loaded for the first time. They can be read back to a GCS as well.
The main purpose of the SD card is used to hold terrain data, Lua scripts, and dataflash logs.
No, there is always some difference in the individual sensors and mounting. You should re-do the compass and accelerometer calibrations. Probably also current and voltage if your using a battery monitor.
Things like the PIDs, speeds, servo output functions are fine to copy across. Although you might want to consider setting the servo min max and trim for each aircraft so you get your throws right.
ArduPilot tries very hard to make parameter/s that are changed from release release upgrade automatically for you, and it mostly works most of the time. i recommend this process tho… before updating your firmware, save your params to a file as a backup, then do the firmware upgrade, then save the updated params to a file again, and you can compare what’s changed before and after.