Zephyr

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

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.

Zephyr modules

Zephyr modules are externally maintained packages that allow using well-established and mature code created by third party developers. By default PlatformIO only handles modules that implement silicon vendor Hardware Abstraction Layers (HALs). Other parts like File Systems, Inter-Process Communication (IPC) libraries, etc can be manually added to the build process as external packages.

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_MODULES at the top of your project’s CMakeLists.txt file, for example:

# Additional modules
set(ZEPHYR_MODULES ${ZEPHYR_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_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.

Debugging

PIO Unified Debugger - “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
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
Freescale Kinetis FRDM-K64F Freescale Kinetis MK64FN1M0VLL12 120MHz 1MB 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
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
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
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 DISCO-L072CZ-LRWAN1 ST STM32 STM32L072CZ 32MHz 192KB 20KB
ST DISCO-L475VG-IOT01A ST STM32 STM32L475VGT6 80MHz 1MB 128KB
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 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 F746ZG ST STM32 STM32F746ZGT6 216MHz 1MB 320KB
ST Nucleo F756ZG ST STM32 STM32F756ZG 216MHz 1MB 320KB
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 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
VNG VBLUNO51 Nordic nRF51 NRF51822 16MHz 128KB 32KB
VNG VBLUno52 Nordic nRF52 NRF52832 64MHz 512KB 64KB

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
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 Trinket M0 Atmel SAM SAMD21E18A 48MHz 256KB 32KB
Arduino Due (Programming Port) Atmel SAM AT91SAM3X8E 84MHz 512KB 96KB
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
ElectronutLabs Blip Nordic nRF52 NRF52840 64MHz 1MB 256KB
ElectronutLabs Papyr Nordic nRF52 NRF52840 64MHz 1MB 256KB
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
Nordic Thingy:52 (nRF52-PCA20020) Nordic nRF52 NRF52832 64MHz 512KB 64KB
Nucleo G071RB ST STM32 STM32G071RBT6 24MHz 2MB 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
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
Waveshare BLE400 Nordic nRF51 NRF51822 32MHz 256KB 32KB

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 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 B96B-F446VE ST STM32 On-board STM32F446VET6 168MHz 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 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

BBC

Name Platform Debug MCU Frequency Flash RAM
BBC micro:bit Nordic nRF51 On-board NRF51822 16MHz 256KB 16KB

ElectronutLabs

Name Platform Debug MCU Frequency Flash RAM
ElectronutLabs Blip Nordic nRF52 External NRF52840 64MHz 1MB 256KB
ElectronutLabs Papyr Nordic nRF52 External NRF52840 64MHz 1MB 256KB

Freescale

Name Platform Debug MCU Frequency Flash RAM
Freescale Kinetis FRDM-K64F Freescale Kinetis On-board MK64FN1M0VLL12 120MHz 1MB 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

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
NXP LPCXpresso54114 NXP LPC On-board LPC54114J256BD64 100MHz 256KB 192KB

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

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

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
Nucleo G071RB ST STM32 External STM32G071RBT6 24MHz 2MB 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 DISCO-L072CZ-LRWAN1 ST STM32 On-board STM32L072CZ 32MHz 192KB 20KB
ST DISCO-L475VG-IOT01A ST STM32 On-board STM32L475VGT6 80MHz 1MB 128KB
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 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 F746ZG ST STM32 On-board STM32F746ZGT6 216MHz 1MB 320KB
ST Nucleo F756ZG ST STM32 On-board STM32F756ZG 216MHz 1MB 320KB
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 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
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

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

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