mbed OS
mbed-os-6.17.0Features
-
Deterministic multithreaded execution via the integrated Keil RTX kernel.
-
Dual-profile support including a Full Profile for RTOS features and a Bare Metal Profile for constrained devices.
-
Native integration of Mbed TLS and Mbed Crypto for secure communication and storage.
-
Comprehensive connectivity support including Wi-Fi, Bluetooth Low Energy (BLE), LoRaWAN, and Cellular (LTE-M, NB-IoT).
-
Support for Wi-SUN mesh networking via the integrated Nanostack.
-
Standardized C++ API for peripheral access including GPIO, ADC, I2C, SPI, PWM, and CAN.
-
Built-in storage management with support for FAT and LittleFS file systems.
-
Cloud management services integration for device provisioning and updates.
-
Advanced power management features including tickless sleep and automated sleep/deep-sleep transitions.
-
Support for Arm TrustZone for hardware-enforced security isolation.
-
Integrated bootloader support and Over-the-Air (OTA) update capabilities.
-
Extensive hardware abstraction layer (HAL) for porting across diverse Cortex-M vendors.
-
Built-in error handling with overridable weak symbols for production-ready failure management.
-
Support for multiple toolchains including Arm Compiler 6, GCC ARM, and IAR.
-
Comprehensive testing framework (Greentea) and unit testing support.
Architecture
Arm Mbed OS follows a layered architectural design optimized for Arm Cortex-M microcontrollers. At its core, the Full Profile utilizes the Keil RTX kernel, a deterministic real-time operating system that provides multithreading, semaphores, mutexes, and other RTOS primitives. For highly constrained devices, Mbed OS offers a Bare Metal Profile which excludes the RTX kernel to minimize memory footprint, focusing on a single-threaded event-loop model.
The architecture is structured into several distinct layers: the Hardware Abstraction Layer (HAL) provides a consistent interface to vendor-specific peripherals; the Core OS layer manages the RTOS kernel and system services; the Middleware layer includes comprehensive stacks for connectivity (IP, BLE, LoRaWAN, Wi-SUN) and security (Mbed TLS); and the Application API layer provides a standardized C++ interface for developers. This modularity allows developers to include only the components necessary for their specific application, optimizing for both performance and power consumption.
Core Components
- RTOS Kernel: Based on CMSIS-RTOS2 (Keil RTX) for thread management and synchronization.
- Connectivity Stacks: Native support for IPv4/IPv6, WiFi, Bluetooth Low Energy, LoRaWAN, and Cellular.
- Security Foundations: Integrated Mbed TLS for cryptography and secure communication, with support for Arm TrustZone.
- Storage & FileSystems: Support for LittleFS (optimized for wear leveling) and FATFileSystem.
- Power Management: Automated sleep management and tickless RTOS mode to maximize battery life.
Use Cases
This RTOS is ideal for:
- Smart Street Lighting: Managing city-wide lighting platforms with industry-standard control nodes and NEMA socket integration.
- Smart City Bike Lights: Utilizing accelerometers and low-power wireless to monitor road conditions and cyclist safety.
- Industrial Asset Monitoring: Deploying multi-sensor devices for air quality, motion, and cellular-based remote monitoring.
- Agricultural IoT: Implementing LoRaWAN-based sensor networks for long-range, low-power soil and climate monitoring.
- Smart Home Appliances: Providing secure, Wi-Fi connected interfaces for domestic devices and energy management systems.
- Wearable Health Monitors: Leveraging BLE and advanced power management for long-lasting, secure medical telemetry.
Getting Started
Developers can begin by choosing between three primary development environments: Keil Studio Cloud for a zero-installation web-based IDE, Mbed Studio for a dedicated desktop experience with integrated debugging, or Mbed CLI for command-line flexibility and automation. The official documentation at os.mbed.com/docs provides comprehensive Doxygen-generated API references, step-by-step tutorials, and detailed porting guides for custom hardware.
Note: Arm has announced an End of Life (EOL) timeline for Mbed OS, with the project and its associated websites scheduled for archiving in July 2026. Developers starting new projects should consider the long-term maintenance implications and review the official announcement on the Mbed blog.
Related Projects
View All Projects →Avnet WNC14A2A Cellular Driver
A cellular driver library for the WNC14A2A module designed for the Mbed OS ecosystem. It provides a standard network interface implementation and configurable debug logging for cellular connectivity in embedded applications.
BlackPill STM32F401CE Support for Mbed OS 6
A target support package for the WeAct Black Pill board (STM32F401CEU6) in Mbed OS 6. It provides necessary configuration files, pin mappings, and clock settings to enable Mbed OS development on this specific hardware.
BluePill Board Support for Mbed OS 6
A board support package and library for the STM32F103C8T6 'BluePill' board, specifically designed for Mbed OS 6. It provides custom target definitions, pin mappings, and peripheral configurations to enable seamless development on the popular ARM Cortex-M3 microcontroller.
Edge Computing AI for Cubesats
A research project evaluating AI model deployment on edge computing platforms for cubesat applications. It compares performance, power consumption, and accuracy across NVIDIA Jetson TX1, Intel Movidius, and uTensor on Mbed OS using a TensorFlow-based character recognition model.
Mbed OS 6 Port for WeAct STM32H743VIT6
A hardware support package providing Mbed OS 6 compatibility for the WeAct STM32H743VIT6 development board. It includes essential target definitions, pin mappings, and clock configurations for the high-performance 480 MHz STM32H743VI microcontroller.
Mbed OS 6 Support for WeAct Black Pill (STM32F401CC)
This project provides a custom target definition and hardware abstraction layer for the WeAct Black Pill board based on the STM32F401CCU6 microcontroller. It enables full compatibility with Mbed OS 6, including pin mappings, clock configurations, and peripheral support for the ARM Cortex-M4 platform.
Mbed OS 6 Support for WeAct Black Pill (STM32F411CE)
A custom target implementation for Mbed OS 6 that enables support for the WeAct Black Pill board. It provides the necessary hardware abstraction layers, pin mappings, and clock configurations for the STM32F411CEU6 microcontroller.
Minimal Mbed OS Template for STM32F030
A lightweight project template designed to run Mbed OS on the resource-constrained STM32F030F4 microcontroller. It includes specific optimizations to fit the framework into 16KB of flash memory, such as a custom printf implementation and disabled standard I/O libraries.