# libOpenCM3

Configuration

  framework = `libopencm3`

The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various ARM Cortex-M0(+)/M3/M4 microcontrollers, including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx, 15xx, 17xx parts, Atmel SAM3, Energy Micro EFM32 and others.

For more detailed information please visit vendor site.

Contents

- Debugging

- Examples

- Platforms

- Boards

## Debugging

PIO Unified Debugger - “1-click” solution for debugging with a zero configuration.

- Tools & Debug Probes

  - On-Board Debug Tools

  - External Debug Tools

### Tools & Debug Probes

Supported debugging tools are listed in “Debug” column. For more detailed information, please scroll table by horizontal. You can switch between debugging Tools & Debug Probes using debug_tool option in “platformio.ini” (Project Configuration File).

Warning

You will need to install debug tool drivers depending on your system. Please click on compatible debug tool below for the further instructions.

#### On-Board Debug Tools

Boards listed below have on-board debug probe and ARE READY for debugging! You do not need to use/buy external debug probe.

Name | Platform | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
ST Nucleo F103RB | ST STM32 | STM32F103RBT6 | 72MHz | 128KB | 20KB
ST STM32F3DISCOVERY | ST STM32 | STM32F303VCT6 | 72MHz | 256KB | 48KB
ST STM32F4DISCOVERY | ST STM32 | STM32F407VGT6 | 168MHz | 1MB | 128KB
ST STM32LDISCOVERY | ST STM32 | STM32L152RBT6 | 32MHz | 128KB | 16KB
TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) | TI TIVA | LPLM4F120H5QR | 80MHz | 256KB | 32KB
TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) | TI TIVA | LPTM4C1230C3PM | 80MHz | 256KB | 32KB
TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) | TI TIVA | LPTM4C1294NCPDT | 120MHz | 1MB | 256KB

#### External Debug Tools

Boards listed below are compatible with PIO Unified Debugger but DEPEND ON external debug probe. They ARE NOT READY for debugging. Please click on board name for the further details.

Name | Platform | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
1Bitsy | ST STM32 | STM32F415RGT | 168MHz | 1MB | 128KB
BlackPill F103C8 | ST STM32 | STM32F103C8T6 | 72MHz | 64KB | 20KB
BlackPill F103C8 (128k) | ST STM32 | STM32F103C8T6 | 72MHz | 128KB | 20KB
BluePill F103C8 | ST STM32 | STM32F103C8T6 | 72MHz | 64KB | 20KB
BluePill F103C8 (128k) | ST STM32 | STM32F103C8T6 | 72MHz | 128KB | 20KB
Maple | ST STM32 | STM32F103RBT6 | 72MHz | 108KB | 17KB
Maple (RET6) | ST STM32 | STM32F103RET6 | 72MHz | 256KB | 48KB
Maple Mini Bootloader 2.0 | ST STM32 | STM32F103CBT6 | 72MHz | 120KB | 20KB
Maple Mini Original | ST STM32 | STM32F103CBT6 | 72MHz | 108KB | 17KB
OLIMEXINO-STM32 | ST STM32 | STM32F103RBT6 | 72MHz | 128KB | 20KB
STM32F103C8 (20k RAM. 64k Flash) | ST STM32 | STM32F103C8T6 | 72MHz | 64KB | 20KB
STM32F103CB (20k RAM. 128k Flash) | ST STM32 | STM32F103CBT6 | 72MHz | 128KB | 20KB
STM32F103R8 (20k RAM. 64 Flash) | ST STM32 | STM32F103R8T6 | 72MHz | 64KB | 20KB
STM32F103RB (20k RAM. 128k Flash) | ST STM32 | STM32F103RBT6 | 72MHz | 128KB | 20KB
STM32F103RC (48k RAM. 256k Flash) | ST STM32 | STM32F103RCT6 | 72MHz | 256KB | 48KB
STM32F103RE (64k RAM. 512k Flash) | ST STM32 | STM32F103RET6 | 72MHz | 512KB | 64KB
STM32F103T8 (20k RAM. 64k Flash) | ST STM32 | STM32F103T8T6 | 72MHz | 64KB | 20KB
STM32F103TB (20k RAM. 128k Flash) | ST STM32 | STM32F103TBT6 | 72MHz | 128KB | 20KB
STM32F103VB (20k RAM. 128k Flash) | ST STM32 | STM32F103VBT6 | 72MHz | 128KB | 20KB
STM32F103VC (48k RAM. 256k Flash) | ST STM32 | STM32F103VCT6 | 72MHz | 256KB | 48KB
STM32F103VD (64k RAM. 384k Flash) | ST STM32 | STM32F103VDT6 | 72MHz | 384KB | 64KB
STM32F103VE (64k RAM. 512k Flash) | ST STM32 | STM32F103VET6 | 72MHz | 512KB | 64KB
STM32F103ZC (48k RAM. 256k Flash) | ST STM32 | STM32F103ZCT6 | 72MHz | 256KB | 48KB
STM32F103ZD (64k RAM. 384k Flash) | ST STM32 | STM32F103ZDT6 | 72MHz | 384KB | 64KB
STM32F103ZE (64k RAM. 512k Flash) | ST STM32 | STM32F103ZET6 | 72MHz | 512KB | 64KB

## Examples

- libOpenCM3 for ST STM32

- libOpenCM3 for TI TIVA

## Platforms

Name | Description
--- | ---
ST STM32 | The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
TI TIVA | Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with scalable memory and package options, unparalleled connectivity peripherals, advanced application functions, industry-leading analog integration, and extensive software solutions.

## Boards

Note

- You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer

- For more detailed `board` information please scroll the tables below by horizontally.

### 1BitSquared

Name | Platform | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | --- | ---
1Bitsy | ST STM32 | External | STM32F415RGT | 168MHz | 1MB | 128KB

### Generic

Name | Platform | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | --- | ---
BlackPill F103C8 | ST STM32 | External | STM32F103C8T6 | 72MHz | 64KB | 20KB
BlackPill F103C8 (128k) | ST STM32 | External | STM32F103C8T6 | 72MHz | 128KB | 20KB
BluePill F103C8 | ST STM32 | External | STM32F103C8T6 | 72MHz | 64KB | 20KB
BluePill F103C8 (128k) | ST STM32 | External | STM32F103C8T6 | 72MHz | 128KB | 20KB
STM32F103C8 (20k RAM. 64k Flash) | ST STM32 | External | STM32F103C8T6 | 72MHz | 64KB | 20KB
STM32F103CB (20k RAM. 128k Flash) | ST STM32 | External | STM32F103CBT6 | 72MHz | 128KB | 20KB
STM32F103R8 (20k RAM. 64 Flash) | ST STM32 | External | STM32F103R8T6 | 72MHz | 64KB | 20KB
STM32F103RB (20k RAM. 128k Flash) | ST STM32 | External | STM32F103RBT6 | 72MHz | 128KB | 20KB
STM32F103RC (48k RAM. 256k Flash) | ST STM32 | External | STM32F103RCT6 | 72MHz | 256KB | 48KB
STM32F103RE (64k RAM. 512k Flash) | ST STM32 | External | STM32F103RET6 | 72MHz | 512KB | 64KB
STM32F103T8 (20k RAM. 64k Flash) | ST STM32 | External | STM32F103T8T6 | 72MHz | 64KB | 20KB
STM32F103TB (20k RAM. 128k Flash) | ST STM32 | External | STM32F103TBT6 | 72MHz | 128KB | 20KB
STM32F103VB (20k RAM. 128k Flash) | ST STM32 | External | STM32F103VBT6 | 72MHz | 128KB | 20KB
STM32F103VC (48k RAM. 256k Flash) | ST STM32 | External | STM32F103VCT6 | 72MHz | 256KB | 48KB
STM32F103VD (64k RAM. 384k Flash) | ST STM32 | External | STM32F103VDT6 | 72MHz | 384KB | 64KB
STM32F103VE (64k RAM. 512k Flash) | ST STM32 | External | STM32F103VET6 | 72MHz | 512KB | 64KB
STM32F103ZC (48k RAM. 256k Flash) | ST STM32 | External | STM32F103ZCT6 | 72MHz | 256KB | 48KB
STM32F103ZD (64k RAM. 384k Flash) | ST STM32 | External | STM32F103ZDT6 | 72MHz | 384KB | 64KB
STM32F103ZE (64k RAM. 512k Flash) | ST STM32 | External | STM32F103ZET6 | 72MHz | 512KB | 64KB

### LeafLabs

Name | Platform | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | --- | ---
Maple | ST STM32 | External | STM32F103RBT6 | 72MHz | 108KB | 17KB
Maple (RET6) | ST STM32 | External | STM32F103RET6 | 72MHz | 256KB | 48KB
Maple Mini Bootloader 2.0 | ST STM32 | External | STM32F103CBT6 | 72MHz | 120KB | 20KB
Maple Mini Original | ST STM32 | External | STM32F103CBT6 | 72MHz | 108KB | 17KB

### Olimex

Name | Platform | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | --- | ---
OLIMEXINO-STM32 | ST STM32 | External | STM32F103RBT6 | 72MHz | 128KB | 20KB

### ST

Name | Platform | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | --- | ---
ST Nucleo F103RB | ST STM32 | On-board | STM32F103RBT6 | 72MHz | 128KB | 20KB
ST STM32F3DISCOVERY | ST STM32 | On-board | STM32F303VCT6 | 72MHz | 256KB | 48KB
ST STM32F4DISCOVERY | ST STM32 | On-board | STM32F407VGT6 | 168MHz | 1MB | 128KB
ST STM32LDISCOVERY | ST STM32 | On-board | STM32L152RBT6 | 32MHz | 128KB | 16KB

### TI

Name | Platform | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | --- | ---
TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) | TI TIVA | On-board | LPLM4F120H5QR | 80MHz | 256KB | 32KB
TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) | TI TIVA | On-board | LPTM4C1230C3PM | 80MHz | 256KB | 32KB
TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) | TI TIVA | On-board | LPTM4C1294NCPDT | 120MHz | 1MB | 256KB