# OTA Updates Error on ADAFRUIT FEATHER NRF52840 EXPRESS

**URL:** <https://discuss.blues.com/t/ota-updates-error-on-adafruit-feather-nrf52840-express/3138>\
**Category:** Notecarrier F\
**Created:** [June 30, 2025, 10:40pm UTC](https://discuss.blues.com/t/ota-updates-error-on-adafruit-feather-nrf52840-express/3138 "2025-06-30T22:40:26Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![taudylan](https://avatars.discourse-cdn.com/v4/letter/t/9dc877/32.png) [@taudylan](https://discuss.blues.com/u/taudylan)\
**Post date:** [June 30, 2025, 10:40pm UTC](https://discuss.blues.com/t/ota-updates-error-on-adafruit-feather-nrf52840-express/3138/1 "2025-06-30T22:40:26Z")

</div>

I purchased a [ADAFRUIT FEATHER NRF52840 EXPRESS](https://www.digikey.ca/en/products/detail/adafruit-industries-llc/4062/9843410) to work with my NoteCarrier F and Notecard Cellular. I am following the tutorial [here](https://github.com/blues/note-outboard-dfu/tree/main/nrf52840) on my Windows computer in Arduino to perfom OTA updates. After uploading the bootloader (UF2 Bootloader 0.7.0-15-g62b53ae-dirty shown in INFO\_UF2.TXT) running the arduino code and get the binpack file everything seems to function.

As soon as I go to upload the binpack file to notehub and update a device I get an error of cannot update host: unrecognized firmware type {odfu-fail}

 ![image](https://us1.discourse-cdn.com/flex020/uploads/blues/original/2X/6/6be10187d24b19f222c1515969671ca32c7e440e.png)

The microcontroller seems to lose its serial connection, and the red led blinks super quick until I hit the reset button on the microcontroller. I am following the tutoral to uplaod the fast blink sketch.

I am wondering if I can get some guidance in troubleshooting this. Where is this error coming from and what should I look into further?

Thanks

---

<div class="post-metadata">

**Author:** ![Youssif](https://avatars.discourse-cdn.com/v4/letter/y/c57346/32.png) [@Youssif](https://discuss.blues.com/u/Youssif)\
**Post date:** [July 1, 2025, 6:39am UTC](https://discuss.blues.com/t/ota-updates-error-on-adafruit-feather-nrf52840-express/3138/2 "2025-07-01T06:39:59Z")

</div>

Hey @taudylan, welcome to the Blues community!

I have an Adafruit Feather nRF52840 here as well, so I’ll try to reproduce this and get back to you shortly. In the meantime, can you please confirm that you’ve set the correct DFU type on your Notecard by sending the following request:

`{"req":"card.dfu","name":"nrf52"}`

This setting is persistent, so you can confirm it’s correctly applied by connecting directly to your Notecard and issuing:

`{"req":"card.dfu"}`

If the DFU type is correctly set and you’re still seeing the `{odfu-fail}` error, can you also confirm that the binpack file was created using the step outlined [here](https://github.com/blues/note-outboard-dfu/tree/main/nrf52840/blinky/arduino#creating-a-binpack-for-notecard-outboard-firmware-updates)?

```auto
notecard -output arduino-fast.binpack -binpack nrf52 fast.ino.zip

```

Once we have these points confirmed, I’ll have what I need to try reproducing this on my side.

Thanks  
Youssif

---

<div class="post-metadata">

**Author:** ![taudylan](https://avatars.discourse-cdn.com/v4/letter/t/9dc877/32.png) [@taudylan](https://discuss.blues.com/u/taudylan)\
**Post date:** [July 1, 2025, 3:43pm UTC](https://discuss.blues.com/t/ota-updates-error-on-adafruit-feather-nrf52840-express/3138/3 "2025-07-01T15:43:59Z")

</div>

Hi,

When running the request, I get:

```auto
> {"req":"card.dfu"}

```

```auto
{
 "mode": "aux",
 "name": "nrf52"
}

```

I am using the following as stated to create the binpack

```auto
notecard -output arduino-fast.binpack -binpack nrf52 fast.ino.zip

```

---

<div class="post-metadata">

**Author:** ![Youssif](https://avatars.discourse-cdn.com/v4/letter/y/c57346/32.png) [@Youssif](https://discuss.blues.com/u/Youssif)\
**Post date:** [July 1, 2025, 9:43pm UTC](https://discuss.blues.com/t/ota-updates-error-on-adafruit-feather-nrf52840-express/3138/4 "2025-07-01T21:43:04Z")

</div>

Hey @taudylan, thanks for providing these details. I’ve been able to reproduce the behaviour you’re seeing, and I can confirm that this is expected: we have officially removed support for Arduino-based nRF52 ODFU in the Notecard. The currently supported ODFU types are **STM32** , **ESP32** , and **MCUBoot** as can be seen from the links below:-

- [Notecard ODFU: Setting MCU type](https://dev.blues.io/notehub/host-firmware-updates/notecard-outboard-firmware-update/#notecard-to-host-mcu)
- [card.dfu Notecard API reference](https://dev.blues.io/api-reference/notecard-api/card-requests/latest/#card-dfu)

For context, Nordic has officially migrated to using Zephyr going forward (full statement available [here](https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/nrf-connect-sdk-and-nrf5-sdk-statement)), and because of this, we recommend using Zephyr on your Feather nRF52840 instead of Arduino. The good news is that ODFU is supported via MCUBoot on Zephyr, and we have an example detailing how to achieve this on the feather nRF52840 [here](https://github.com/blues/note-outboard-dfu/blob/main/nrf52840/blinky/ncs/README.md).

Below are a few additional reference links you may find useful:-

- [Zephyr Getting Started Guide](https://docs.zephyrproject.org/latest/develop/getting_started/index.html)
- [Zephyr: Flashing nRF52840 Express](https://docs.zephyrproject.org/latest/boards/adafruit/feather_nrf52840/doc/index.html#flashing)
- [Blues note-zephyr SDK](https://github.com/blues/note-zephyr)

We will update our documentation to remove the Arduino examples to avoid confusion going forward. In the meantime, please let us know if you need any assistance getting started with note-zephyr on your nRF52840. We’re happy to help with the transition if you decide to proceed with this approach.

Thanks  
Youssif

---

<div class="post-metadata">

**Author:** ![Colton\_b](https://avatars.discourse-cdn.com/v4/letter/c/7cd45c/32.png) [@Colton\_b](https://discuss.blues.com/u/Colton_b)\
**Post date:** [July 4, 2025, 1:26am UTC](https://discuss.blues.com/t/ota-updates-error-on-adafruit-feather-nrf52840-express/3138/5 "2025-07-04T01:26:28Z")

</div>

Hi Youssif,

I had a question about Zephyr and the flashing the nrf. I have been following the example you linked above. When I build the project there is no /build/zephyr/app\_update.bin

I cloned the repository, so slow and fast blink code should be correct

 ![image](https://us1.discourse-cdn.com/flex020/uploads/blues/original/2X/3/3cfc486177f148c153c4aba34bf1769c8fac4010.png)

---

<div class="post-metadata">

**Author:** ![Youssif](https://avatars.discourse-cdn.com/v4/letter/y/c57346/32.png) [@Youssif](https://discuss.blues.com/u/Youssif)\
**Post date:** [July 7, 2025, 10:27pm UTC](https://discuss.blues.com/t/ota-updates-error-on-adafruit-feather-nrf52840-express/3138/6 "2025-07-07T22:27:33Z")

</div>

Hi @Colton_b, welcome to the Blues community!

I believe this might happen if you are using pure Zephyr rather than the [NRF Connect SDK](https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-Desktop/) (NCS). The guide you are following assumes you are using NCS, which automatically signs your firmware and generates **app\_update.bin** as part of the normal west build flow when MCUboot is enabled.

If you are using pure Zephyr, the build system does not generate app\_update.bin automatically during `west build`. Instead, you have two options (this assumes that you followed the [Custom Signing Key Step](https://github.com/blues/note-outboard-dfu/tree/main/nrf52840/blinky/ncs#using-a-custom-signing-key)):

**Option 1** : Add the following to your prj.conf to enable automatic signing during build:

`CONFIG_MCUBOOT_SIGNATURE_KEY_FILE="child_image/priv.pem"`

**Option 2** : Use [west sign](https://docs.zephyrproject.org/latest/develop/west/sign.html) after building to generate a signed DFU image:

`west sign -t imgtool -- --key child_image/priv.pem`

This will produce a **zephyr.signed.bin** file inside build/zephyr, which is functionally equivalent to app\_update.bin for MCUboot DFU workflows. You can rename it to app\_update.bin if needed for consistency.

I haven’t personally tested either of these approaches on pure Zephyr with this exact workflow yet, but they should work as is. If you try either option and it doesn’t work, please let me know and share a few details about your setup so I can try and replicate here. Alternatively, using [NCS](https://docs.nordicsemi.com/bundle/ncs-2.0.0/page/nrf/gs_assistant.html) instead of pure Zephyr might be the safest bet, as it fully aligns with the guide.

Thanks  
Youssif
