PreArm: Internal errors (0x800) - watchdog_reset / reboot with Kakute F7 Mini, logging issue?

I am using ArduCopter on a Kakute F7 Mini since July 2019 (at that time AC 3.6.9 was current stable), meanwhile it was updated to 3.6.10 and 3.6.11. Flying without problems. Starting from 3.6.12 there was a seperate build especially for the “Mini” but I skipped 3.6.12 and updated to 4.0.0 (still on the build for Kakute F7 - non-Mini). I guess, the only difference is the default setting for the logging as the “Mini” has no microSD card slot. My setting so far was LOG_BACKEND_TYPE 0 (no logging).

Since I updated to AC 4.0.0, sporadically the flight controller reboots and after the reboot I see the message “PreArm: Internal errors (0x800)” and “watchdog_reset”. Furtunately, so far this was only before or after flights and not in-flight. I am aware that this would end with a crash when it happens inflight.

As I had to get through some flight tests today, I (thought I) disabled the watchdog with BRD_OPTIONS 0 - aware that this is a bad workaround. After the (successful) flight and disarming, again the FC rebooted and I saw the same message again.


So, although BRD_OPTIONS was set to 0, the watchdog still seemes to trigger a reboot.

By searching for the root cause, I played around with the logging setting. When setting the LOG_BACKEND_TYPE to 1 (file) it reports “Bad logging” as expected and the watchdog reboot also happened while the copter was armed and motors running (copter fixed on the ground) - causing them to stop .

After I learned, that there is a “block logging” option (LOG_BACKEND_TYPE 4) that should work also on Kakute F7 Mini (writing to integrated flash memory), I switched to this logging type. Until two more tests, the watchdog reboot was not yet seen but I am not yet confident that this will fix the watchdog issue.

Now the problem is, that even with block logging, I still get no logfiles. When I try to retrieve a log, mission planner only reports:

Getting list of log files...
Error:System.TimeoutException: Timeout on read - GetLogEntry
   at MissionPlanner.MAVLinkInterface.GetLogEntry(UInt16 startno, UInt16 endno)
   at MissionPlanner.MAVLinkInterface.GetLogList()
   at MissionPlanner.Log.LogDownloadMavLink.<LoadLogList>b__12_0()

The AC 4.0.0 release notes mention that there was also some kind of rework on the watchdog, so there must be something that triggers it newly on Kakute F7 and I would like to find it out…

I did not yet switch to the dedicated Kakute F7 Mini build as this would mean, I would have to redo configuration from scratch. But if you can give me good reasons why this makes sense (are there other differences than only the logging defaults?), I will go that way…

1 Like

Thanks for the report. I suspect that @tridge or @andyp1per will have better input than me on this issue but I wouldn’t expect that changing to the KakuteF7mini firmware would cause the autopilot to lose all of it’s configuration.

I’m not sure I follow, but the regular Kakute F7 configuration does not have support for dataflash logging because it has an sdcard - you need to use the kakute f7 mini build to get this (and will also need to upgrade the bootloader). The mini build is almost identical apart from the serial port numbering matches the kakut mini docs.

The logging issues should go away if you use the mini build, but there are still a couple outstanding which I have fixes for either in master or pending

Thanks, I will switch to the “Mini” build and report if I still see the watchdog.

Meanwhile I could manage to switch to the dedicated F7 Mini build.
(By the way: I could not use the “load custom firmware” option in MP 1.3.70, it reports “Unrecognized token at index1” when reading the HEX file. But Betaflight Configurator could do the job). I have done the whole configuration from scratch.

The good news is, that I get logs now! (hopefully the fragile parts of the block logging get fixed until 4.0.1).

The bad news are, that also with this build I had a watchdog reset / Internal errors (0x800). Furtunately again only during the time while the copter was disarmed - unfortunately there is no log from that moment.

Looking at the thread from @wicked1 where he reports problems with his Kakute F7 Mini build, I saw that he also had a reboot (in-flight!) but this was’nt picked up / focused furthermore in his thread.

So it looks like, I am not the only one having reboots with AC 4.0.0 on Kakute F7 Mini.

OK, we discussed this on the dev call and I will try and reproduce this myself. Hopefully I can find my KakuteF7 and then loading your parameters on my board and the same issue will happen…

Hi,
it has only happened once, and it was after I soldered a 240uf cap to the 3.3v regulator. SO, that could have very well been an issue related to that. I have had 20+ flights since then w/out any problems, so I’m not exactly sure what happened.

I took off, flew a few meters, only about a meter off the ground, and it fell, then my OSD went blank. I never lost video or anything else. Then the OSD came back w/ all the usual startup messages. I unplugged the battery. Looked over everything. Poked on the leads of the capacitor I had just installed. everything looked ok, so I flew again w/out any problems. Been fine since then.

I’d love to investigate this issue but I’ll need your full parameter set, and preferably an onboard log from after the watchdog happens. Can you send those?
Cheers, Tridge

Hi tridge, I hope you got my message?

yes, just saw it. The key thing is that you did have FrSky pass-thru telemetry enabled. So it is highly likely that you hit the bug that is fixed in the 4.0.1rc2 release of copter.

Ok, I will update to 4.0.1rc2 and have an eye on it…

1 Like

Hey I also have this problem like
(tony stark : I love you 3000)

Is it solve ?
Thank you :slightly_smiling_face: