What this UF2 inspector validates
UF2 stores firmware in self-contained 512-byte blocks. Each block has three magic values, flags, a target address, payload length, sequence number, declared total, and an optional family ID or file size. This tool checks those fields, 32-bit bounds, block-number coverage, payload and address alignment, repeated addresses, unknown flags, extension-tag boundaries, and file-container bounds before mapping main-flash bytes.
Why physical order and block number are separate
UF2 was designed for mass-storage writes that may arrive out of order or more than once. The block number is therefore displayed separately from the block's physical position in the file. Repeated block numbers and repeated identical bytes are reported for review; conflicting bytes at the same target address are errors. Missing declared block numbers are errors because the image may be incomplete.
Binary extraction is deliberately strict
A flat binary cannot preserve UF2 family filtering, block metadata, sparse-address intent, auxiliary content, or container filenames. ToolQuill extracts only one valid main-flash map with at most one family ID. It fills address gaps with the byte you select and reports the base address; that base address must be configured separately in any downstream programmer.
Firmware safety boundary
This is a container inspection report, not a flashing recommendation. A structurally valid UF2 file may still target the wrong board, contain unsafe or malicious code, omit security metadata, or require a vendor-specific process. The tool does not authenticate publishers, verify secure boot or every optional MD5/SHA payload, disassemble code, identify a board from the family number, or prove that extracted data is bootable. Preserve the original and follow the board manufacturer's recovery instructions.
Frequently asked questions
Does a family ID identify my exact board?
No. It usually identifies an MCU family, not necessarily a specific board or product. This inspector shows the exact numeric value without guessing a board. Compare it with the current official UF2 family registry and your board documentation.
Why can a UF2 file contain duplicate blocks?
The format anticipates repeated mass-storage writes, and files for different family IDs may be concatenated. Duplicates are therefore findings rather than automatic corruption, but conflicting bytes at the same target address are errors.
What is a “not main flash” block?
It can carry comments, embedded source, or other auxiliary data. This tool lists it but excludes it from the main-flash memory map and flat binary.
Are MD5 and extension tags decoded?
Their metadata is surfaced where present, and extension-tag framing is checked. Cryptographic contents are not treated as an authenticity verdict and MD5 regions are not recomputed.
Format reference: Microsoft UF2 specification.
Compare decoded firmware maps · Inspect Motorola S-record firmware · Browse electronics tools