Zephyr RTOS

Configuration:

framework = zephyr

The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with safety and security in mind

For more detailed information please visit vendor site.

Tutorials

Configuration

Project Structure

Warning

Zephyr framework currently requires Python 3.4 or later.

Zephyr framework requires an unusual project structure because most of the framework configuration is performed by the native for Zephyr build system called CMake.

Note

Since PlatformIO is able to generate CMake-based projects for certain IDEs, Zephyr-related files are moved to a separate folder in order to avoid conflicts between project files. That requires users to specify relative paths to source files in CMakeLists.txt.

A typical PlatformIO project for Zephyr framework must have the following structure:

project_dir
├── include
├── src
│    └── main.c
├── zephyr
│    ├── prj.conf
│    └── CMakeLists.txt
└── platformio.ini

Besides files related to PlatformIO project, there is an additional folder zephyr that contains Zephyr-specific files CMakeLists.txt and prj.conf:

CMakeLists.txt file enables features supported by Zephyr’s build system, e.g. board-specific kernel configuration files. A typical CMakeLists.txt file has the following content:

# Boilerplate code, which pulls in the Zephyr build system.
cmake_minimum_required(VERSION 3.13.1)
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(my_zephyr_app)

# Add your source file to the "app" target. This must come after the boilerplate
# code, which defines the target. Note relative path to source file
target_sources(app PRIVATE ../src/main.c)

The files specified in target_sources are used ONLY for generating build configurations, but it’s highly recommended to specify all application source files in order to keep the project compatible with the usual Zephyr workflow.

Due to the current limitations of CMake file-based API, there is no way to generate build configuration for source files written in various programming languages if they are not specified in target_sources command. If your project contains libraries written in languages that differ from the language used for the main application you need to create an empty file with desired extension (e.g. *.cpp for C++) in order to force CMake generate build configuration for this language.

Note

Build configuration generated for source files specified in target_sources is also used as the base build environment for project sources (including libraries).

prj.conf file sets application-specific values for one or more kernel configuration options. These application settings are merged with board-specific settings to produce a kernel configuration.

Devicetree overlays

Zephyr applications can use overlay files to enable a peripheral that is disabled by default, select a sensor on the board for an application specific purpose, etc. This makes it possible to reconfigure the kernel and device drivers without modifying source code. There are several ways to set .overlay files:

  • Using DTC_OVERLAY_FILE variable in the CMakeLists.txt file, before including Zephyr’s boilerplate.cmake file. (Recommended)

  • Using a boards/<BOARD>.overlay file in the zephyr folder, for the current board

  • Using a <BOARD>.overlay file in the zephyr folder.

Warning

PlatformIO board names may differ from Zephyr targets, which means that to help the build system automatically pick up .overlay file, the <BOARD> name in <BOARD>.overlay file must have the same name as specified in the official Zephyr board list.

Embedding files at compile time

In case your CMakeLists.txt relies on using generate_inc_* functions that are used for generating and compressing individual files (for example certificates for secure connections) you need to configure your PlatformIO project accordingly using the following structure:

[env:myenv]
platform = ...
board = ...
framework = zephyr
board_build.embed_files =
    # files to be embedded
    src/apps-cert.der
    src/apps-key.der

Where apps-cert.der and apps-key.der are the files you want to embed to your project at the compile time.

Zephyr modules

Note

PlatformIO automatically installs several default modules used with Zephyr framework including modules that implement silicon vendor Hardware Abstraction Layers (HALs).

Zephyr modules are externally maintained packages that allow using well-established and mature code created by third party developers.

These modules contain either a single module.yml file or CMakeLists.txt and Kconfig files that describe how to build and configure them. You can specify paths to additional directories with source code, Kconfig, etc. using ZEPHYR_EXTRA_MODULES at the top of your project’s CMakeLists.txt file, for example:

# Additional modules
set(ZEPHYR_EXTRA_MODULES "path/to-zephyr-custom-module"  [...])

# Boilerplate code, which pulls in the Zephyr build system.
cmake_minimum_required(VERSION 3.13.1)
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(my_zephyr_app)

# Add your source file to the "app" target. This must come after
# the boilerplate code, which defines the target.
target_sources(app PRIVATE ../src/main.c)

Since the build may not work correctly if the full path to sources is greater than 250 characters (see CMAKE_OBJECT_PATH_MAX) it might be a good idea to keep modules close to the project configuration files (e.g. in zephyr folder) in form of a git submodule.

Warning

Make sure the ZEPHYR_EXTRA_MODULES variable is set before including the boilerplate file, as shown above.

Limitations

At the moment several limitations are present:

  • The minimum supported version of Python is 3.4

  • No whitespace characters allowed in project paths.

  • The Trusted Firmware M module is not supported

Debugging

Debugging - “1-click” solution for debugging with a zero configuration.

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

32F412GDISCOVERY

ST STM32

STM32F412ZGT6

100MHz

1MB

256KB

32F723EDISCOVERY

ST STM32

STM32F723IEK6

216MHz

512KB

192KB

96Boards B96B-F446VE

ST STM32

STM32F446VET6

168MHz

512KB

128KB

Arduino Zero (Programming/Debug Port)

Atmel SAM

SAMD21G18A

48MHz

256KB

32KB

Atmel ATSAMR21-XPRO

Atmel SAM

SAMR21G18A

48MHz

256KB

32KB

Atmel SAMD21-XPRO

Atmel SAM

SAMD21J18A

48MHz

256KB

32KB

BBC micro:bit

Nordic nRF51

NRF51822

16MHz

256KB

16KB

BBC micro:bit V2

Nordic nRF52

NRF52833

64MHz

512KB

128KB

BL652 Development Kit

Nordic nRF52

NRF52832

64MHz

512KB

64KB

BL653 Development Kit

Nordic nRF52

NRF52833

64MHz

512KB

128KB

BL654 Development Kit

Nordic nRF52

NRF52840

64MHz

1MB

256KB

EFM32WG-STK3800 Wonder Gecko

Silicon Labs EFM32

EFM32WG990F256

48MHz

256KB

32KB

ElectronutLabs Blip

Nordic nRF52

NRF52840

64MHz

1MB

256KB

ElectronutLabs Papyr

Nordic nRF52

NRF52840

64MHz

1MB

256KB

Freescale Kinetis FRDM-K22F

Freescale Kinetis

MK22FN512VLH12

120MHz

512KB

128KB

Freescale Kinetis FRDM-K64F

Freescale Kinetis

MK64FN1M0VLL12

120MHz

1MB

256KB

Freescale Kinetis FRDM-K82F

Freescale Kinetis

MK82FN256VLL15

150MHz

256KB

256KB

Freescale Kinetis FRDM-KL25Z

Freescale Kinetis

MKL25Z128VLK4

48MHz

128KB

16KB

Freescale Kinetis FRDM-KW41Z

Freescale Kinetis

MKW41Z512VHT4

48MHz

512KB

128KB

HiFive1

SiFive

FE310

320MHz

16MB

16KB

HiFive1 Rev B

SiFive

FE310

320MHz

16MB

16KB

LPCXpresso11U68

NXP LPC

LPC11U68

50MHz

256KB

36KB

Makerdiary nRF52832-MDK

Nordic nRF52

NRF52832

64MHz

512KB

64KB

Makerdiary nRF52840-MDK

Nordic nRF52

NRF52840

64MHz

1MB

256KB

NXP LPCXpresso54114

NXP LPC

LPC54114J256BD64

100MHz

256KB

192KB

NXP LPCXpresso55S16

NXP LPC

LPC55S16

150MHz

256KB

96KB

NXP i.MX RT1010 Evaluation Kit

NXP i.MX RT

MIMXRT1011DAE5A

500MHz

64KB

128KB

NXP i.MX RT1015 Evaluation Kit

NXP i.MX RT

MIMXRT1015DAF5A

500MHz

96KB

128KB

NXP i.MX RT1020 Evaluation Kit

NXP i.MX RT

MIMXRT1021DAG5A

500MHz

8MB

32MB

NXP i.MX RT1050 Evaluation Kit

NXP i.MX RT

MIMXRT1052DVL6B

600MHz

8MB

32MB

NXP i.MX RT1060 Evaluation Kit

NXP i.MX RT

MIMXRT1062DVL6A

600MHz

8MB

32MB

NXP i.MX RT1064 Evaluation Kit

NXP i.MX RT

MIMXRT1064DVL6A

600MHz

8MB

32MB

Nordic nRF51 Dongle (PCA10031)

Nordic nRF51

NRF51822

32MHz

256KB

32KB

Nordic nRF51X22 Development Kit(PCA1000X)

Nordic nRF51

NRF51822

32MHz

256KB

32KB

Nordic nRF52-DK

Nordic nRF52

NRF52832

64MHz

512KB

64KB

Nordic nRF52833-DK

Nordic nRF52

NRF52833

64MHz

512KB

128KB

Nordic nRF52840-DK

Nordic nRF52

NRF52840

64MHz

1MB

256KB

Nucleo G071RB

ST STM32

STM32G071RBT6

64MHz

128KB

36KB

Nucleo G431RB

ST STM32

STM32G431RBT6

170MHz

128KB

32KB

Nucleo G474RE

ST STM32

STM32G474RET6

170MHz

512KB

128KB

PHYTEC reel board

Nordic nRF52

NRF52840

64MHz

1MB

256KB

PHYTEC reel board v2

Nordic nRF52

NRF52840

64MHz

1MB

256KB

RedBearLab BLE Nano 1.5

Nordic nRF51

NRF51822

16MHz

256KB

32KB

RedBearLab BLE Nano 2

Nordic nRF52

NRF52832

64MHz

512KB

64KB

SLSTK3400A USB-enabled Happy Gecko

Silicon Labs EFM32

EFM32HG322F64

25MHz

64KB

8KB

ST 32F411EDISCOVERY

ST STM32

STM32F411VET6

100MHz

512KB

128KB

ST 32F429IDISCOVERY

ST STM32

STM32F429ZIT6

180MHz

2MB

256KB

ST 32F469IDISCOVERY

ST STM32

STM32F469NIH6

180MHz

1MB

384KB

ST 32F746GDISCOVERY

ST STM32

STM32F746NGH6

216MHz

1MB

320KB

ST 32F769IDISCOVERY

ST STM32

STM32F769NIH6

216MHz

1MB

512KB

ST 32L476GDISCOVERY

ST STM32

STM32L476VGT6

80MHz

1MB

128KB

ST 32L496GDISCOVERY

ST STM32

STM32L496AGI6

80MHz

1MB

320KB

ST B-L475E-IOT01A Discovery kit

ST STM32

STM32L475VGT6

80MHz

1MB

96KB

ST DISCO-L072CZ-LRWAN1

ST STM32

STM32L072CZ

32MHz

192KB

20KB

ST Discovery F072RB

ST STM32

STM32F072RBT6

48MHz

128KB

16KB

ST Nucleo F030R8

ST STM32

STM32F030R8T6

48MHz

64KB

8KB

ST Nucleo F031K6

ST STM32

STM32F031K6T6

48MHz

32KB

4KB

ST Nucleo F070RB

ST STM32

STM32F070RBT6

48MHz

128KB

16KB

ST Nucleo F091RC

ST STM32

STM32F091RCT6

48MHz

256KB

32KB

ST Nucleo F103RB

ST STM32

STM32F103RBT6

72MHz

128KB

20KB

ST Nucleo F207ZG

ST STM32

STM32F207ZGT6

120MHz

1MB

128KB

ST Nucleo F302R8

ST STM32

STM32F302R8T6

72MHz

64KB

16KB

ST Nucleo F303K8

ST STM32

STM32F303K8T6

72MHz

64KB

12KB

ST Nucleo F303RE

ST STM32

STM32F303RET6

72MHz

512KB

64KB

ST Nucleo F334R8

ST STM32

STM32F334R8T6

72MHz

64KB

16KB

ST Nucleo F401RE

ST STM32

STM32F401RET6

84MHz

512KB

96KB

ST Nucleo F410RB

ST STM32

STM32F410RBT6

100MHz

128KB

32KB

ST Nucleo F411RE

ST STM32

STM32F411RET6

100MHz

512KB

128KB

ST Nucleo F412ZG

ST STM32

STM32F412ZGT6

100MHz

1MB

256KB

ST Nucleo F413ZH

ST STM32

STM32F413ZHT6

100MHz

512KB

128KB

ST Nucleo F429ZI

ST STM32

STM32F429ZIT6

180MHz

2MB

192KB

ST Nucleo F446RE

ST STM32

STM32F446RET6

180MHz

512KB

128KB

ST Nucleo F446ZE

ST STM32

STM32F446ZET6

180MHz

512KB

128KB

ST Nucleo F746ZG

ST STM32

STM32F746ZGT6

216MHz

1MB

320KB

ST Nucleo F756ZG

ST STM32

STM32F756ZG

216MHz

1MB

320KB

ST Nucleo F767ZI

ST STM32

STM32F767ZIT6

216MHz

2MB

512KB

ST Nucleo H723ZG

ST STM32

STM32H723ZGT6

550MHz

1MB

432KB

ST Nucleo H743ZI

ST STM32

STM32H743ZIT6

400MHz

2MB

512KB

ST Nucleo H745ZI-Q

ST STM32

STM32H745ZIT6

480MHz

1MB

512KB

ST Nucleo H753ZI

ST STM32

STM32H753ZIT6

400MHz

2MB

864KB

ST Nucleo L011K4

ST STM32

STM32L011K4T6

32MHz

16KB

2KB

ST Nucleo L031K6

ST STM32

STM32L031K6T6

32MHz

32KB

8KB

ST Nucleo L053R8

ST STM32

STM32L053R8T6

32MHz

64KB

8KB

ST Nucleo L073RZ

ST STM32

STM32L073RZ

32MHz

192KB

20KB

ST Nucleo L412RB-P

ST STM32

STM32L412RBT6P

80MHz

128KB

40KB

ST Nucleo L432KC

ST STM32

STM32L432KCU6

80MHz

256KB

64KB

ST Nucleo L433RC-P

ST STM32

STM32L433RC

80MHz

256KB

64KB

ST Nucleo L476RG

ST STM32

STM32L476RGT6

80MHz

1MB

96KB

ST Nucleo L496ZG

ST STM32

STM32L496ZGT6

80MHz

1MB

320KB

ST Nucleo L4R5ZI

ST STM32

STM32L4R5ZIT6

120MHz

2MB

640KB

ST Nucleo WL55JC

ST STM32

STM32WL55JC

48MHz

256KB

64KB

ST STM32F0DISCOVERY

ST STM32

STM32F051R8T6

48MHz

64KB

8KB

ST STM32F3DISCOVERY

ST STM32

STM32F303VCT6

72MHz

256KB

40KB

ST STM32F4DISCOVERY

ST STM32

STM32F407VGT6

168MHz

1MB

128KB

ST STM32G071B Discovery

ST STM32

STM32G071RBT6

64MHz

128KB

36KB

STM32H735G-DK Discovery kit

ST STM32

STM32H735IGK6

550MHz

1MB

432KB

STM32H747I-DISCO

ST STM32

STM32H747XIH6

400MHz

2MB

512KB

SparkFun RED-V RedBoard

SiFive

FE310

320MHz

16MB

16KB

SparkFun RED-V Thing Plus

SiFive

FE310

320MHz

16MB

16KB

Thunderboard Sense 2 Sensor-to-Cloud Advanced IoT

Silicon Labs EFM32

EFR32MG12P432F1024

40MHz

1MB

256KB

VNG VBLUNO51

Nordic nRF51

NRF51822

16MHz

128KB

32KB

VNG VBLUno52

Nordic nRF52

NRF52832

64MHz

512KB

64KB

u-blox BMD-345-EVAL

Nordic nRF52

NRF52840

64MHz

1MB

256KB

External Debug Tools

Boards listed below are compatible with Debugging 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

96Boards Argonkey (STEVAL-MKI187V1)

ST STM32

STM32F412CG

100MHz

1MB

256KB

96Boards Neonkey

ST STM32

STM32F427VIT6

168MHz

1.99MB

256KB

96Boards Neonkey

ST STM32

STM32F411CE

100MHz

512KB

128KB

96Boards Nitrogen

Nordic nRF52

NRF52832

64MHz

512KB

64KB

Adafruit Bluefruit nRF52832 Feather

Nordic nRF52

NRF52832

64MHz

512KB

64KB

Adafruit Feather M0

Atmel SAM

SAMD21G18A

48MHz

256KB

32KB

Adafruit Feather STM32F405

ST STM32

STM32F405RGT6

168MHz

1MB

128KB

Adafruit Feather nRF52840 Express

Nordic nRF52

NRF52840

64MHz

796KB

243KB

Adafruit ItsyBitsy M4

Atmel SAM

SAMD51G19A

120MHz

512KB

192KB

Adafruit LED Glasses Driver nRF52840

Nordic nRF52

NRF52840

64MHz

796KB

232KB

Adafruit Trinket M0

Atmel SAM

SAMD21E18A

48MHz

256KB

32KB

Arduino Due (Programming Port)

Atmel SAM

AT91SAM3X8E

84MHz

512KB

96KB

Black STM32F407VE

ST STM32

STM32F407VET6

168MHz

512KB

128KB

Black STM32F407ZG

ST STM32

STM32F407ZGT6

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

Freescale Kinetis FRDM-KW24D512

Freescale Kinetis

MKW24D512

50MHz

512KB

64KB

Hexiwear

Freescale Kinetis

MK64FN1M0VDC12

120MHz

1MB

256KB

Holyiot YJ-16019

Nordic nRF52

NRF52832

64MHz

512KB

64KB

Laird Connectivity Pinnacle 100 DVK

Nordic nRF52

NRF52840

64MHz

1MB

256KB

NANO 33 IoT

Atmel SAM

SAMD21G18A

48MHz

256KB

32KB

Nordic Thingy:52 (nRF52-PCA20020)

Nordic nRF52

NRF52832

64MHz

512KB

64KB

OLIMEXINO-STM32

ST STM32

STM32F103RBT6

72MHz

128KB

20KB

Olimex STM32-P405

ST STM32

STM32F405RGT6

168MHz

1MB

128KB

Particle Argon

Nordic nRF52

NRF52840

64MHz

796KB

243KB

Particle Boron

Nordic nRF52

NRF52840

64MHz

796KB

243KB

Particle Xenon

Nordic nRF52

NRF52840

64MHz

796KB

243KB

Ruuvi Tag

Nordic nRF52

NRF52832

64MHz

512KB

64KB

SEGGER IP Switch Board

Freescale Kinetis

MK66FN2M0VMD18

180MHz

2MB

256KB

STEVAL-FCU001V1 Flight controller unit evaluation board

ST STM32

STM32F401CCU6

84MHz

256KB

64KB

STM32-E407

ST STM32

STM32F407ZGT6

168MHz

1MB

128KB

STM32-H407

ST STM32

STM32F407ZGT6

168MHz

1MB

128KB

STM3210C-EVAL

ST STM32

STM32F107VCT6

72MHz

256KB

64KB

STM32373C-EVAL

ST STM32

STM32F373VCT6

72MHz

256KB

32KB

STM32F072-EVAL

ST STM32

STM32F072VBT6

48MHz

128KB

16KB

Seeeduino XIAO

Atmel SAM

SAMD21G18A

48MHz

256KB

32KB

Waveshare BLE400

Nordic nRF51

NRF51822

32MHz

256KB

32KB

WeAct Studio BlackPill V2.0 (STM32F411CE)

ST STM32

STM32F411CEU6

100MHz

512KB

128KB

WeAct Studio BlackPill V3.0 (STM32F401CE)

ST STM32

STM32F401CEU6

84MHz

512KB

96KB

Examples

Platforms

Name

Description

Atmel SAM

Atmel | SMART offers Flash- based ARM products based on the ARM Cortex-M0+, Cortex-M3 and Cortex-M4 architectures, ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.

Freescale Kinetis

Freescale Kinetis Microcontrollers is family of multiple hardware- and software-compatible ARM Cortex-M0+, Cortex-M4 and Cortex-M7-based MCU series. Kinetis MCUs offer exceptional low-power performance, scalability and feature integration.

Nordic nRF51

The Nordic nRF51 Series is a family of highly flexible, multi-protocol, system-on-chip (SoC) devices for ultra-low power wireless applications. nRF51 Series devices support a range of protocol stacks including Bluetooth Smart (previously called Bluetooth low energy), ANT and proprietary 2.4GHz protocols such as Gazell.

Nordic nRF52

The nRF52 Series are built for speed to carry out increasingly complex tasks in the shortest possible time and return to sleep, conserving precious battery power. They have a Cortex-M4F processor and are the most capable Bluetooth Smart SoCs on the market.

NXP i.MX RT

The i.MX RT series of crossover processors features the Arm Cortex-M core, real-time functionality and MCU usability at a cost-effective price.

NXP LPC

The NXP LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors. The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M4F, Cortex-M3, Cortex-M0+, or Cortex-M0. Internally, each microcontroller consists of the processor core, static RAM memory, flash memory, debugging interface, and various peripherals.

SiFive

SiFive brings the power of open source and software automation to the semiconductor industry, making it possible to develop new hardware faster and more affordably than ever before.

Silicon Labs EFM32

Silicon Labs EFM32 Gecko 32-bit microcontroller (MCU) family includes devices that offer flash memory configurations up to 256 kB, 32 kB of RAM and CPU speeds up to 48 MHz. Based on the powerful ARM Cortex-M core, the Gecko family features innovative low energy techniques, short wake-up time from energy saving modes and a wide selection of peripherals, making it ideal for battery operated applications and other systems requiring high performance and low-energy consumption.

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.

Boards

Note

96Boards

Name

Platform

Debug

MCU

Frequency

Flash

RAM

96Boards Argonkey (STEVAL-MKI187V1)

ST STM32

External

STM32F412CG

100MHz

1MB

256KB

96Boards B96B-F446VE

ST STM32

On-board

STM32F446VET6

168MHz

512KB

128KB

96Boards Neonkey

ST STM32

External

STM32F427VIT6

168MHz

1.99MB

256KB

96Boards Neonkey

ST STM32

External

STM32F411CE

100MHz

512KB

128KB

96Boards Nitrogen

Nordic nRF52

External

NRF52832

64MHz

512KB

64KB

Adafruit

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Adafruit Bluefruit nRF52832 Feather

Nordic nRF52

External

NRF52832

64MHz

512KB

64KB

Adafruit Feather M0

Atmel SAM

External

SAMD21G18A

48MHz

256KB

32KB

Adafruit Feather STM32F405

ST STM32

External

STM32F405RGT6

168MHz

1MB

128KB

Adafruit Feather nRF52840 Express

Nordic nRF52

External

NRF52840

64MHz

796KB

243KB

Adafruit ItsyBitsy M4

Atmel SAM

External

SAMD51G19A

120MHz

512KB

192KB

Adafruit LED Glasses Driver nRF52840

Nordic nRF52

External

NRF52840

64MHz

796KB

232KB

Adafruit Trinket M0

Atmel SAM

External

SAMD21E18A

48MHz

256KB

32KB

Arduino

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Arduino Due (Programming Port)

Atmel SAM

External

AT91SAM3X8E

84MHz

512KB

96KB

Arduino Zero (Programming/Debug Port)

Atmel SAM

On-board

SAMD21G18A

48MHz

256KB

32KB

NANO 33 IoT

Atmel SAM

External

SAMD21G18A

48MHz

256KB

32KB

Atmel

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Atmel ATSAMR21-XPRO

Atmel SAM

On-board

SAMR21G18A

48MHz

256KB

32KB

Atmel SAMD21-XPRO

Atmel SAM

On-board

SAMD21J18A

48MHz

256KB

32KB

BBC

Name

Platform

Debug

MCU

Frequency

Flash

RAM

BBC micro:bit

Nordic nRF51

On-board

NRF51822

16MHz

256KB

16KB

BBC micro:bit V2

Nordic nRF52

On-board

NRF52833

64MHz

512KB

128KB

ElectronutLabs

Name

Platform

Debug

MCU

Frequency

Flash

RAM

ElectronutLabs Blip

Nordic nRF52

On-board

NRF52840

64MHz

1MB

256KB

ElectronutLabs Papyr

Nordic nRF52

On-board

NRF52840

64MHz

1MB

256KB

Freescale

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Freescale Kinetis FRDM-K22F

Freescale Kinetis

On-board

MK22FN512VLH12

120MHz

512KB

128KB

Freescale Kinetis FRDM-K64F

Freescale Kinetis

On-board

MK64FN1M0VLL12

120MHz

1MB

256KB

Freescale Kinetis FRDM-K82F

Freescale Kinetis

On-board

MK82FN256VLL15

150MHz

256KB

256KB

Freescale Kinetis FRDM-KL25Z

Freescale Kinetis

On-board

MKL25Z128VLK4

48MHz

128KB

16KB

Freescale Kinetis FRDM-KW24D512

Freescale Kinetis

External

MKW24D512

50MHz

512KB

64KB

Freescale Kinetis FRDM-KW41Z

Freescale Kinetis

On-board

MKW41Z512VHT4

48MHz

512KB

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

Holyiot

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Holyiot YJ-16019

Nordic nRF52

External

NRF52832

64MHz

512KB

64KB

Laird Connectivity

Name

Platform

Debug

MCU

Frequency

Flash

RAM

BL652 Development Kit

Nordic nRF52

On-board

NRF52832

64MHz

512KB

64KB

BL653 Development Kit

Nordic nRF52

On-board

NRF52833

64MHz

512KB

128KB

BL654 Development Kit

Nordic nRF52

On-board

NRF52840

64MHz

1MB

256KB

Laird Connectivity Pinnacle 100 DVK

Nordic nRF52

External

NRF52840

64MHz

1MB

256KB

Makerdiary

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Makerdiary nRF52832-MDK

Nordic nRF52

On-board

NRF52832

64MHz

512KB

64KB

Makerdiary nRF52840-MDK

Nordic nRF52

On-board

NRF52840

64MHz

1MB

256KB

MikroElektronika

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Hexiwear

Freescale Kinetis

External

MK64FN1M0VDC12

120MHz

1MB

256KB

NXP

Name

Platform

Debug

MCU

Frequency

Flash

RAM

LPCXpresso11U68

NXP LPC

On-board

LPC11U68

50MHz

256KB

36KB

NXP LPCXpresso54114

NXP LPC

On-board

LPC54114J256BD64

100MHz

256KB

192KB

NXP LPCXpresso55S16

NXP LPC

On-board

LPC55S16

150MHz

256KB

96KB

NXP i.MX RT1010 Evaluation Kit

NXP i.MX RT

On-board

MIMXRT1011DAE5A

500MHz

64KB

128KB

NXP i.MX RT1015 Evaluation Kit

NXP i.MX RT

On-board

MIMXRT1015DAF5A

500MHz

96KB

128KB

NXP i.MX RT1020 Evaluation Kit

NXP i.MX RT

On-board

MIMXRT1021DAG5A

500MHz

8MB

32MB

NXP i.MX RT1050 Evaluation Kit

NXP i.MX RT

On-board

MIMXRT1052DVL6B

600MHz

8MB

32MB

NXP i.MX RT1060 Evaluation Kit

NXP i.MX RT

On-board

MIMXRT1062DVL6A

600MHz

8MB

32MB

NXP i.MX RT1064 Evaluation Kit

NXP i.MX RT

On-board

MIMXRT1064DVL6A

600MHz

8MB

32MB

Nordic

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Nordic Thingy:52 (nRF52-PCA20020)

Nordic nRF52

External

NRF52832

64MHz

512KB

64KB

Nordic nRF51 Dongle (PCA10031)

Nordic nRF51

On-board

NRF51822

32MHz

256KB

32KB

Nordic nRF51X22 Development Kit(PCA1000X)

Nordic nRF51

On-board

NRF51822

32MHz

256KB

32KB

Nordic nRF52-DK

Nordic nRF52

On-board

NRF52832

64MHz

512KB

64KB

Nordic nRF52833-DK

Nordic nRF52

On-board

NRF52833

64MHz

512KB

128KB

Nordic nRF52840-DK

Nordic nRF52

On-board

NRF52840

64MHz

1MB

256KB

Olimex

Name

Platform

Debug

MCU

Frequency

Flash

RAM

OLIMEXINO-STM32

ST STM32

External

STM32F103RBT6

72MHz

128KB

20KB

Olimex STM32-P405

ST STM32

External

STM32F405RGT6

168MHz

1MB

128KB

STM32-E407

ST STM32

External

STM32F407ZGT6

168MHz

1MB

128KB

STM32-H407

ST STM32

External

STM32F407ZGT6

168MHz

1MB

128KB

PHYTEC

Name

Platform

Debug

MCU

Frequency

Flash

RAM

PHYTEC reel board

Nordic nRF52

On-board

NRF52840

64MHz

1MB

256KB

PHYTEC reel board v2

Nordic nRF52

On-board

NRF52840

64MHz

1MB

256KB

Particle

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Particle Argon

Nordic nRF52

External

NRF52840

64MHz

796KB

243KB

Particle Boron

Nordic nRF52

External

NRF52840

64MHz

796KB

243KB

Particle Xenon

Nordic nRF52

External

NRF52840

64MHz

796KB

243KB

RedBearLab

Name

Platform

Debug

MCU

Frequency

Flash

RAM

RedBearLab BLE Nano 1.5

Nordic nRF51

On-board

NRF51822

16MHz

256KB

32KB

RedBearLab BLE Nano 2

Nordic nRF52

On-board

NRF52832

64MHz

512KB

64KB

Ruuvi

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Ruuvi Tag

Nordic nRF52

External

NRF52832

64MHz

512KB

64KB

SEGGER

Name

Platform

Debug

MCU

Frequency

Flash

RAM

SEGGER IP Switch Board

Freescale Kinetis

External

MK66FN2M0VMD18

180MHz

2MB

256KB

ST

Name

Platform

Debug

MCU

Frequency

Flash

RAM

32F412GDISCOVERY

ST STM32

On-board

STM32F412ZGT6

100MHz

1MB

256KB

32F723EDISCOVERY

ST STM32

On-board

STM32F723IEK6

216MHz

512KB

192KB

Black STM32F407VE

ST STM32

External

STM32F407VET6

168MHz

512KB

128KB

Black STM32F407ZG

ST STM32

External

STM32F407ZGT6

168MHz

1MB

128KB

Nucleo G071RB

ST STM32

On-board

STM32G071RBT6

64MHz

128KB

36KB

Nucleo G431RB

ST STM32

On-board

STM32G431RBT6

170MHz

128KB

32KB

Nucleo G474RE

ST STM32

On-board

STM32G474RET6

170MHz

512KB

128KB

ST 32F411EDISCOVERY

ST STM32

On-board

STM32F411VET6

100MHz

512KB

128KB

ST 32F429IDISCOVERY

ST STM32

On-board

STM32F429ZIT6

180MHz

2MB

256KB

ST 32F469IDISCOVERY

ST STM32

On-board

STM32F469NIH6

180MHz

1MB

384KB

ST 32F746GDISCOVERY

ST STM32

On-board

STM32F746NGH6

216MHz

1MB

320KB

ST 32F769IDISCOVERY

ST STM32

On-board

STM32F769NIH6

216MHz

1MB

512KB

ST 32L476GDISCOVERY

ST STM32

On-board

STM32L476VGT6

80MHz

1MB

128KB

ST 32L496GDISCOVERY

ST STM32

On-board

STM32L496AGI6

80MHz

1MB

320KB

ST B-L475E-IOT01A Discovery kit

ST STM32

On-board

STM32L475VGT6

80MHz

1MB

96KB

ST DISCO-L072CZ-LRWAN1

ST STM32

On-board

STM32L072CZ

32MHz

192KB

20KB

ST Discovery F072RB

ST STM32

On-board

STM32F072RBT6

48MHz

128KB

16KB

ST Nucleo F030R8

ST STM32

On-board

STM32F030R8T6

48MHz

64KB

8KB

ST Nucleo F031K6

ST STM32

On-board

STM32F031K6T6

48MHz

32KB

4KB

ST Nucleo F070RB

ST STM32

On-board

STM32F070RBT6

48MHz

128KB

16KB

ST Nucleo F091RC

ST STM32

On-board

STM32F091RCT6

48MHz

256KB

32KB

ST Nucleo F103RB

ST STM32

On-board

STM32F103RBT6

72MHz

128KB

20KB

ST Nucleo F207ZG

ST STM32

On-board

STM32F207ZGT6

120MHz

1MB

128KB

ST Nucleo F302R8

ST STM32

On-board

STM32F302R8T6

72MHz

64KB

16KB

ST Nucleo F303K8

ST STM32

On-board

STM32F303K8T6

72MHz

64KB

12KB

ST Nucleo F303RE

ST STM32

On-board

STM32F303RET6

72MHz

512KB

64KB

ST Nucleo F334R8

ST STM32

On-board

STM32F334R8T6

72MHz

64KB

16KB

ST Nucleo F401RE

ST STM32

On-board

STM32F401RET6

84MHz

512KB

96KB

ST Nucleo F410RB

ST STM32

On-board

STM32F410RBT6

100MHz

128KB

32KB

ST Nucleo F411RE

ST STM32

On-board

STM32F411RET6

100MHz

512KB

128KB

ST Nucleo F412ZG

ST STM32

On-board

STM32F412ZGT6

100MHz

1MB

256KB

ST Nucleo F413ZH

ST STM32

On-board

STM32F413ZHT6

100MHz

512KB

128KB

ST Nucleo F429ZI

ST STM32

On-board

STM32F429ZIT6

180MHz

2MB

192KB

ST Nucleo F446RE

ST STM32

On-board

STM32F446RET6

180MHz

512KB

128KB

ST Nucleo F446ZE

ST STM32

On-board

STM32F446ZET6

180MHz

512KB

128KB

ST Nucleo F746ZG

ST STM32

On-board

STM32F746ZGT6

216MHz

1MB

320KB

ST Nucleo F756ZG

ST STM32

On-board

STM32F756ZG

216MHz

1MB

320KB

ST Nucleo F767ZI

ST STM32

On-board

STM32F767ZIT6

216MHz

2MB

512KB

ST Nucleo H723ZG

ST STM32

On-board

STM32H723ZGT6

550MHz

1MB

432KB

ST Nucleo H743ZI

ST STM32

On-board

STM32H743ZIT6

400MHz

2MB

512KB

ST Nucleo H745ZI-Q

ST STM32

On-board

STM32H745ZIT6

480MHz

1MB

512KB

ST Nucleo H753ZI

ST STM32

On-board

STM32H753ZIT6

400MHz

2MB

864KB

ST Nucleo L011K4

ST STM32

On-board

STM32L011K4T6

32MHz

16KB

2KB

ST Nucleo L031K6

ST STM32

On-board

STM32L031K6T6

32MHz

32KB

8KB

ST Nucleo L053R8

ST STM32

On-board

STM32L053R8T6

32MHz

64KB

8KB

ST Nucleo L073RZ

ST STM32

On-board

STM32L073RZ

32MHz

192KB

20KB

ST Nucleo L412RB-P

ST STM32

On-board

STM32L412RBT6P

80MHz

128KB

40KB

ST Nucleo L432KC

ST STM32

On-board

STM32L432KCU6

80MHz

256KB

64KB

ST Nucleo L433RC-P

ST STM32

On-board

STM32L433RC

80MHz

256KB

64KB

ST Nucleo L476RG

ST STM32

On-board

STM32L476RGT6

80MHz

1MB

96KB

ST Nucleo L496ZG

ST STM32

On-board

STM32L496ZGT6

80MHz

1MB

320KB

ST Nucleo L4R5ZI

ST STM32

On-board

STM32L4R5ZIT6

120MHz

2MB

640KB

ST Nucleo WL55JC

ST STM32

On-board

STM32WL55JC

48MHz

256KB

64KB

ST STM32F0DISCOVERY

ST STM32

On-board

STM32F051R8T6

48MHz

64KB

8KB

ST STM32F3DISCOVERY

ST STM32

On-board

STM32F303VCT6

72MHz

256KB

40KB

ST STM32F4DISCOVERY

ST STM32

On-board

STM32F407VGT6

168MHz

1MB

128KB

ST STM32G071B Discovery

ST STM32

On-board

STM32G071RBT6

64MHz

128KB

36KB

STEVAL-FCU001V1 Flight controller unit evaluation board

ST STM32

External

STM32F401CCU6

84MHz

256KB

64KB

STM3210C-EVAL

ST STM32

External

STM32F107VCT6

72MHz

256KB

64KB

STM32373C-EVAL

ST STM32

External

STM32F373VCT6

72MHz

256KB

32KB

STM32F072-EVAL

ST STM32

External

STM32F072VBT6

48MHz

128KB

16KB

STM32H735G-DK Discovery kit

ST STM32

On-board

STM32H735IGK6

550MHz

1MB

432KB

STM32H747I-DISCO

ST STM32

On-board

STM32H747XIH6

400MHz

2MB

512KB

Seeed

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Seeeduino XIAO

Atmel SAM

External

SAMD21G18A

48MHz

256KB

32KB

SiFive

Name

Platform

Debug

MCU

Frequency

Flash

RAM

HiFive1

SiFive

On-board

FE310

320MHz

16MB

16KB

HiFive1 Rev B

SiFive

On-board

FE310

320MHz

16MB

16KB

Silicon Labs

Name

Platform

Debug

MCU

Frequency

Flash

RAM

EFM32WG-STK3800 Wonder Gecko

Silicon Labs EFM32

On-board

EFM32WG990F256

48MHz

256KB

32KB

SLSTK3400A USB-enabled Happy Gecko

Silicon Labs EFM32

On-board

EFM32HG322F64

25MHz

64KB

8KB

Thunderboard Sense 2 Sensor-to-Cloud Advanced IoT

Silicon Labs EFM32

On-board

EFR32MG12P432F1024

40MHz

1MB

256KB

SparkFun

Name

Platform

Debug

MCU

Frequency

Flash

RAM

SparkFun RED-V RedBoard

SiFive

On-board

FE310

320MHz

16MB

16KB

SparkFun RED-V Thing Plus

SiFive

On-board

FE310

320MHz

16MB

16KB

VNG

Name

Platform

Debug

MCU

Frequency

Flash

RAM

VNG VBLUNO51

Nordic nRF51

On-board

NRF51822

16MHz

128KB

32KB

VNG VBLUno52

Nordic nRF52

On-board

NRF52832

64MHz

512KB

64KB

Waveshare

Name

Platform

Debug

MCU

Frequency

Flash

RAM

Waveshare BLE400

Nordic nRF51

External

NRF51822

32MHz

256KB

32KB

WeAct Studio

Name

Platform

Debug

MCU

Frequency

Flash

RAM

WeAct Studio BlackPill V2.0 (STM32F411CE)

ST STM32

External

STM32F411CEU6

100MHz

512KB

128KB

WeAct Studio BlackPill V3.0 (STM32F401CE)

ST STM32

External

STM32F401CEU6

84MHz

512KB

96KB

u-blox

Name

Platform

Debug

MCU

Frequency

Flash

RAM

u-blox BMD-345-EVAL

Nordic nRF52

On-board

NRF52840

64MHz

1MB

256KB