← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

A parameter could not be changed from outside

WarningLogging and storage

What ArduPilot says:

“Param write denied (NAME)” means the ground station, or a parameter screen on the transmitter, tried to change a parameter this firmware does not let anyone change: one locked as read-only in the defaults built into the firmware, or one ArduPilot keeps for itself (MIS_TOTAL, sensor device IDs, the barometer's ground pressure). The old value stays and is sent back. “Param write failed” and “Param read failed” come only from the FrSky telemetry parameter screen, when the name it asked for does not exist.

What to do, most likely first

  1. A full parameter file from another aircraft was loaded; it contains values ArduPilot keeps for itself.

    CheckThe name in brackets is a counter or an ID (MIS_TOTAL, a name ending in DEVID or GND_PRESS).

    FixNothing to fix: these are filled in by ArduPilot. Parameter Compare & Migrate leaves them out when it moves a file to another aircraft.

  2. The firmware was built with this parameter locked.

    CheckThe Firmware Inspector shows the defaults built into a firmware file; a locked value has @READONLY after it.

    FixChange the value where it is locked: in the defaults, with the Firmware Builder, and flash the new build.

BRD_OPTIONS bit 2 lets the internal parameters be written. It exists for developers; setting MIS_TOTAL or a device ID by hand makes ArduPilot believe things that are not true.

Parameters to look at

ParameterWhat it is
BRD_OPTIONSBoard options
MIS_TOTALTotal mission commands
The code that sends it

Param write denied (…)

libraries/AP_Frsky_Telem/AP_Frsky_MAVliteMsgHandler.cpp AP_Frsky_MAVliteMsgHandler::handle_param_set() · Open in ArduPilot Copter-4.7.1

libraries/GCS_MAVLink/GCS_Param.cpp GCS_MAVLINK::handle_param_set() · Open in ArduPilot Copter-4.7.1

Param read failed (…)

libraries/AP_Frsky_Telem/AP_Frsky_MAVliteMsgHandler.cpp AP_Frsky_MAVliteMsgHandler::handle_param_request_read() · Open in ArduPilot Copter-4.7.1

libraries/AP_Frsky_Telem/AP_Frsky_MAVliteMsgHandler.cpp AP_Frsky_MAVliteMsgHandler::handle_param_set() · Open in ArduPilot Copter-4.7.1

Param write failed (…)

libraries/AP_Frsky_Telem/AP_Frsky_MAVliteMsgHandler.cpp AP_Frsky_MAVliteMsgHandler::handle_param_set() · Open in ArduPilot Copter-4.7.1

Written here for Copter 4.6. In the tool you choose your vehicle and version, see your own parameter values beside the ones named here, and drop a flight log to have every message in it explained.

Open it in the Message & Error Explainer