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.
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 theCMakeLists.txt
file, before including Zephyr’sboilerplate.cmake
file. (Recommended) - Using a
boards/<BOARD>.overlay
file in thezephyr
folder, for the current board - Using a
<BOARD>.overlay
file in thezephyr
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.
- OpenThread 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 |
BL652 Development Kit | Nordic nRF52 | NRF52832 | 64MHz | 512KB | 64KB |
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 | 64MB | 256MB |
NXP i.MX RT1050 Evaluation Kit | NXP i.MX RT | MIMXRT1052DVL6B | 600MHz | 64MB | 512KB |
NXP i.MX RT1060 Evaluation Kit | NXP i.MX RT | MIMXRT1062DVL6A | 600MHz | 64MB | 1MB |
NXP i.MX RT1064 Evaluation Kit | NXP i.MX RT | MIMXRT1064DVL6A | 600MHz | 4MB | 1MB |
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 nRF52840-DK | Nordic nRF52 | NRF52840 | 64MHz | 1MB | 256KB |
RVfpga: Digilent Nexys A7 | CHIPS Alliance | 320MHz | 16MB | 1.16MB | |
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 | 128KB |
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 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 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 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 | 256KB |
ST Nucleo F446RE | ST STM32 | STM32F446RET6 | 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 H743ZI | ST STM32 | STM32H743ZIT6 | 400MHz | 2MB | 512KB |
ST Nucleo H745ZI-Q | ST STM32 | STM32H745ZIT6 | 480MHz | 1MB | 512KB |
ST Nucleo L053R8 | ST STM32 | STM32L053R8T6 | 32MHz | 64KB | 8KB |
ST Nucleo L073RZ | ST STM32 | STM32L073RZ | 32MHz | 192KB | 20KB |
ST Nucleo L432KC | ST STM32 | STM32L432KCU6 | 80MHz | 256KB | 64KB |
ST Nucleo L476RG | ST STM32 | STM32L476RGT6 | 80MHz | 1MB | 128KB |
ST Nucleo L496ZG | ST STM32 | STM32L496ZGT6 | 80MHz | 1MB | 128KB |
ST Nucleo L4R5ZI | ST STM32 | STM32L4R5ZIT6 | 120MHz | 2MB | 640KB |
ST STM32F0DISCOVERY | ST STM32 | STM32F051R8T6 | 48MHz | 64KB | 8KB |
ST STM32F3DISCOVERY | ST STM32 | STM32F303VCT6 | 72MHz | 256KB | 48KB |
ST STM32F4DISCOVERY | ST STM32 | STM32F407VGT6 | 168MHz | 1MB | 128KB |
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 |
VNG VBLUNO51 | Nordic nRF51 | NRF51822 | 16MHz | 128KB | 32KB |
VNG VBLUno52 | Nordic nRF52 | NRF52832 | 64MHz | 512KB | 64KB |
reel_board | Nordic nRF52 | NRF52840 | 64MHz | 1MB | 256KB |
reel_board_v2 | 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 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 |
Nucleo G071RB | ST STM32 | STM32G071RBT6 | 64MHz | 128KB | 36KB |
Nucleo G431RB | ST STM32 | STM32G431RBT6 | 170MHz | 128KB | 32KB |
Nucleo G474RE | ST STM32 | STM32G474RET6 | 170MHz | 512KB | 128KB |
OLIMEXINO-STM32 | ST STM32 | STM32F103RBT6 | 72MHz | 128KB | 20KB |
Olimex STM32-P405 | ST STM32 | STM32F405RGT6 | 168MHz | 1MB | 192KB |
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 BlackPill V2.0 (BlackPill F411CE) | ST STM32 | STM32F411CEU6 | 100MHz | 512KB | 128KB |
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. |
CHIPS Alliance | The CHIPS Alliance develops high-quality, open source hardware designs relevant to silicon devices and FPGAs. |
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
- You can list pre-configured boards by pio boards command or PlatformIO Boards Explorer
- For more detailed
board
information please scroll the tables below by horizontally.
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 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 |
Digilent¶
Name | Platform | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|---|
RVfpga: Digilent Nexys A7 | CHIPS Alliance | On-board | 320MHz | 16MB | 1.16MB |
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 |
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 | 64MB | 256MB |
NXP i.MX RT1050 Evaluation Kit | NXP i.MX RT | On-board | MIMXRT1052DVL6B | 600MHz | 64MB | 512KB |
NXP i.MX RT1060 Evaluation Kit | NXP i.MX RT | On-board | MIMXRT1062DVL6A | 600MHz | 64MB | 1MB |
NXP i.MX RT1064 Evaluation Kit | NXP i.MX RT | On-board | MIMXRT1064DVL6A | 600MHz | 4MB | 1MB |
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 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 | 192KB |
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 |
---|---|---|---|---|---|---|
reel_board | Nordic nRF52 | On-board | NRF52840 | 64MHz | 1MB | 256KB |
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 | External | STM32G071RBT6 | 64MHz | 128KB | 36KB |
Nucleo G431RB | ST STM32 | External | STM32G431RBT6 | 170MHz | 128KB | 32KB |
Nucleo G474RE | ST STM32 | External | 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 | 128KB |
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 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 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 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 | 256KB |
ST Nucleo F446RE | ST STM32 | On-board | STM32F446RET6 | 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 H743ZI | ST STM32 | On-board | STM32H743ZIT6 | 400MHz | 2MB | 512KB |
ST Nucleo H745ZI-Q | ST STM32 | On-board | STM32H745ZIT6 | 480MHz | 1MB | 512KB |
ST Nucleo L053R8 | ST STM32 | On-board | STM32L053R8T6 | 32MHz | 64KB | 8KB |
ST Nucleo L073RZ | ST STM32 | On-board | STM32L073RZ | 32MHz | 192KB | 20KB |
ST Nucleo L432KC | ST STM32 | On-board | STM32L432KCU6 | 80MHz | 256KB | 64KB |
ST Nucleo L476RG | ST STM32 | On-board | STM32L476RGT6 | 80MHz | 1MB | 128KB |
ST Nucleo L496ZG | ST STM32 | On-board | STM32L496ZGT6 | 80MHz | 1MB | 128KB |
ST Nucleo L4R5ZI | ST STM32 | On-board | STM32L4R5ZIT6 | 120MHz | 2MB | 640KB |
ST STM32F0DISCOVERY | ST STM32 | On-board | STM32F051R8T6 | 48MHz | 64KB | 8KB |
ST STM32F3DISCOVERY | ST STM32 | On-board | STM32F303VCT6 | 72MHz | 256KB | 48KB |
ST STM32F4DISCOVERY | ST STM32 | On-board | STM32F407VGT6 | 168MHz | 1MB | 128KB |
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 |
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 |
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 |
WeAct¶
Name | Platform | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|---|
WeAct BlackPill V2.0 (BlackPill F411CE) | ST STM32 | External | STM32F411CEU6 | 100MHz | 512KB | 128KB |