# libopencm3/libopencm3

Open source ARM Cortex-M microcontroller library

Repository: https://github.com/libopencm3/libopencm3
Canonical: https://ross.abutalabs.com/products/libopencm3
Homepage: http://libopencm3.org/
Language: C
License: GPL-3.0
License Family: copyleft
Topics: libopencm3, cortex-m, stm32, efm32, atmel-sam, gd32, msp432, microchip-sam, microcontrollers
Last push: 2026-07-20T10:23:03+00:00

## Health v2 (maintenance only)
Score: 74/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 93, release rhythm 35, longevity 100
- inputs: {"age_days": 5250, "days_push": 44, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3639, forks 1130 (observed 2026-08-28T04:08:12.797645+00:00)

## What it is
An open-source firmware library written in C for ARM Cortex-M microcontrollers, supporting families like ST STM32, Atmel SAM, NXP LPC, TI Tiva, Nordic nRF, and EFM32. It provides low-level peripheral drivers built from vendor datasheets and is used with an arm-none-eabi GCC toolchain and OpenOCD for flashing.

## Use cases
- write bare-metal firmware for STM32 without vendor HAL
- blink an LED on a Cortex-M microcontroller
- drive UART, SPI, I2C, and GPIO peripherals on ARM Cortex-M chips
- build open-source firmware for Nordic nRF52 or Atmel SAM boards
- replace proprietary vendor libraries with a free LGPL alternative
- flash and debug Cortex-M code with OpenOCD

## When to choose
- you want a fully open-source, vendor-independent firmware library for Cortex-M
- you need fine-grained low-level register access rather than a heavy HAL
- you target STM32, SAM, LPC, Tiva, or nRF families with a GCC toolchain

## When to avoid
- you want vendor-supported HALs with official certification and support
- you need complete peripheral coverage for every supported chip, as support is uneven
- you prefer an RTOS or higher-level framework like Zephyr or mbed

## Facets
- artifact type: library
- maturity: active
- function: embedded, sdk, developer-tools
- domain: embedded-systems, hardware, cross-platform
- platform: embedded, c, windows
- tags: arm-cortex-m, firmware, microcontrollers, stm32, bare-metal, openocd, linux, macos

## Member repositories
- libopencm3/libopencm3 (main) score 74

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:12.797645+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-29T18:31:49.080553+00:00, confidence not recorded.
  - readme: https://github.com/libopencm3/libopencm3 (fetched 2026-08-28T04:08:12.797645+00:00, sha 6cd833112d89)
  - homepage: http://libopencm3.org/ (fetched 2026-08-29T09:26:13.017412+00:00, sha 7757437bccc6)
  - site_page: http://libopencm3.org/docs/latest/html/index.html (fetched 2026-08-29T09:26:13.026394+00:00, sha 515463b12443)
- Data as of 2026-08-30T08:39:29.467469+00:00.
