Skip to content

Flash savings ideas : features/drivers to disable/remove to save flash #28210

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
2 of 6 tasks
rmackay9 opened this issue Sep 24, 2024 · 13 comments
Open
2 of 6 tasks

Flash savings ideas : features/drivers to disable/remove to save flash #28210

rmackay9 opened this issue Sep 24, 2024 · 13 comments

Comments

@rmackay9
Copy link
Contributor

rmackay9 commented Sep 24, 2024

AP's flash size is constantly growing as new features and drivers are added but unfortunately the STM32 autopilot's CPUs flash size is not keeping up. This means we need to disable or remove lesser used features from many boards.

This issue is to collect ideas (primarily from members of the core dev team) on features/drivers they think could be sacrificed.

Note we have a few ways to reduce flash:

  1. move the feature/driver to be disabled by default thus forcing users to rely on the custom build server
  2. migrate the feature to Lua forcing the user to load a Lua script
  3. completely remove the feature or driver

Suggestions include:

  • Generator (suggested by PeterB)
  • External AHRS (suggested by PeterB, Tridge)
  • Avoid ADSB copter flight mode (suggested by Randy)
  • AP_GPS_GSOF once we have it available as an EAHRS (from RyanF)
  • KDECAN
  • PiccoloCAN
@Ryanf55
Copy link
Contributor

Ryanf55 commented Sep 24, 2024

  • AP_GPS_GSOF once we have it available as an EAHRS.

+1 on EAHRS

@timtuxworth
Copy link
Contributor

Plane: suggesting all of these could be custom build server options only.
ICE
Precision Landing
Gimbals (except for Mount and Servo Gimbal)
VTX
Generator

@amilcarlucas
Copy link
Contributor

Winch
Exotic ESCs

@peterbarker
Copy link
Contributor

I've used some of these ideas in https://github.com/ArduPilot/ardupilot/pull/28226/files - thanks!

@peterbarker
Copy link
Contributor

  • bootloader flashing

@Hwurzburg
Copy link
Contributor

Hwurzburg commented Mar 26, 2025

  • Rangefinder on Plane

@tridge
Copy link
Contributor

tridge commented Mar 26, 2025

@andyp1per suggested -Os or -O1 default on current 2M boards

@peterbarker
Copy link
Contributor

disable-in-turn.csv

That's the output from ./Tools/autotest/test_build_options.py's "disable in turn" step. It shows the number of bytes saved on CubeOrange when each feature is disabled. This might help selection of things to boot from the standard build.

@rmackay9
Copy link
Contributor Author

Thanks @peterbarker. I've extracted your list and sorted it for copter

Feature copter
AP_SCRIPTING_ENABLED 182160
HAL_NAVEKF3_AVAILABLE 171400
HAL_ENABLE_DRONECAN_DRIVERS 96120
HAL_LOGGING_ENABLED 95704
HAL_MOUNT_ENABLED 67300
AP_FENCE_ENABLED 50360
AP_RANGEFINDER_ENABLED 48056
HAL_GYROFFT_ENABLED 42308
OSD_ENABLED 40568
AP_RCPROTOCOL_ENABLED 35888
AP_OPTICALFLOW_ENABLED 33816
AP_FILESYSTEM_ROMFS_ENABLED 32912
HAL_MSP_ENABLED 31808
AP_BOOTLOADER_FLASHING_ENABLED 31648
HAL_EXTERNAL_AHRS_ENABLED 29112
HAL_PROXIMITY_ENABLED 26824
HAL_ADSB_ENABLED 25800
AP_CAMERA_ENABLED 25192
AP_FRSKY_TELEM_ENABLED 24288
AP_AIRSPEED_ENABLED 22984
AP_FRSKY_SPORT_TELEM_ENABLED 21952
AP_OAPATHPLANNER_ENABLED 19016
HAL_WITH_MSP_DISPLAYPORT 18248
AP_FRSKY_SPORT_PASSTHROUGH_ENABLED 18240
HAL_SOLO_GIMBAL_ENABLED 17192
AP_AVOIDANCE_ENABLED 15680
HAL_EFI_ENABLED 14816
COMPASS_CAL_ENABLED 14592
AP_BEACON_ENABLED 14424
EK3_FEATURE_OPTFLOW_FUSION 12816
AP_GPS_UBLOX_ENABLED 12368
AP_RCPROTOCOL_CRSF_ENABLED 11640
OSD_PARAM_ENABLED 11596
AP_BARO_PROBE_EXTERNAL_I2C_BUSES 11296
HAL_VISUALODOM_ENABLED 10520
AP_EXTERNAL_AHRS_INERTIALLABS_ENABLED 10344
AC_PRECLAND_ENABLED 10144
AP_INERTIALSENSOR_HARMONICNOTCH_ENABLED 9824
HAL_CRSF_TELEM_ENABLED 9680
AP_VIDEOTX_ENABLED 9036
HAL_MOUNT_XACTI_ENABLED 8968
HAL_PICCOLO_CAN_ENABLE 8920
AP_RCPROTOCOL_SRXL2_ENABLED 8584
HAL_GENERATOR_ENABLED 8544
HAL_ADSB_SAGETECH_MXS_ENABLED 8376
HAL_INS_TEMPERATURE_CAL_ENABLE 8040
HAL_MOUNT_TOPOTEK_ENABLED 7092
AP_GPS_NMEA_ENABLED 6176
HAL_MOUNT_SIYI_ENABLED 5992
AP_CAMERA_RUNCAM_ENABLED 5600
AP_OPTICALFLOW_PIXART_ENABLED 5536
AP_RPM_ENABLED 5504
AP_WINCH_ENABLED 5060
GPS_MOVING_BASELINE 5040
AP_NOTIFY_TONEALARM_ENABLED 4984
EK3_FEATURE_DRAG_FUSION 4984
AP_GPS_SBF_ENABLED 4904
AP_GPS_SBP_ENABLED 4864
AP_SERVO_TELEM_ENABLED 4864
AP_EXTERNAL_AHRS_VECTORNAV_ENABLED 4816
HAL_MOUNT_VIEWPRO_ENABLED 4812
MODE_ZIGZAG_ENABLED 4784
AP_MAVLINK_FTP_ENABLED 4648
AP_CRASHDUMP_ENABLED 4636
MODE_FLOWHOLD_ENABLED 4616
HAL_SPEKTRUM_TELEM_ENABLED 4576
AP_FOLLOW_ENABLED 4448
AP_SERIALMANAGER_REGISTER_ENABLED 4448
AP_RELAY_ENABLED 4376
MODE_SYSTEMID_ENABLED 4208
AP_BATTERY_SMBUS_ENABLED 4172
HAL_DISPLAY_ENABLED 4168
AP_RANGEFINDER_VL53L1X_ENABLED 4152
AP_CAN_SLCAN_ENABLED 4096
AP_RCPROTOCOL_GHST_ENABLED 3672
HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL 3496
AP_CAMERA_INFO_FROM_SCRIPT_ENABLED 3480
HAL_ADSB_UCP_ENABLED 3416
AP_FETTEC_ONEWIRE_ENABLED 3296
EK3_FEATURE_EXTERNAL_NAV 3272
AP_FILESYSTEM_PARAM_ENABLED 3208
AP_RANGEFINDER_VL53L0X_ENABLED 3200
AP_SMARTAUDIO_ENABLED 3144
AP_GPS_BLENDED_ENABLED 3096
AP_INERTIALSENSOR_FAST_SAMPLE_WINDOW_ENABLED 2968
HAL_MSP_OPTICALFLOW_ENABLED 2952
AP_COMPASS_DRONECAN_ENABLED 2872
HAL_MSP_RANGEFINDER_ENABLED 2864
HAL_RALLY_ENABLED 2848
AP_DRONECAN_SERIAL_ENABLED 2800
AP_DRONECAN_HOBBYWING_ESC_SUPPORT 2792
AP_COMPASS_BMM350_ENABLED 2656
AP_FILESYSTEM_SYS_ENABLED 2576
HAL_ADSB_SAGETECH_ENABLED 2464
AP_AIRSPEED_DRONECAN_ENABLED 2456
AP_WINCH_DAIWA_ENABLED 2452
AP_COMPASS_HMC5843_ENABLED 2448
AP_GENERATOR_IE_2400_ENABLED 2392
AP_GPS_SBP2_ENABLED 2376
AP_DRONECAN_SEND_GPS 2352
AP_EXTERNAL_AHRS_MICROSTRAIN7_ENABLED 2336
AP_RANGEFINDER_LWI2C_ENABLED 2320
AP_GHST_TELEM_ENABLED 2304
MODE_FOLLOW_ENABLED 2296
HAL_MSP_SENSORS_ENABLED 2288
AP_BARO_MSP_ENABLED 2280
AP_BATTERY_INA2XX_ENABLED 2280
AP_COMPASS_MSP_ENABLED 2280
HAL_MSP_GPS_ENABLED 2280
AP_AIRSPEED_MSP_ENABLED 2272
AP_AIRSPEED_SDP3X_ENABLED 2248
AP_GENERATOR_RICHENPOWER_ENABLED 2248
AP_FILESYSTEM_MISSION_ENABLED 2200
AP_GPS_GSOF_ENABLED 2184
AP_COMPASS_LIS3MDL_ENABLED 2128
AP_FILTER_ENABLED 2128
AP_COMPASS_MMC3416_ENABLED 2112
AP_MISSION_NAV_PAYLOAD_PLACE_ENABLED 2096
AP_BARO_DRONECAN_ENABLED 2080
AP_INERTIALSENSOR_BATCHSAMPLER_ENABLED 2072
AP_GRIPPER_ENABLED 2068
AP_VOLZ_ENABLED 2048
AC_PAYLOAD_PLACE_ENABLED 2032
AP_PROXIMITY_DRONECAN_ENABLED 2024
HAL_HIGH_LATENCY2_ENABLED 2024
AP_GPS_NMEA_UNICORE_ENABLED 2000
HAL_BUTTON_ENABLED 1984
AP_COMPASS_CALIBRATION_FIXED_YAW_ENABLED 1976
AP_EFI_SERIAL_MS_ENABLED 1936
MODE_TURTLE_ENABLED 1896
AP_ROBOTISSERVO_ENABLED 1872
HAL_PARACHUTE_ENABLED 1824
AP_PROXIMITY_LIGHTWARE_SF40C_ENABLED 1816
AP_PROXIMITY_MAV_ENABLED 1800
AP_PROXIMITY_LIGHTWARE_SF45B_ENABLED 1760
AP_EFI_DRONECAN_ENABLED 1752
AP_EXTERNAL_AHRS_MICROSTRAIN5_ENABLED 1736
AP_RSSI_ENABLED 1728
AP_SERVORELAYEVENTS_ENABLED 1712
AP_EFI_SERIAL_HIRTH_ENABLED 1688
HAL_MOUNT_SERVO_ENABLED 1688
HAL_NMEA_OUTPUT_ENABLED 1688
AP_EFI_CURRAWONG_ECU_ENABLED 1672
AP_COMPASS_IST8310_ENABLED 1656
AP_BARO_BMP085_ENABLED 1648
AP_AIRSPEED_MS4525_ENABLED 1640
AP_RANGEFINDER_WASP_ENABLED 1640
AP_AIRSPEED_MS5525_ENABLED 1600
AP_TRAMP_ENABLED 1600
AP_BARO_DPS280_ENABLED 1592
AP_BARO_SPL06_ENABLED 1592
AP_COMPASS_BMM150_ENABLED 1592
AP_COMPASS_RM3100_ENABLED 1560
AP_TEMPERATURE_SENSOR_ENABLED 1560
HAL_MOUNT_GREMSY_ENABLED 1560
AP_RPM_PIN_ENABLED 1552
AP_AIRSPEED_AUAV_ENABLED 1544
AP_CAMERA_MAVLINKCAMV2_ENABLED 1512
AP_GPS_NOVA_ENABLED 1512
AP_PROXIMITY_RPLIDARA2_ENABLED 1504
AP_GPS_ERB_ENABLED 1480
AP_SDCARD_STORAGE_ENABLED 1480
AP_RANGEFINDER_BENEWAKE_TFMINIPLUS_ENABLED 1472
HAL_MOUNT_ALEXMOS_ENABLED 1464
AP_RC_CHANNEL_AUX_FUNCTION_STRINGS_ENABLED 1456
AP_COMPASS_IST8308_ENABLED 1416
AP_BARO_FBM320_ENABLED 1392
AP_MOTORS_FRAME_QUAD_ENABLED 1376
AP_LANDINGGEAR_ENABLED 1360
AP_RANGEFINDER_DRONECAN_ENABLED 1360
AP_SCRIPTING_SERIALDEVICE_ENABLED 1352
AP_DRONECAN_HIMARK_SERVO_SUPPORT 1344
AP_TEMPCALIBRATION_ENABLED 1328
AP_BARO_BMP388_ENABLED 1320
AP_MOTORS_FRAME_OCTA_ENABLED 1312
AP_BARO_BMP280_ENABLED 1304
AP_COMPASS_QMC5883L_ENABLED 1304
MODE_FLIP_ENABLED 1296
AP_KDECAN_ENABLED 1248
AP_CUSTOMROTATIONS_ENABLED 1232
HAL_SPRAYER_ENABLED 1224
AP_OPTICALFLOW_HEREFLOW_ENABLED 1160
HAL_MOUNT_STORM32SERIAL_ENABLED 1148
AP_FRSKY_D_TELEM_ENABLED 1136
HAL_CRSF_TELEM_TEXT_SELECTION_ENABLED 1120
AC_PRECLAND_IRLOCK_ENABLED 1112
AP_AIS_ENABLED 1048
AP_BARO_LPS2XH_ENABLED 1040
AP_RANGEFINDER_PULSEDLIGHTLRF_ENABLED 1024
AP_RANGEFINDER_JRE_SERIAL_ENABLED 1008
AP_PROXIMITY_TERARANGERTOWEREVO_ENABLED 992
AP_RPM_DRONECAN_ENABLED 984
HAL_ADSB_UAVIONIX_MAVLINK_ENABLED 984
AP_AIRSPEED_DLVR_ENABLED 976
AP_GPS_SIRF_ENABLED 968
AP_RANGEFINDER_TRI2C_ENABLED 968
HAL_PLUSCODE_ENABLE 944
AP_EXTENDED_ESC_TELEM_ENABLED 936
AP_PROXIMITY_CYGBOT_ENABLED 936
AP_RANGEFINDER_BLPING_ENABLED 936
AP_RANGEFINDER_NMEA_ENABLED 928
AP_MOTORS_FRAME_OCTAQUAD_ENABLED 896
AP_CAMERA_SOLOGIMBAL_ENABLED 888
AP_RCPROTOCOL_SRXL_ENABLED 888
AP_CAMERA_MOUNT_ENABLED 872
HAL_MOUNT_CADDX_ENABLED 872
AP_AIRSPEED_ASP5033_ENABLED 856
HAL_OSD_SIDEBAR_ENABLE 848
AP_RANGEFINDER_LIGHTWARE_SERIAL_ENABLED 832
AP_NOTIFY_MAVLINK_LED_CONTROL_SUPPORT_ENABLED 824
AP_RANGEFINDER_TOFSENSEF_I2C_ENABLED 824
HAL_MOUNT_STORM32MAVLINK_ENABLED 824
AP_EFI_NWPWU_ENABLED 816
AP_MAVLINK_MSG_DEVICE_OP_ENABLED 816
AP_OPTICALFLOW_PX4FLOW_ENABLED 808
AP_RANGEFINDER_PWM_ENABLED 800
AP_BARO_EXTERNALAHRS_ENABLED 792
AP_PROXIMITY_RANGEFINDER_ENABLED 792
AP_RANGEFINDER_LEDDARVU8_ENABLED 776
AP_MAVLINK_MSG_SERIAL_CONTROL_ENABLED 760
AP_NOTIFY_NCP5623_ENABLED 760
AP_OPTICALFLOW_CXOF_ENABLED 760
AP_RANGEFINDER_RDS02UF_ENABLED 760
AP_CAMERA_SEND_FOV_STATUS_ENABLED 752
AP_BARO_BMP581_ENABLED 736
AP_OPTICALFLOW_UPFLOW_ENABLED 728
AP_MAVLINK_MSG_FLIGHT_INFORMATION_ENABLED 720
AP_EFI_SERIAL_LUTAN_ENABLED 704
AP_GPS_MAV_ENABLED 704
AP_MOTORS_FRAME_Y6_ENABLED 704
AP_RCPROTOCOL_ST24_ENABLED 704
AP_BATTERY_FUELFLOW_ENABLED 696
MODE_BRAKE_ENABLED 688
AP_RANGEFINDER_MAXSONARI2CXL_ENABLED 680
HAL_BARO_WIND_COMP_ENABLED 680
AP_BATTERY_FUELLEVEL_ANALOG_ENABLED 672
AP_BATTERY_SUM_ENABLED 672
AP_MOTORS_FRAME_HEXA_ENABLED 672
AP_RANGEFINDER_LEDDARONE_ENABLED 672
AP_PROXIMITY_TERARANGERTOWER_ENABLED 656
AP_RANGEFINDER_USD1_SERIAL_ENABLED 640
AP_RCPROTOCOL_SUMD_ENABLED 608
HAL_TORQEEDO_ENABLED 608
AP_CAMERA_SERVO_ENABLED 600
AP_COMPASS_EXTERNALAHRS_ENABLED 584
AP_RCPROTOCOL_SBUS_ENABLED 584
AP_WINCH_PWM_ENABLED 560
AP_OPTICALFLOW_MAV_ENABLED 544
AP_RANGEFINDER_HC_SR04_ENABLED 504
COMPASS_LEARN_ENABLED 504
AP_RANGEFINDER_MAVLINK_ENABLED 488
AP_RANGEFINDER_ANALOG_ENABLED 480
AP_ADVANCEDFAILSAFE_ENABLED 472
AP_COPTER_AHRS_AUTO_TRIM_ENABLED 472
AP_SBUSOUTPUT_ENABLED 472
AP_GENERATOR_IE_650_800_ENABLED 464
AP_MAVLINK_MSG_MISSION_REQUEST_ENABLED 448
AP_RANGEFINDER_TERARANGER_SERIAL_ENABLED 448
AP_RANGEFINDER_NOOPLOOP_ENABLED 432
AP_RCPROTOCOL_IBUS_ENABLED 432
AP_CAN_LOGGING_ENABLED 416
AP_BATTERY_FUELLEVEL_PWM_ENABLED 392
AP_BATTERY_SYNTHETIC_CURRENT_ENABLED 392
AP_RANGEFINDER_GYUS42V2_ENABLED 384
AP_RANGEFINDER_LANBAO_ENABLED 384
AP_MAVLINK_MSG_RELAY_STATUS_ENABLED 376
AP_RCPROTOCOL_MAVLINK_RADIO_ENABLED 368
AP_RANGEFINDER_LUA_ENABLED 352
AP_CAMERA_MAVLINK_ENABLED 344
AP_MOTORS_FRAME_DODECAHEXA_ENABLED 344
AP_RANGEFINDER_MAXBOTIX_SERIAL_ENABLED 344
AC_PRECLAND_COMPANION_ENABLED 312
AP_EFI_MAV_ENABLED 312
AP_CAMERA_RELAY_ENABLED 296
AP_MOTORS_FRAME_DECA_ENABLED 296
AP_FILESYSTEM_FORMAT_ENABLED 272
AP_NOTIFY_NEOPIXEL_ENABLED 264
AP_RANGEFINDER_BENEWAKE_CAN_ENABLED 264
AP_RANGEFINDER_TOFSENSEP_CAN_ENABLED 256
AP_AIRSPEED_ANALOG_ENABLED 248
AP_MAVLINK_SERVO_RELAY_ENABLED 248
AP_INERTIALSENSOR_KILL_IMU_ENABLED 240
MODE_GUIDED_NOGPS_ENABLED 240
AP_NOTIFY_PROFILED_ENABLED 216
AP_MAVLINK_MSG_RC_CHANNELS_RAW_ENABLED 208
AP_RANGEFINDER_USD1_CAN_ENABLED 208
AP_RCPROTOCOL_PPMSUM_ENABLED 208
AP_CAMERA_SEND_THERMAL_RANGE_ENABLED 176
AP_RPM_HARMONICNOTCH_ENABLED 176
AP_ICENGINE_ENABLED 144
AP_RANGEFINDER_BENEWAKE_TF02_ENABLED 144
AP_MAVLINK_MSG_VIDEO_STREAM_INFORMATION_ENABLED 136
AP_RANGEFINDER_BENEWAKE_TF03_ENABLED 136
AP_RANGEFINDER_BENEWAKE_TFMINI_ENABLED 136
AP_RPM_EFI_ENABLED 128
AP_RPM_GENERATOR_ENABLED 128
AP_RPM_ESC_TELEM_ENABLED 120
HAL_LANDING_DEEPSTALL_ENABLED 120
AP_NOTIFY_MAVLINK_PLAY_TUNE_SUPPORT_ENABLED 88
AP_BATTERY_WATT_MAX_ENABLED 8
AP_BARO_KELLERLD_ENABLED -16
AP_BARO_THST_COMP_ENABLED -16
AP_BATTERY_INA3221_ENABLED -16
AP_COMPASS_IIS2MDC_ENABLED -16
AP_COMPASS_LSM9DS1_ENABLED -16
AP_COMPASS_MAG3110_ENABLED -16
AP_IBUS_TELEM_ENABLED -16
AP_LTM_TELEM_ENABLED -16
AP_MAVLINK_MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES_ENABLED -16
AP_NOTIFY_PROFILED_SPI_ENABLED -16
AP_OPENDRONEID_ENABLED -16
AP_QUICKTUNE_ENABLED -16
AP_RANGEFINDER_HEXSOONRADAR_ENABLED -16
AP_RANGEFINDER_NRA24_CAN_ENABLED -16
AP_TUNING_ENABLED -16
HAL_HOTT_TELEM_ENABLED -16
HAL_MOUNT_XFROBOT_ENABLED -16
HAL_SOARING_ENABLED -16
MODE_AUTOLAND_ENABLED -16
MODE_SPORT_ENABLED -16
QAUTOTUNE_ENABLED -16
AP_BATTERY_ESC_TELEM_OUTBOUND_ENABLED -24
AP_COMPASS_DRONECAN_HIRES_ENABLED -24
AP_COMPASS_MMC5XX3_ENABLED -24
AP_COPTER_ADVANCED_FAILSAFE_ENABLED -24
AP_MAVLINK_AUTOPILOT_VERSION_REQUEST_ENABLED -24
AP_NETWORKING_BACKEND_PPP -24
AP_OPTICALFLOW_ONBOARD_ENABLED -24
AP_PLANE_BLACKBOX_LOGGING -24
AP_PLANE_GLIDER_PULLUP_ENABLED -24
AP_PLANE_SYSTEMID_ENABLED -24
AP_PROXIMITY_HEXSOONRADAR_ENABLED -24
AP_PROXIMITY_MR72_ENABLED -24
AP_ROVER_ADVANCED_FAILSAFE_ENABLED -24
AP_SERIALMANAGER_IMUOUT_ENABLED -24
AP_TEMPERATURE_SENSOR_MCP9600_ENABLED -24
AP_TEMPERATURE_SENSOR_SHT3X_ENABLED -24
AP_TEMPERATURE_SENSOR_TSYS01_ENABLED -24
AP_TEMPERATURE_SENSOR_TSYS03_ENABLED -24
FORCE_APJ_DEFAULT_PARAMETERS -24
HAL_NAVEKF2_AVAILABLE -24
AC_POLYFENCE_FENCE_POINT_PROTOCOL_SUPPORT -32
AP_DRONECAN_VOLZ_FEEDBACK_ENABLED -32
AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED -32
AP_MAVLINK_RALLY_POINT_PROTOCOL_ENABLED -32
AP_OSD_LINK_STATS_EXTENSIONS_ENABLED -32
AP_PLANE_OFFBOARD_GUIDED_SLEW_ENABLED -32
AP_TEMPERATURE_SENSOR_MLX90614_ENABLED -32
HAL_PERIPH_SUPPORT_LONG_CAN_PRINTF -32
HAL_QUADPLANE_ENABLED -32
AP_AIRSPEED_NMEA_ENABLED -56

@amilcarlucas
Copy link
Contributor

amilcarlucas commented May 30, 2025

It would be great if this information would find it's way into custom.ardupilot.org
The users would be able to get a feeling for how "expensive" each function is.

@timtuxworth
Copy link
Contributor

timtuxworth commented May 30, 2025

How much flash could we save by moving English language text messages (mostly sendtext) out to the GCS? I asked Co-Pilot

Great question! Replacing long English text messages with short codes (like 3-character alphanumeric identifiers) can save significant flash space in embedded firmware like ArduPilot.

There seem to be around 3000 send_text messages so the savings might be as much as 30-40k and as a bonus the GCS would be able to display messages in different languages.

@Hwurzburg
Copy link
Contributor

@timtuxworth not a good ideef....that would effectively disable them in OpenTX/EdgeTX and OSDs of all kinds....and trying to keep all GCS up to date would be impossible,especially on critical items...

@Hwurzburg
Copy link
Contributor

disable-in-turn.pdf
I was going to add this to the wiki, so I converted all NEGATIVEs to -na- but there are many that show as na across the boared..
@peterbarker whats the explaination?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants