# Ota Firmware Update Eval

> Evaluates the energy efficiency and update latency of Over-The-Air (OTA) firmware update strategies on flash-based, batteryless IoT devices under simulated energy-harvesting conditions. Use when the user wants to benchmark on OTA Firmware Update Benchmarks, or asks about evaluating this task. Reports Total Update Energy Consumption.

- Skill: `qhjqhj00/ota-firmware-update-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/ota-firmware-update-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/ota-firmware-update-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/ota-firmware-update-eval

---


# ota-firmware-update-eval

> Energy-aware Incremental OTA Update for Flash-based Batteryless IoT Devices — Wei et al. (2024) (arXiv:2406.12189, 2024)

## What this evaluates

Evaluates the energy efficiency and update latency of Over-The-Air (OTA) firmware update strategies on flash-based, batteryless IoT devices under simulated energy-harvesting conditions.

## Datasets

- **OTA Firmware Update Benchmarks** — total ?; splits: test (5)

## Metrics

- `Total Update Energy Consumption` **(primary)** — range: other
  - Sum of transmission energy (packets × Eb), flash erase energy (erases × Ee), flash write energy (writes × Ew), and low-power mode energy (time × Pt). The packet header size is explicitly included in the transmission payload calculation.
- `Average Total Update Time` — range: other
  - Mean time to complete the OTA update across 1000 simulated energy-harvesting power traces, with the reinforcement phase explicitly excluded for the LW approach to ensure fair comparison.

## Input / output format

**Input**: Binary firmware update packets (payload + header) transmitted via Bluetooth LE 5.0 to an MSP430F5529 MCU with 8 KB SRAM and 128 KB NOR flash.

**Output**: Updated firmware image stored in flash memory, plus telemetry metrics: total update size (bytes), number of packets, number of flash writes, total energy consumption (μJ), and total update time (ms).

## Scoring recipe

```python
# Constants from Table II (μJ, μs, ms, μW)
Eb, Ee, Ew, Pt = 0.251, 137.2, 78.80, 89.00
Tb, Te, Tw = 9.361, 27.00, 16.00

# Inputs per benchmark
num_packets, num_erases, num_writes = get_counts(predictions)
transmission_time = num_packets * Tb
erase_time = num_erases * Te
write_time = num_writes * Tw
low_power_time = total_elapsed_time - (transmission_time + erase_time + write_time)

# Calculate metrics
energy = (num_packets * Eb) + (num_erases * Ee) + (num_writes * Ew) + (low_power_time * Pt)
time = transmission_time + erase_time + write_time + low_power_time
return energy, time
```

## Common pitfalls

- Failing to include the packet header size when calculating transmission energy, which underestimates communication costs.
- Comparing update times without excluding the 'reinforcement' phase for the LW approach, leading to unfair latency comparisons.
- Treating flash erase and write as a single operation, ignoring their distinct energy and time costs (137.2 μJ vs 78.80 μJ).

## Evidence (verbatim from paper)

> 2) Total Update Energy Consumption: To assess the energy efficiency of different OTA update approaches, we conducted measurements across our designed benchmarks.

## Citation

```bibtex
@misc{wei2024energyawareincremental,
  title={Energy-aware Incremental OTA Update for Flash-based Batteryless IoT Devices},
  author={Wei et al. (2024)},
  year={2024},
  note={arXiv:2406.12189}
}
```

- arXiv: 2406.12189

