Firmware Limitations on AutoPilot Hardware¶
The ArduPilot firmware in some configurations exceeds 1 MB in size. Some autopilots may not have enough flash memory to store the full firmware.
For the affected autopilots, a reduced firmware is generated. This firmware omits less-commonly used features in order to reduce the firmware size to less than 1 MB.
The missing features are listed below.
The LUA scripting and external (non-GPS) navigation features require a board with more than 1MB of flash. This affects the below listed boards plus the KakuteF4, BeastF4, F35Lightning, F4BY, MambaF405v2, MazzyStarDrone, OmnibusNanoV6, VRBrain-v51, VRBrain-v52, VRCore-v10, VRUBrain-v51, airbotf4, crazyflie2, mini-pix, revo-mini, skyviper, speedybeef4
- Sparky2, OMNIBUSF7V2, KakuteF7, KakuteF7 Mini and older versions of the Pixhawk (with the RevA, RevY and Rev1 of the STM32F427 chip)
- Common to all vehicles
- Aux function for testing IMU failover (KILL_IMU)
- LTM, MSP, CRSF, Spektrum, Devo and Hott telemetry formats
- Piccolo CAN
- Oreo LED lights
- NCP5623 LED lights
- NMEA output format
- Solo Gimbal
- DSP support
- MTK, SIRF GPS support
- EFI engine support
- AK09916 on ICM20948 compass
- External I2C barometers
- DLVR Airspeed sensors
- CAN Tester
- External AHRS
- GPS moving baseline
- INS temperature calibration
- Copter only
- Visual Odometry
- Guided, Follow, Sport, SystemID, Zigzag and Autorotate modes
- Optical Flow
- Plane Only
- Landing Gear
- Qautotune mode
- Rover Only
- Sub Only
- Common to all vehicles
- Matek F405, Matek F405-Wing/F405-SE, OmnibusF4/F4Pro
- SMBUS battery
There may be insufficient RAM available in some flight controllers to support all enabled firmware features. Some possible symptoms are:
- MAVFTP does not work. Parameter downloads to GCS are delayed starting while the GCS tries to establish a MAVFTP link which cannot be setup, and then proceed slowly to download parameters using the normal download method.
- Compass Calibration will not start
- Logging will not start
- Terrain downloading from GCS will not start
If this occurs, several possible options are available to allow temporary use of MAVFTP, download terrain tiles, and/or Compass Calibration. All require a reboot to take effect:
- Make sure IMU Batch Sampling (used for FFT analysis) is not running by setting INS_LOG_BAT_MASK = 0.
- Try temporarily disabling logging by setting LOG_BACKEND_TYPE to 0, then returning to 1 (default) after calibrating.
- Reduce the size of LOG_FILE_BUFSIZE . However, lowering below 16KB can introduce small gaps in the log. This may be used temporarily to download terrain or calibrate compass.
- Disable Terrain Following temporarily by setting TERRAIN_ENABLE to 0.
- Disable SmartRTL on Copter by setting SRTL_POINTS = 0.