Dfu.status: firmware update superceded

We’re currently using in-application DFU to perform firmware updates until the hardware is ready for Notecard Outboard Firmware Updates.

This has been successfully working a handful of times. But when we tried on a different device, we go this error:

[INFO] {"req":"dfu.status","crc":"0005:AF188B2B"}
[INFO] {"status":"firmware update superceded","mode":"error","on":true}

What does this error mean? It doesn’t appear to resolve itself. Should it be resolved in firmware (such as by deleting the DFU image) or in Notehub by cancelling the firmware update for that device?

To avoid any conflicts with card.dfu, outboard DFU is deactivated using

[INFO] {"req":"card.dfu","name":"-","off":true,"crc":"0004:DFFBEA8F"}
[INFO] {"mode":"off","off":true}

It would be helpful to have a list of DFU error codes, and possible remedies for each, if such a document exists.

Thanks!

Hey @devElert,

Sorry you ran into problems here. We could definitely use better documentation on DFU error codes and possible remedies. We don’t have that document today, but it’s on our list of things to write up in the near future.

The specific error you hit happens when the Notecard can’t do a host firmware update because either: a DFU is currently in progress, or because the Notecard storage is currently in use for something else.

To help us debug this can you share any _env.dbs events that list a _state_vars_dfu environment variable? You should be able to find them by doing the search shown below in your project’s events view. (Feel free to DM me if you have sensitive values in there you don’t want to share in a public forum.)

+ @hroche in case you want to provide more context here.

Thanks,
TJ

We’re also curious what the Host Firmware UI in Notehub looks like for the device in question. Does the DFU still show as in progress, or did it fail and do you have a retry button available?

TJ

I’m afraid I don’t have the logs, but I will capture them if the problem resurfaces. (The oldest _env.dbs event available is too recent.)

TL;DR: This next issue looks like it’s caused by outdated Notecard firmware. Keeping the post in case it helps someone facing the same issue.

After a successful IAP update, the firmware DFU environment variables aren’t cleared in Notehub. From time to time, the Notecard downloads the same firmware from Notehub and reapplies it.

Notecard is reporting a successful firmware update.

[INFO] {"req":"dfu.status","crc":"0017:AF188B2B"}
[INFO] {"status":"successful firmware update","mode":"completed","on":true}

Notecard continues reporting this until it is power-cycled. Then it reports

[INFO] {"req":"dfu.status","vvalue":"usb:1;high:1;normal:1;low:0;dead:0","crc":"0003:F25D708F"}
[INFO] {"mode":"idle","on":true}

And a few seconds later

[INFO] {"req":"dfu.status","version":"{\"org\":\"\",\"product\":\"***\",\"description\":\"\",\"firmware\":\"***\",\"version\":\"0.4.0\",\"built\":\"Sep 25 2024 10:44:00\",\"ver_major\":0,\"ver_minor\":4,\"ver_patch\":0,\"ver_build\":0,\"builder\":\"\"}","crc":"0005:6867C6C4"}
[INFO] {"status":"downloading","mode":"downloading","on":true}

This is running Notecard firmware 5.3.1.16292. Uff, I thought I had updated to a more recent version. Running version 7.4.2.16888 seems to fix the problem.

2 Likes