A parameter could not be changed from outside
What ArduPilot says:
- Param write denied (…)
- Param read failed (…)
- Param write failed (…)
“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
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 orGND_PRESS).FixNothing to fix: these are filled in by ArduPilot. Parameter Compare & Migrate leaves them out when it moves a file to another aircraft.
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
| Parameter | What it is |
|---|---|
BRD_OPTIONS | Board options |
MIS_TOTAL | Total mission commands |
Where to do it:Firmware InspectorFirmware BuilderParameter Compare & Migrate
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