One log has filled the whole on-board flash chip
What ArduPilot says:
- Chip full, logging stopped
This board logs to a flash chip used as a ring: at the end it continues from the start, erasing the oldest logs as it goes. It stops only when the log being written has itself grown as large as the chip and would erase its own beginning. Logging then stops, the message repeats about once a minute, and the pre-arm checks say “Logging failed” until the logs are erased or the board is rebooted.
What to do, most likely first
LOG_DISARMEDis on and the board stayed powered for a long time: one endless log.Check
LOG_DISARMEDis 1 or 3, and the board sat on the bench or on USB for a long while.FixDownload what you need and erase the logs. Set
LOG_DISARMEDback to 0 unless you are chasing a start-up problem, or setLOG_FILE_DSRMROTto 1 so that every disarm closes the log and the next one starts fresh.The flight is longer than the chip holds at this logging rate.
CheckThe message appears in flight, after about the same time each flight. Many boards have only 16 MB of log flash.
FixLog less:
LOG_BLK_RATEMAXlimits how many times a second each streamed message is written to the chip, andLOG_BITMASKwithout the fast attitude and raw IMU bits makes a much smaller log.The board also has a card slot, and the flash chip was chosen by a copied parameter file.
FixSet
LOG_BACKEND_TYPEto 1 (File), fit a card and reboot: a card holds hours of logs.
Parameters to look at
| Parameter | What it is |
|---|---|
LOG_DISARMED | Enable logging while disarmed |
LOG_FILE_DSRMROT | Stop logging to current file on disarm |
LOG_BLK_RATEMAX | Maximum logging rate for block backend |
LOG_BITMASK | Log bitmask |
LOG_BACKEND_TYPE | AP_Logger Backend Storage type |
Where to do it:Setup & Tuning Guide
The code that sends it
Chip full, logging stopped
libraries/AP_Logger/AP_Logger_Block.cpp AP_Logger_Block::periodic_1Hz() · Open in ArduPilot Copter-4.7.1