lib_dfu: Device firmware upgrade over a serial interface

FAVOURITE VERSION RELEASED COMMENTS DOCUMENTATION SOFTWARE
2.1.0 2026-05-01 v2.1.0 now fully supports both USB and I2C DFU devices, and improves Flash erase handling VIEW HTML VIEW PDF ZIP
View older versions
2.0.0 2026-03-27 v2 adds I2C DFU device and host for XCORE with an host app for Raspberry Pi, along with adding XCommon-CMake build system support and some changes in Flash access ZIP ZIP

Summary

The Device Firmware Upgrade (DFU) library provides functionality to facilitate firmware updates over almost any transport physical layer. It includes support for handling DFU packets, managing firmware images, and ensuring the integrity of the update process.

Features

  • One upgrade slot

  • Support USB DFU spec v1.1

  • Support for custom transport layers

Known issues

  • USB example reports several warnings such as “port “XS1_PORT_1F” on tile[0] is not connected to any pins in this package.”, this is normal on small packages that do not have all the pins bonded out.

  • The lib_device_control client handling currently consumes an additional thread as it is not distributable.

  • For DFU over I2C the bus speed of up to 100kbps is supported. This is also supported with no clock stretching for all commands except upload.

  • DFU_ABORT request is supported in upload but not in download.

Development repo

Required tools

  • XMOS XTC Tools: 15.3.1 or later

Required libraries (dependencies)

Support

This package is supported by XMOS Ltd. Issues can be raised against the software at www.xmos.com/support or using GitHub issues.

Scroll to Top