The scripts on board are not the ones that were approved
What ArduPilot says:
- Scripting: loaded CRC incorrect want: 0x0x…
- Scripting: running CRC incorrect want: 0x0x…
SCR_LD_CHECKSUM and SCR_RUN_CHECKSUM let you lock which scripts may fly. Each holds a checksum, a number worked out from the contents of the script files: of the scripts that were loaded, and of those still running. With -1 (the default) nothing is checked. When a parameter holds another value and it differs from what is on board now, arming is refused. The number in the message is the checksum of what is on board now.
What to do, most likely first
A script was changed, added or removed since the checksums were saved.
CheckCompare the files in APM/scripts with the set you approved.
FixIf the change is intended, set
SCR_DEBUG_OPTSbit 5 once: ArduPilot stores the present checksums, says “Scripting: saved checksums” and clears the bit. If it is not, put the right files back.“running CRC incorrect”: a script that was loaded has stopped with an error.
CheckLook for a “Lua: …” error line.
FixFix that error and reboot.
The parameters came from another aircraft that uses the lock; you do not.
FixSet
SCR_LD_CHECKSUMandSCR_RUN_CHECKSUMback to -1, their default.
Parameters to look at
| Parameter | What it is |
|---|---|
SCR_LD_CHECKSUM | Loaded script checksum |
SCR_RUN_CHECKSUM | Running script checksum |
SCR_DEBUG_OPTS | Scripting Debug Level |
Where to do it:Lua Applet CatalogParameter Compare & Migrate
The code that sends it
Scripting: loaded CRC incorrect want: 0x0x…
libraries/AP_Scripting/AP_Scripting.cpp AP_Scripting::arming_checks() · Open in ArduPilot Copter-4.7.1
Scripting: running CRC incorrect want: 0x0x…
libraries/AP_Scripting/AP_Scripting.cpp AP_Scripting::arming_checks() · Open in ArduPilot Copter-4.7.1