# What happens if I have a fleet \`\_fw\` environment variable and then later add an identical device \`\_fw\` variable?

**URL:** <https://discuss.blues.com/t/what-happens-if-i-have-a-fleet-fw-environment-variable-and-then-later-add-an-identical-device-fw-variable/3650>\
**Category:** Uncategorized\
**Created:** [September 29, 2026, 7:03pm UTC](https://discuss.blues.com/t/what-happens-if-i-have-a-fleet-fw-environment-variable-and-then-later-add-an-identical-device-fw-variable/3650 "2026-09-29T19:03:13Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![daterdots](https://avatars.discourse-cdn.com/v4/letter/d/48db29/32.png) [@daterdots](https://discuss.blues.com/u/daterdots)\
**Post date:** [September 29, 2026, 7:03pm UTC](https://discuss.blues.com/t/what-happens-if-i-have-a-fleet-fw-environment-variable-and-then-later-add-an-identical-device-fw-variable/3650/1 "2026-09-29T19:03:13Z")

</div>

For weird reasons, I have a bunch of devices in a fleet that have the following `fleet` env vars:

```auto
_fw = V1_3_3$20260923000412.binpack
_fw_retry = 1790660860

```

I was updating host firmware using the fleet env var, but I ran into a problem: some small number of devices in the fleet already had a `device` env var for `_fw` that preempted my `fleet` env var.

The easiest way for me to resolve this problem is to just set the `_fw` device-level env vars for all the devices in the fleet. I would do this using the Notehub UI – I would request a host ODFU for every device in the fleet (using the **Select All** and then **Update** buttons).

My question is: if a device is already running `_fw = V1_3_3$20260923000412.binpack` because it took it from the `fleet` environment variables, when the `device` level `_fw` is set _to the same firmware version_ will the Notecard ODFU the host _again_, or is the Notecard smart enough to know that the host is already running the requested host firmware version?

Why this matters: our device is extremely energy constrained. ODFU is really expensive for us energy-wise, so I want to make sure I don’t spend that energy on a redundant host ODFU.

---

<div class="post-metadata">

**Author:** ![RobLauer](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.blues.com/roblauer/32/1567_2.png) [@RobLauer](https://discuss.blues.com/u/RobLauer)\
**Post date:** [September 29, 2026, 8:46pm UTC](https://discuss.blues.com/t/what-happens-if-i-have-a-fleet-fw-environment-variable-and-then-later-add-an-identical-device-fw-variable/3650/2 "2026-09-29T20:46:50Z")

</div>

Hi @daterdots,

There is some nuance here to understand:

1. If the `_fw` AND `_fw_retry` are the same, (or `_fwc`/`_fwc_retry`), no one will even notice that there was a difference, regardless of whether it came from device or fleet.
2. For **Notecard** firmware, if the `_fw` is the same but `_fw_retry` is different, the Notecard will check the MD5 of what it’s already running, and it will be optimized out. No impact.
3. For **Host** firmware, if the `_fw` is the same but `_fw_retry` is different, in no case will it be re-downloaded, but it will change from “completed” back to “ready” state, which means that…

…for Inboard (IAP) DFU, the host will see that it has become ‘ready’ again and it is responsible for checking MD5 to see if it needs to ‘pull’ it from the Notecard again. If it’s the same it is up to the host to just set it back to ‘completed’.

…for Outboard DFU, the Notecard re-burns the firmware onto the host mcu and restarts it, and marks it ‘completed’.

Thanks,  
Rob
