# microsoft/uf2

UF2 file format specification

Repository: https://github.com/microsoft/uf2
Canonical: https://ross.abutalabs.com/products/uf2
Language: JavaScript
License: NOASSERTION
License Family: other
Topics: uf2, makecode, bootloader
Last push: 2026-02-08T19:01:18+00:00

## Health v2 (maintenance only)
Score: 62/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 66, release rhythm 35, longevity 100
- inputs: {"age_days": 3561, "days_push": 206, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1030, forks 194 (observed 2026-08-28T04:03:17.776612+00:00)

## What it is
The official specification and reference for UF2 (USB Flashing Format), a 512-byte-block file format developed by Microsoft for flashing microcontroller firmware over USB Mass Storage Class. The repository documents the block layout, magic numbers, flags, and family IDs, and links to implementations such as bootloaders and conversion tools.

## Use cases
- flash firmware to a microcontroller by copying a file to a USB drive
- implement a bootloader that recognizes UF2 blocks over MSC
- convert a .bin or .hex firmware image to UF2 format
- understand the UF2 block layout and magic numbers before writing a parser
- add UF2 drag-and-drop flashing support to a dev board
- embed board family IDs so one bootloader handles multiple chip families

## When to choose
- you are building or porting a bootloader that accepts firmware via a USB mass-storage drive
- you need the authoritative block format, flags, and family ID definitions to write or validate UF2 files
- you want drag-and-drop firmware updates on embedded hardware without installing drivers
- you are integrating with Microsoft MakeCode or PXT tooling that emits UF2 files

## When to avoid
- you need a ready-made flashing application or GUI rather than a format specification
- your target device flashes over serial, SWD, or DFU rather than USB mass storage
- you expect runnable production code - the repo is primarily a spec with sample utilities, not a maintained library
- you need OTA or network firmware updates, which UF2 does not address

## Facets
- artifact type: learning-resource
- maturity: stable
- function: developer-tools, embedded, file-system, documentation
- domain: embedded-systems, hardware, developer-tools, files
- platform: embedded, cross-platform
- tags: uf2, bootloader, firmware-flashing, mass-storage-class, microcontroller, makecode, file-format-specification

## Member repositories
- microsoft/uf2 (main) score 62

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:17.776612+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:07:34.733035+00:00, confidence not recorded.
  - readme: https://github.com/microsoft/uf2 (fetched 2026-08-28T04:03:17.776612+00:00, sha 236ceac29ea3)
- Data as of 2026-08-30T08:39:29.467469+00:00.
