Private STM32 package workbench

STM32 DfuSe File Inspector & Extractor

Open an ST DfuSe .dfu package without uploading or flashing it. Validate the container and whole-file CRC, review targets and absolute-addressed elements, inspect USB metadata, preview bytes, and extract one reviewed element at a time.

Local input

Choose an STM32 DfuSe file

No local file selected.

Input is limited to 32 MiB. A supported file begins with DfuSe, contains complete target and element records, and ends with the 16-byte UFD suffix. A raw binary or generic USB DFU payload is not silently guessed.

Choose a file or paste DfuSe hex to begin.

Files, pasted bytes, checksums, previews, reports, and extracted elements stay in this browser. Nothing is uploaded or saved, and no USB device is accessed.

What is inside an ST DfuSe file?

The ST extension wraps one or more firmware targets in a little-endian container. Its 11-byte prefix declares the format version, byte size before the suffix, and target count. Each target has an alternate setting, an optional 255-byte name, a target-size boundary, and a count of elements. Every element carries a 32-bit destination address, byte length, and exact stored data.

How the DfuSe CRC is checked

The 16-byte suffix contains device, product, vendor, and DFU-version fields, the UFD signature, suffix length, and a 32-bit checksum. DfuSe stores the running reflected CRC state—the one's complement of conventional CRC-32/ISO-HDLC—calculated through the suffix-length byte. ToolQuill reports both stored and calculated values and disables extraction after any CRC or structural error.

DfuSe is not every kind of .dfu file

USB DFU describes a transfer protocol, while DfuSe is ST's extension with absolute memory addresses and this particular multi-target file layout. A file with only a standard DFU suffix, a raw binary renamed to .dfu, or a vendor-specific alternative does not become DfuSe. The inspector requires the documented DfuSe prefix instead of guessing.

Firmware and flash-safety boundary

A structurally valid file and matching CRC are not proof of authenticity or compatibility. CRC32 detects accidental changes but is not a signature. VID, PID, alternate setting, target name, and addresses are untrusted file metadata. This page does not identify an MCU, know its flash geometry or protected regions, verify executable code or signatures, connect to USB, erase memory, flash firmware, or establish bootability or safety. Preserve the original and follow the board vendor's verified recovery procedure.

Frequently asked questions

Why can two targets use the same address?

Different DfuSe alternate settings can represent different memories or interfaces, so address overlap is checked within each target rather than across unrelated targets. The actual device descriptor must be reviewed before programming.

What do VID and PID values of 0xFFFF mean?

The DFU suffix can use wildcard identifiers. Even a specific VID:PID is only metadata supplied by the file and is not sufficient evidence that the package belongs on a connected device.

Can the extracted files be flashed directly?

The download contains one element's exact bytes without its destination address or surrounding target metadata. Whether those bytes are meaningful or safe outside the original package depends on the target's documented workflow.

Does the inspector merge sparse elements?

No. Filling gaps can manufacture very large or misleading binaries and can hide the difference between absent and erased memory. Each valid element is extracted separately.

Format references: ST UM0391 DfuSe File Format Specification and dfu-util DfuSe documentation.

Compare firmware memory maps · Inspect UF2 firmware · Inspect an MCUboot image