APJ Tools for Custom Parameter Defaults

Note

this capability has been removed as of ArduPilot version 4.5 and later. See instead OEM Customization.

APJ Tools is a command-line Python program which can be used to add custom default parameter values to a pre-built ArduPilot firmware. It can also mark these parameters as read-only to avoid users accidentally overwriting them. This can help companies reduce the time required to set up many identical vehicles.

Additional customization options are possible by creating a new build target for a specific vehicle. OEM Customization

How to Install APJ Tools

  • Download and Install Python if not already installed on your machine

  • Use a web browser to open APJ Tools in the ArduPilot GitHub repository and then right-mouse-button click and save to a file on your PC

How to update the Defaults

  • Find and download the ArduPilot firmware you wish to customize from firmware.ardupilot.org. For example, the stable version of ArduPilot Copter for the Hex Cube Black is the “arducopter.apj” file found at firmware.ardupilot.org/Copter/stable/CubeBlack/.

  • Place the above .apj file in the same directory as the apj_tool.py file

  • Use a text editor to create a parameters file (maybe called “param-defaults.parm”) of this format

# Default parameter file for vehicleX
MOT_PWM_MIN 1000
ATC_RAT_RLL_P 0.100 @READONLY   # users will not be able to modify this parameter
  • Embed the parameter defaults in the .apj firmware with this command

python3 apj_tool.py --set-file param-defaults.parm arducopter.apj
  • Check the defaults have been applied correctly with this command

python3 apj_tool.py --show arducopter.apj
  • Load the modified .apj file to your vehicle and check the defaults have worked correctly

Additional Info

  • APJ Tool’s help can be displayed using this command

python3 apj_tool.py --help
  • The parameters will be the new default values only if the user has not modified them

  • If all parameters are reset to their defaults, they will return to the values specified in the file

  • The @READONLY modifier will stop users from modifying the parameter as long as they use this particular firmware. The users can get around this though if they go to the extra effort of loading the standard ArduPilot firmware to the autopilot

  • The new parameter default file can be a maximum of 8k including comments