Mbed OS: Arm’s Open-Source OS for IoT Devices

Overview of Mbed OS

Mbed OS is an open source operating system designed specifically for the Internet of Things (IoT) by ARM. It’s a lightweight, secure and reliable real-time operating system that provides a comprehensive platform for developing connected devices. Mbed OS makes it easy to develop IoT applications quickly and efficiently by providing powerful tools, libraries and components.

Mbed OS and FreeRTOS are both popular operating systems used for developing IoT applications. Mbed OS is an open-source platform that provides a comprehensive suite of features such as connectivity, security, and device management, while FreeRTOS is a real-time operating system that is lightweight and designed specifically for embedded systems.

Introduction to Mbed OS

Mbed OS is an open-source operating system designed for developing IoT devices. It is developed by Arm and is based on their Cortex-M processor architecture. Mbed OS provides a comprehensive set of features and tools to simplify the development process for IoT devices, such as low-power consumption, security, and connectivity.

Mbed OS is built on top of a real-time operating system (RTOS) that provides the necessary capabilities for IoT devices, such as low latency, real-time responsiveness, and efficient memory management. The RTOS also provides a range of software components, including device drivers, communication stacks, and middleware, which can be easily integrated into applications.

Mbed OS provides a range of connectivity options, including Wi-Fi, Bluetooth Low Energy (BLE), cellular, and LoRaWAN. It also provides built-in support for popular IoT protocols, such as MQTT, CoAP, and HTTP.

Mbed OS has a rich ecosystem of tools and services that developers can use to build and deploy IoT applications. This includes the Mbed Studio IDE, which provides a streamlined development experience, and the Mbed Device Management platform, which provides a comprehensive suite of tools for managing and updating IoT devices.

History and Inventions of Mbed OS

Mbed OS has its origins in the Mbed platform, which was introduced by Arm in 2009. The goal of the Mbed platform was to simplify and accelerate the development of microcontroller-based devices, particularly for the emerging Internet of Things (IoT) market.

Here is a brief timeline of the significant events in Mbed OS’s history:

  1. 2009: Arm introduces the Mbed platform, which initially includes the Mbed microcontroller, Mbed SDK, and Mbed.org developer community.
  2. 2014: Arm announces Mbed OS as an open-source real-time operating system (RTOS) designed specifically for IoT and embedded systems, focusing on security, connectivity, and ease of use.
  3. 2015: Arm releases the first alpha version of Mbed OS, providing early access to the source code and APIs for developers to test and provide feedback.
  4. 2016: Mbed OS 5 is released, introducing support for dynamic memory allocation, multi-threading, and an enhanced networking stack. The release also includes a new unified API for consistent hardware access and improves power management.
  5. 2017: Arm introduces Mbed Cloud, a device management platform that simplifies the deployment, management, and updating of IoT devices running Mbed OS.
  6. 2018: Mbed OS 5.10 is released, adding support for the Armv8-M architecture and enhancing security features with Platform Security Architecture (PSA) support.
  7. 2019: Mbed OS 5.14 is released, introducing several new features, such as improved power management, support for NFC, and enhanced Bluetooth Low Energy (BLE) capabilities.
  8. 2020: Arm releases Mbed OS 6, further improving security, efficiency, and simplifying the development process. The update includes a simplified configuration system, improved connectivity support, and more robust security features.

Throughout its history, Mbed OS has been a key enabler for IoT and embedded system developers. With its focus on ease of use, connectivity, and security, Mbed OS has helped simplify and accelerate the development of a wide range of connected devices across industries. The platform continues to evolve, incorporating new features and improvements to meet the ever-changing needs of the IoT landscape.

Features of Mbed OS

Mbed OS is a real-time operating system (RTOS) designed for IoT and embedded devices. It offers a wide range of features that help developers build efficient, secure, and connected devices. Some key features of Mbed OS include:

  1. Open Source: Mbed OS is an open-source project, which allows developers to access, modify, and distribute the source code freely, fostering community collaboration and innovation.
  2. Optimized for Arm Microcontrollers: Mbed OS is designed for Arm Cortex-M microcontrollers, taking advantage of their low-power and high-performance capabilities.
  3. Integrated Development Environment: Mbed provides a cloud-based IDE called Mbed Studio and an online compiler, simplifying the development process and eliminating the need for complex software installations.
  4. Modular and Configurable: Mbed OS has a modular design, enabling developers to include only the necessary components for their specific application, resulting in smaller, more efficient code.
  5. Extensive Library Support: Mbed OS includes a vast range of libraries and drivers for various peripherals, communication protocols, and sensors, simplifying device integration and reducing development time.
  6. Networking Capabilities: Mbed OS provides built-in support for various networking protocols, such as IPv6, 6LoWPAN, Thread, LoRaWAN, Wi-Fi, Bluetooth, and others, enabling seamless connectivity and interoperability between IoT devices and networks.
  7. Security Features: Mbed OS incorporates several security features, including secure boot, hardware-based cryptography, secure storage, and secure firmware updates to help protect IoT devices from potential threats.
  8. Power Management: Mbed OS includes power management features that help optimize energy consumption, making it suitable for battery-powered devices and energy-sensitive applications.
  9. Real-Time Capabilities: Mbed OS is a real-time operating system, which ensures deterministic behavior and timely response, essential for many IoT applications.
  10. Multi-threading and Concurrency: Mbed OS supports multi-threading, allowing concurrent execution of tasks and improving system responsiveness.
  11. Active Community: Mbed has an active and supportive community of developers and partners that contribute to the project, share knowledge, and provide assistance to new users.
  12. Commercial Support: Arm offers commercial support and services for Mbed OS, including training, consulting, and custom engineering services.

These features make Mbed OS a powerful and flexible platform for developing IoT and embedded systems, allowing developers to create efficient, secure, and connected devices with ease.

Architecture of Mbed OS

Mbed OS is an open-source operating system designed specifically for IoT devices. It provides a comprehensive set of features and tools to simplify the development process for IoT devices. The architecture of Mbed OS is based on a layered approach, with each layer providing a specific set of functionality. Here are the key components of Mbed OS architecture:

  1. Hardware Abstraction Layer (HAL): The HAL layer provides a hardware abstraction for the underlying processor and peripherals, allowing the same code to run on different hardware platforms. The HAL layer also provides a set of standardized APIs for accessing hardware resources, such as GPIOs, timers, and UARTs.
  2. Operating System (OS) Layer: The OS layer provides a real-time operating system (RTOS) that supports multi-threading and provides real-time responsiveness. The OS layer includes a scheduler that manages the execution of multiple threads and ensures that high-priority tasks are executed first. The OS layer also provides memory management and synchronization primitives, such as mutexes and semaphores.
  3. Libraries Layer: The Libraries layer provides a range of software libraries that can be used to develop IoT applications. These libraries include communication stacks, file systems, and cryptographic libraries. The Libraries layer also includes a range of middleware components, such as the mbed TLS library for secure communication.
  4. Application Layer: The Application layer is where the user code is written. It includes the main() function, which is the entry point for the application. The Application layer also includes user-defined threads and tasks that run on the OS layer.
  5. Device Management Layer: The Device Management layer provides a suite of tools for managing and updating IoT devices. It includes a device management client that communicates with a device management server to perform tasks such as firmware updates, device provisioning, and remote monitoring.
  6. Development Tools Layer: The Development Tools layer includes a range of tools and services that simplify the development process for IoT devices. This includes the Mbed Studio IDE, which provides a streamlined development experience, and the Mbed CLI, which provides a command-line interface for building and deploying applications.

The architecture of Mbed OS is designed to provide a modular and scalable platform for developing IoT devices. The layered approach allows developers to select and use only the components that are needed for their specific application, while the HAL layer provides hardware abstraction to ensure portability across different hardware platforms. The combination of the OS layer, Libraries layer, and Application layer provides a rich set of features and tools for developing IoT applications, while the Device Management layer and Development Tools layer provide additional functionality for managing and deploying IoT devices.

Working Principle of Mbed OS

Mbed OS is an open-source operating system designed specifically for the Internet of Things (IoT) and embedded devices. Developed by ARM, Mbed OS is designed to be energy-efficient, lightweight, and easily customizable for various IoT applications. It simplifies the development of IoT devices by providing a platform with a wide range of built-in features and middleware components.

Here’s how Mbed OS works:

  1. Platform Support: Mbed OS supports a variety of microcontroller platforms, primarily those based on ARM Cortex-M processors. This provides developers with flexibility in choosing the appropriate hardware for their IoT application.
  2. Modular Architecture: Mbed OS follows a modular architecture with a layered design. The layers consist of a Hardware Abstraction Layer (HAL), kernel, middleware, and application-specific code. This enables developers to select and use only the components they need for their project, thereby reducing memory footprint and power consumption.
  3. Real-Time Operating System (RTOS): Mbed OS features a built-in RTOS, which allows developers to create applications with multiple threads and real-time capabilities. The RTOS provides efficient task scheduling, inter-process communication, and synchronization primitives to manage concurrent execution.
  4. Connectivity: Mbed OS supports various connectivity options, including Wi-Fi, Ethernet, Bluetooth Low Energy (BLE), LoRa, and cellular networks. This enables developers to create IoT devices that can communicate with other devices and cloud services using different networking technologies.
  5. Security: Security is a critical concern in IoT applications, and Mbed OS addresses this by incorporating several security features. It provides hardware-based security through ARM TrustZone, which isolates secure and non-secure code execution. Mbed TLS, a library for cryptographic and SSL/TLS communication, is also included to enable secure data transmission.
  6. Middleware Components: Mbed OS includes middleware components like a file system, event handling, and power management, which simplifies the development of complex IoT applications. Developers can leverage these components to reduce development time and ensure consistent behavior across different devices.
  7. Ecosystem: Mbed OS is backed by a large and active community of developers, who contribute to its development and provide support through forums and documentation. Additionally, Mbed offers an online compiler and integrated development environment (IDE) called Mbed Studio, simplifying the development process.

Supported Hardware Platforms by Mbed OS

Mbed OS supports a wide range of hardware platforms, primarily those based on ARM Cortex-M microcontrollers. The supported platforms include development boards from various manufacturers, such as NXP, STMicroelectronics, Cypress, Nordic Semiconductor, and more. Some popular Mbed OS supported platforms include:

  1. STMicroelectronics:
    • Nucleo series, such as NUCLEO-F411RE, NUCLEO-F446RE, and NUCLEO-L476RG
    • Discovery series, like STM32F746G-DISCO and STM32L475VG-DISCO
  2. NXP:
    • LPCXpresso series, including LPCXpresso54608 and LPCXpresso54114
    • FRDM series, such as FRDM-K64F and FRDM-KL25Z
  3. Cypress:
    • PSoC 6 series, including PSoC 6 Wi-Fi BT Prototyping Kit (CY8CPROTO-062-4343W) and PSoC 6 BLE Pioneer Kit (CY8CKIT-062-BLE)
  4. Nordic Semiconductor:
    • nRF52 series, like nRF52840 DK (Development Kit) and nRF52833 DK
    • nRF51 series, including nRF51822-mKIT (mbed Kit)
  5. Silicon Labs:
    • EFM32 Giant Gecko series, such as EFM32GG11-STK3701 (Giant Gecko 11 Starter Kit)
    • Thunderboard series, like Thunderboard Sense 2 (SLTB004A)
  6. Analog Devices:
    • ADuCM4x50 series, for instance, ADuCM4050 EZ-KIT
  7. Renesas:
    • GR-PEACH (RZ/A1H) and GR-LYCHEE (RZ/A1LU)

Please note that the list of supported hardware platforms is continually evolving as new boards and microcontrollers are added. To find the most up-to-date list of supported platforms, you can visit the Mbed OS official website (https://os.mbed.com/platforms/) or check the Mbed OS GitHub repository (https://github.com/ARMmbed/mbed-os).

Additionally, if you are interested in using a specific microcontroller or board that is not currently supported by Mbed OS, you can create your own hardware abstraction layer (HAL) and contribute it to the Mbed OS project. This will enable support for your desired platform within the Mbed OS ecosystem.

Devices used with Mbed OS

Mbed OS can run on a wide range of devices, from small microcontrollers to more powerful processors. The devices used with Mbed OS can be categorized into two main groups: Mbed-enabled devices and Mbed-compatible devices.

  1. Mbed-Enabled Devices: These are devices that have been specifically designed to work with Mbed OS. They typically include an Mbed-enabled microcontroller or processor, along with additional hardware components such as sensors, actuators, and communication modules. Examples of Mbed-enabled devices include the NXP LPC55S69-EVK and the STMicroelectronics STM32F746G-DISCO.
  2. Mbed-Compatible Devices: These are devices that are not specifically designed to work with Mbed OS but can be programmed and run with Mbed OS. These devices typically include microcontrollers or processors that are compatible with the ARM Cortex-M architecture, which is the architecture used by Mbed OS. Examples of Mbed-compatible devices include the STM32F4DISCOVERY and the Nordic nRF52 DK.

In addition to these two main groups, Mbed OS also supports a range of hardware platforms and development boards from various manufacturers, including ARM, NXP, STMicroelectronics, Nordic, and Silicon Labs. Mbed OS provides built-in support for a range of communication protocols, including Wi-Fi, Bluetooth Low Energy (BLE), cellular, and LoRaWAN, making it easy to integrate with a wide range of IoT devices and systems.

Applications of Mbed OS

Mbed OS is a versatile operating system designed for IoT and embedded devices, which means it can be used in a wide range of applications across various industries. Some of the most common applications of Mbed OS include:

  1. Wearables and Fitness Trackers: Mbed OS can be used to develop wearable devices like smartwatches, fitness trackers, and health monitors that require low power consumption, secure connectivity, and efficient processing capabilities.
  2. Smart Home Automation: IoT devices like smart thermostats, lighting controls, security systems, and home appliances can be developed using Mbed OS, which provides seamless connectivity options and support for different sensors and actuators.
  3. Industrial Automation and Control: Mbed OS can be used to create industrial IoT devices, such as sensor nodes for environmental monitoring, asset tracking systems, and equipment control systems, which require real-time processing, robustness, and security features.
  4. Smart Agriculture: IoT devices like soil moisture sensors, weather stations, and livestock monitoring systems can be developed using Mbed OS to enable precision agriculture and efficient resource management.
  5. Medical Devices: Mbed OS can be utilized in developing medical devices like remote patient monitoring systems, drug delivery devices, and diagnostic equipment that require secure data transmission, low power consumption, and real-time processing capabilities.
  6. Environmental Monitoring: IoT devices like air quality monitors, water quality sensors, and radiation detectors can be developed using Mbed OS to enable continuous data collection and remote monitoring for environmental conservation efforts.
  7. Automotive and Transportation: Mbed OS can be used in developing devices like vehicle telematics systems, fleet management solutions, and smart traffic management systems that require secure connectivity, real-time data processing, and low power consumption.
  8. Smart Cities: IoT devices like smart street lighting systems, waste management solutions, and public safety systems can be developed using Mbed OS to improve urban infrastructure, enhance security, and reduce energy consumption.
  9. Energy Management: Mbed OS can be used to create devices like smart energy meters, demand response systems, and solar power management systems that require efficient data processing, secure communication, and low power consumption.
  10. Consumer Electronics: Mbed OS can be utilized in developing various consumer electronics like smart speakers, remote controls, and gaming consoles that require secure connectivity, real-time processing, and low power consumption.

Advantages of Mbed OS

Mbed OS offers several advantages that make it an attractive choice for developing IoT and embedded devices. Some of these advantages include:

  1. Open-Source: Mbed OS is open-source, allowing developers to access and modify the source code to tailor it to their specific requirements. This promotes transparency, collaboration, and a strong community-driven ecosystem.
  2. Wide Hardware Support: Mbed OS supports a variety of hardware platforms, primarily based on ARM Cortex-M microcontrollers. This flexibility allows developers to choose the appropriate hardware for their application without being locked into a specific vendor or platform.
  3. Modular Architecture: Mbed OS follows a modular, layered architecture, enabling developers to select and use only the components they need. This reduces the memory footprint and power consumption, making it suitable for resource-constrained IoT devices.
  4. Built-in RTOS: Mbed OS includes a built-in real-time operating system (RTOS), allowing developers to create applications with multiple threads and real-time capabilities. This enables efficient task scheduling and synchronization, making it suitable for time-critical applications.
  5. Connectivity Options: Mbed OS supports various connectivity options, including Wi-Fi, Ethernet, Bluetooth Low Energy (BLE), LoRa, and cellular networks. This allows developers to create IoT devices that can communicate using different networking technologies, depending on their application requirements.
  6. Security Features: Mbed OS incorporates several security features, including hardware-based security through ARM TrustZone and secure data transmission using Mbed TLS. This ensures that IoT devices built on Mbed OS are secure and resilient against cyber threats.
  7. Middleware Components: Mbed OS includes middleware components like file systems, event handling, and power management, simplifying the development of complex IoT applications. These components help reduce development time and ensure consistent behavior across different devices.
  8. Active Community and Ecosystem: Mbed OS is backed by an active community of developers who contribute to its development, provide support through forums, and maintain a rich set of documentation. Additionally, Mbed offers an online compiler and integrated development environment (IDE) called Mbed Studio, further simplifying the development process.
  9. Energy Efficiency: Mbed OS is designed with energy efficiency in mind, making it suitable for battery-powered and energy-constrained IoT devices. It includes power management features and optimizations that enable developers to build devices with extended battery life.
  10. Scalability: Mbed OS is designed to be scalable across different device types and applications, from simple sensor nodes to complex edge devices. Its modular architecture and wide range of supported hardware platforms make it easier for developers to create IoT solutions that can grow and evolve with their needs.

Disadvantages of Mbed OS

While Mbed OS offers many advantages for IoT and embedded device development, there are also some disadvantages and limitations to consider:

  1. Limited Platform Support: Although Mbed OS supports a variety of ARM Cortex-M based microcontrollers, it does not support other microcontroller architectures. Developers who need to work with non-ARM microcontrollers may need to consider alternative operating systems or platforms.
  2. Learning Curve: Mbed OS has a unique programming model and set of APIs. Developers new to Mbed OS may face a learning curve when getting started, especially if they are not familiar with C++ or real-time operating systems.
  3. Memory Footprint: While Mbed OS’s modular architecture allows for reducing memory footprint, some of its components (e.g., Mbed TLS) can still consume a significant amount of memory. For extremely resource-constrained devices, this can be a limitation.
  4. Performance Overhead: Mbed OS’s built-in RTOS, middleware components, and abstractions can introduce performance overhead compared to bare-metal programming. In some cases, this overhead might not be acceptable for high-performance or ultra-low-latency applications.
  5. Limited out-of-the-box Support for Some Peripherals: While Mbed OS provides hardware abstraction layers (HAL) for many common peripherals, it may not support every peripheral available on a given microcontroller. Developers may need to write custom drivers or leverage third-party libraries to use some specific peripherals.
  6. Dependency on the Mbed Ecosystem: Mbed OS relies on its ecosystem, including Mbed Studio and the Mbed Online Compiler, which might not suit all developers. Some might prefer to use different IDEs, compilers, or build systems, which may require additional setup and configuration to work with Mbed OS.
  7. Community Support: Although Mbed OS has a growing and active community, it may not be as large or as diverse as some other popular IoT platforms. As a result, developers might encounter limitations in terms of community support, third-party libraries, or available examples for specific use cases.
  8. License Compatibility: Mbed OS is licensed under Apache 2.0, which is permissive and widely compatible with other open-source licenses. However, some organizations may have licensing restrictions or preferences that make it difficult to integrate Mbed OS into their projects.

Future Development and Enhancement of Mbed OS

As an open-source project, Mbed OS is continuously evolving with contributions from ARM and the broader developer community. While it is difficult to predict specific future developments and enhancements, some general trends and areas of focus can be inferred based on the needs of the IoT and embedded device market. Some potential future developments and enhancements include:

  1. Expanded Hardware Support: To cater to an even wider range of applications and devices, Mbed OS may continue to expand its hardware support, including newer ARM Cortex-M microcontrollers and other microcontroller architectures.
  2. Enhanced Security: Security remains a critical concern in IoT applications, and Mbed OS will likely continue to improve its security features. This could include stronger cryptography algorithms, more robust authentication methods, and better support for secure firmware updates.
  3. Improved Connectivity Options: As new networking technologies emerge and existing ones evolve, Mbed OS will need to keep up with these changes. This could involve adding support for new wireless communication protocols or improving the performance and energy efficiency of existing connectivity options.
  4. Optimizations for Resource-Constrained Devices: Mbed OS may focus on further reducing memory footprint and power consumption to better serve resource-constrained IoT devices. This can include more efficient middleware components, better power management features, and memory optimizations.
  5. More Comprehensive Middleware Components: Mbed OS can enhance its middleware offerings by providing additional components to simplify the development of complex IoT applications. This might include support for advanced sensor fusion, machine learning capabilities, or additional protocol stacks.
  6. Better Tooling and Development Environment: Mbed OS can continue to improve its development tools and environment, such as Mbed Studio, to make it easier for developers to create, test, and deploy IoT applications. This could involve better debugging capabilities, improved code generation, and more seamless integration with other development tools.
  7. Greater Interoperability: As the IoT ecosystem expands, ensuring that devices built on different platforms can communicate and work together becomes increasingly important. Mbed OS may invest in better support for standard communication protocols and frameworks that promote interoperability between IoT devices.
  8. Edge Computing Capabilities: With the growing importance of edge computing in IoT applications, Mbed OS can enhance its support for edge processing capabilities, such as support for running machine learning models on-device or more efficient data processing and filtering.
  9. Strengthened Community Support: Mbed OS can continue to foster its developer community by providing more comprehensive documentation, tutorials, and examples. This will enable developers to get started with Mbed OS more quickly and confidently, and encourage further community-driven enhancements and contributions.

Mbed OS Usage, Availability, Licensing, Pricing and Download Details

The Mbed OS is very famous and is being used by most of the startup companies due to its availability and trusted by ARM Community. Lets discuss about its all the details:

Usage of Mbed OS

Mbed OS is widely used for building IoT applications such as smart homes, industrial automation, healthcare, and more. Mbed OS provides features such as connectivity, security, and device management that make it easier for developers to build and deploy IoT solutions. It’s also popular among researchers and students as it provides a flexible and customizable platform for experimenting with IoT hardware and protocols.

Availability of Mbed OS

Mbed OS is an open-source project that is available for free. The source code and documentation of Mbed OS are hosted on GitHub, and the latest releases, documentation, and community resources can be found on the official Mbed OS website. Mbed OS is also available through the Arm Mbed Studio, which is a comprehensive IDE that includes development tools and features such as code editors, debuggers, and more.

Licensing of Mbed OS

Mbed OS is released under the Apache 2.0 license, which is a permissive open-source license that allows users to freely use, modify, and distribute the software without any restrictions. The licensing model ensures that Mbed OS remains an open and accessible platform for IoT development.

Pricing of Mbed OS

Mbed OS is free and open-source, and there are no licensing or pricing fees associated with it. Users can download, use, and modify the software without any cost, making it an attractive option for IoT development. However, there may be additional costs associated with hardware, support, and other services required for building and deploying IoT solutions.

Download Details of Mbed OS

Users can download Mbed OS with the latest stable releases of Mbed OS from the official Mbed OS website or from GitHub. The website provides detailed documentation, tutorials, and community resources to help users get started with Mbed OS development. Users can also download Mbed OS through the Arm Mbed Studio, which simplifies the installation process and provides a range of development tools and features. Mbed OS supports a wide range of IoT devices and development boards, which may require specific drivers or firmware to be installed.

In conclusion, Mbed OS is a widely-used, open-source operating system designed for IoT devices. It provides features such as connectivity, security, and device management that make it easier for developers to build and deploy IoT solutions. Mbed OS is free and open-source, released under the Apache 2.0 license, and available for download from the official Mbed OS website or from GitHub. The Arm Mbed Studio provides a comprehensive IDE that includes development tools and features such as code editors, debuggers, and more. Overall, Mbed OS is a flexible and customizable platform for building and experimenting with IoT hardware and protocols.

Subscribe
Notify of
1 Comment
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Scroll to Top