Skip to main content

Planned maintenance on Saturday 17th November, 11:00-14:00 GMT os.mbed.com and Online Compiler will be unavailable - More details »

Mbed Enabled Requirements

For a product to be validated as an official Arm® Mbed Enabled™ product, it must fall under one of the following categories, and must meet the compliance criteria and technical requirements defined for that category as "MUST", and are strongly encouraged to meet the one marked as "SHOULD".

Categories

Click to expand the categories below.

  • Category: Boards

    Boards

    Focusing on evaluation and rapid prototyping, boards are development platforms that integrate microntrollers or modules with components to make a system that Mbed OS runs on. Most often bundled with a debug circuit and peripheral connection options. Those featured here are most often designed for evaluation and rapid prototyping and include debug and peripheral connection options used ahead of custom board designs.

    Compliance Criteria

    • [B-CC-1] MUST implement all functionality against the current Mbed OS major release (see Mbed Enabled technical requirements for Boards).
    • [B-CC-2] MUST pass all Mbed OS functional and system validation tests for the current Mbed OS major release.
    • [B-CC-3] MUST have the support software merged mainline in the official Mbed OS repository according to porting and contributor guidelines.
    • [B-CC-4] MUST provide comprehensive examples for key Board features and functionality.
    • [B-CC-5] SHOULD use supported Components.
    • [B-CC-6] MUST have an Mbed Enabled Interface circuit and firmware available (see Mbed Enabled compliance criteria for Interface).
    • [B-CC-7] MUST have a pinout diagram based on the Mbed pinout template.
    • [B-CC-8] MUST provide product photo, description, features and other marketing collateral.
    • [B-CC-9] MUST have technical documents available for download from the Mbed Developer website.
    • [B-CC-10] MUST have EDA consumable files available for download from the Mbed Developer website.
    • [B-CC-11] MUST have a public issue tracker and feedback mechanism.
    • [B-CC-12] MUST have a support engineer on the Mbed Developer website to monitor community questions/feedback regarding the product and supporting software.
    • [B-CC-13] MUST provide 10x units mounted on a PCB with for validation and regression testing.
    • [B-CC-14] MUST have a license identifiable using SPDX.
    • [B-CC-15] MUST have an Mbed Partner Agreement.

     

    Technical Requirements

    Class: Baseline

    This set of requirements aims at ultra-constrained devices.

    • [B-M1] Microcontroller Requirements: Baseline
      • [B-M1-1] MUST implement ARMv6-M, ARMv7-M, ARMv8-M or newer Arm architecture.
      • [B-M1-2] MUST provide at least 4KB RAM and 32KB Flash.
    • [B-TG] Target Support Files
      • [B-TG-1] MUST provide folder structure as per the Mbed OS specification (specification).
    • [B-TC] Toolchain Compilers
    • [B-CM] CMSIS-CORE
      • [B-CM-1] MUST provide CMSIS-CORE implementation and related starter files and linker scripts for all major toolchains – ARM, GCC_ARM, IAR (porting guide).
    • [B-TM] TIMERS
    • [B-RC] RTC
    • [B-HG] HAL Drivers - GPIO
    • [B-HU] HAL Drivers - UART
    • [B-HC] HAL Drivers - I2C
      • [B-HC-1] MUST implement I2C if provided by SoC.
    • [B-HS] HAL Drivers - SPI
      • [B-HS-1] MUST implement SPI Master and SPI Slave if provided by SoC.
    • [B-HQ] HAL Drivers - QuadSPI
    • [B-HA] HAL Drivers - AnalogIn
      • [B-HA-1] MUST implement AnalogIn if provided by SoC.
    • [B-HP] HAL Drivers - UART
      • [B-HP-1] MUST implement PWM if provided by SoC.

     

    Class: Advanced

    This set of requirements builds on top of Baseline and aims at constrained devices.

    • [B-M2] Microcontroller Requirements: Advanced
      • [B-M2-1] MUST implement ARMv7-M, ARMv8-M or newer Arm architecture.
      • [B-M2-2] MUST provide at least 16KB RAM and 256KB Flash.
    • [B-RT] RTOS
      • [B-RT-1] MUST implement Mbed RTOS APIs based on CMSIS-RTOS standard (porting & testing guide).
      • [B-RT-2] MUST have RTOS enabled and capable of 1 thread minimum, i.e. main thread.
    • [B-EH] Extended HAL
    • [B-ST] Storage
      • [M-ST-1] MUST provide storage and implement BlockDevice driver if provided by hardware (specification & porting).
    • [B-ES] Entropy source / TRNG
      • [B-ES-1] MUST implement hardware entropy source support if provided by hardware, and support Mbed OS TRNG API (porting & testing guide).
    • [B-CR] Hardware Cryptography
    • [B-BT] Non-IP Connectivity – Bluetooth Low Energy
      • [B-BT-1] MUST implement Mbed OS BLE APIs, if own BLE stack is provided, and functionality covering the BLE 4.0 or higher stack capabilities.
      • [B-BT-2] MUST implement a BLE HCI driver for Cordio BLE stack, if own BLE stack is not provided, and functionality covering the BLE controller capabilities, but no less than BLE 4.0 standard.
    • [B-LR] Non-IP Connectivity – LoRa
    • [B-NF] Non-IP Connectivity – NFC
    • [B-ET] IP Connectivity – Ethernet (IPv4 & IPv6)
    • [B-WF] IP Connectivity – WiFI (IPv4 & IPv6)
    • [B-1M] IP Connectivity – 15.4 MAC (6LoWPAN/IPv6)
    • [B-1R] IP Connectivity – 15.4 RF (6LoWPAN/IPv6)
    • [B-CL] IP Connectivity – Cellular

     

    Class: Pelion Ready

    This set of requirements builds on top of Baseline and Advanced, and aims at mainstream IoT devices. A Pelion Ready board supports Pelion Device Management connect and update features out-of-the box without any further development, hardware or software required.

    • [B-M3] Microcontroller Requirements: Pelion Ready
      • [B-M3-1] MUST implement ARMv7-M, ARMv8-M or newer Arm architecture.
      • [B-M3-2] MUST provide at least 128KB RAM and 512KB Flash.
    • [B-HW] Hardware Requirements
      • [B-HW-1] MUST provide one of the Mbed OS-supported IP-based connectivity.
      • [B-HW-2] SHOULD provide external storage and implement BlockDevice driver (specification & porting).
      • [B-HW-3] MUST implement entropy source support and pass all tests described in section [B-ES] and its sub-sections.
      • [B-HW-4] MUST implement RTC support and pass all tests described in section [B-RC] and its sub-sections.
    • [B-SW] Software Requirements
      • [B-SW-1] MUST pass all Mbed OS IP-based connectivity tests as described in its relevant section and sub-sections.
      • [B-SW-2] MUST pass all Mbed OS storage tests as described in its relevant section and sub-sections.
      • [B-SW-3] SHOULD pass all Mbed OS stress tests for IP-based connectivity, Flash IAP, storage and TRNG (tests specification and testing).
      • [B-SW-4] MUST provide an example program demonstrating successful device registration and data transfer to Pelion Device Management (program template).
      • [B-SW-5] MUST provide an example program demonstrating successful device firmware update with Pelion Device Management (program template).
    • [B-BL] Bootloader
      • [B-BL-1] MUST provide linker script for all major toolchains (GCC for ARM, IAR for ARM, ARM Compiler 5) with support for macro definable memory offset (MBED_APP_START) and application size (MBED_APP_SIZE) (porting guide).
  • Category: Components

    Components

    Hardware components extend the capabilities of microcontrollers or modules, and include the associated software libraries for Mbed OS to make use of them. Components and the associated libraries, examples and documentation are created by component manufacturers and other Mbed developers.

    Compliance Criteria

    • [C-CC-1] MUST implement all functionality against the current Mbed OS major release (see Mbed Enabled technical requirements for Components).
    • [C-CC-2] MUST pass all Mbed OS functional and system validation tests for the current Mbed OS major release.
    • [C-CC-3] MUST have the support software available on a public website.
    • [C-CC-4] SHOULD support all additional connectivity protocols that are available.
    • [C-CC-5] MUST provide comprehensive examples for key component features and functionality.
    • [C-CC-6] MUST test the component and its functionality against 3 Mbed Enabled boards.
    • [C-CC-7] SHOULD test the component and its functionality against 10 Mbed Enabled boards.
    • [C-CC-8] MUST have a pinout diagram based on the Mbed pinout template.
    • [C-CC-9] MUST provide product photo, description, features and other marketing collateral.
    • [C-CC-10] MUST have technical documents available for download from the Mbed Developer website.
    • [C-CC-11] MUST have EDA consumable files available for download from the Mbed Developer website.
    • [C-CC-12] MUST have a public issue tracker and feedback mechanism.
    • [C-CC-13] MUST have a support engineer on the Mbed Developer website to monitor community questions/feedback regarding the product and supporting software.
    • [C-CC-14] MUST provide 10x units for validation and regression testing.
    • [C-CC-15] MUST have a license identifiable using SPDX.
    • [C-CC-16] MUST have an Mbed Partner Agreement.

     

    Technical Requirements

    Class: Baseline

    This set of requirements aims at ultra-constrained devices.

    • [C-DR] Component Drivers
      • [C-DR-1] MUST provide driver libraries for all hardware elements available on the component. Libraries must be publicly available.
      • [C-DR-2] MUST use Mbed OS Driver APIs for peripheral GPIO, SPI, I2C, UART, AnalogIn, PWM functionality.
    • [C-TC] Toolchain Compilers

     

    Class: Advanced

    This set of requirements builds on top of Baseline and aims at constrained devices.

    • [C-ST] Storage
      • [C-ST-1] MUST provide storage and implement BlockDevice driver if provided by hardware (specification & porting).
    • [C-BT] Non-IP Connectivity – Bluetooth Low Energy
      • [C-BT-1] MUST implement Mbed OS BLE APIs, if own BLE stack is provided, and functionality covering the BLE 4.0 or higher stack capabilities.
      • [C-BT-2] MUST implement a BLE HCI driver for Cordio BLE stack, if own BLE stack is not provided, and functionality covering the BLE controller capabilities, but no less than BLE 4.0 standard.
    • [C-LR] Non-IP Connectivity – LoRa
    • [C-ET] IP Connectivity – Ethernet (IPv4 & IPv6)
    • [C-WF] IP Connectivity – WiFI (IPv4 & IPv6)
    • [C-1M] IP Connectivity – 15.4 MAC (6LoWPAN/IPv6)
    • [C-1R] IP Connectivity – 15.4 RF (6LoWPAN/IPv6)
    • [C-CL] IP Connectivity – Cellular
  • Category: Interfaces

    Interfaces

    Hardware circuit and accompanying firmware that is used for development, debug and testing software that runs on Arm based microcontrollers. It provides access to the Arm CPU debug access port.

    Compliance Criteria

    • [I-CC-1] MUST have technical documents available for download from the Mbed Developer website.
    • [I-CC-2] MUST have EDA consumable files available for download from the Mbed Developer website.
    • [I-CC-3] MUST have a support engineer on the Mbed Developer website to monitor community questions/feedback regarding the product and supporting software.
    • [I-CC-4] MUST provide 10x units for validation and regression testing.
    • [I-CC-5] MUST have an Mbed Partner Agreement.
    • [I-CC-6] MUST have product specification document publicly available, e.g. https://mbed.com/daplink.
    • [I-CC-7] MUST have a schematic publicly available, e.g. https://os.mbed.com/teams/mbed/code/mbed-HDK.
    • [I-CC-8] MUST have the support software merged mainline in the official Mbed OS repository according to porting and contributor guidelines.
    • [I-CC-9] MUST have a public issue tracker and feedback mechanism, e.g. https://github.com/ARMmbed/DAPLink/issues.

     

    Technical Requirements

    • [I-OS] Operating Systems
      • [I-OS-1] MUST be compatible with all actively supported versions of Windows, Mac and Linux operating systems.
    • [I-FS] USB Filesystem
      • [I-FS-1] MUST implement USB mass storage device (MSD) support that is capable of programming the target's microcontroller memory system (usually flash).
      • [I-FS-2] MUST support programing binary files.
      • [I-FS-3] SHOULD support programing hex files.
      • [I-FS-4] MUST support programing only the region specified by the file.
      • [I-FS-5] MUST indicate both success and failure programing status.
      • [I-FS-6] MUST have a method for reading the contents of target microcontroller memory system (usually flash).
      • [I-FS-7] MUST contain a read-only HTML-5 compliant mbed.htm file containing URL that redirects to the mbed.com product specific page.
      • [I-FS-8] MUST have a details file containing board ID and circuit ID.
    • [I-VC] USB Virtual COM Port
      • [I-VC-1] MUST implement USB communication device class (CDC) which exposes target microntroller UART transmit and receive pin.
      • [I-VC-2] MUST support the target microntroller changing speed baud rates 2400, 9600, ..., 115200.
      • [I-VC-3] SHOULD support all standard baudrates 2400 thru 921600.
      • [I-VC-4] MUST support ACM 'Send Break' resulting in target microcontroller reset sequence.
      • [I-VC-5] SHOULD provide a user indication in case of a UART buffer overflow.
    • [I-DB] USB Debug
      • [I-DB-1] MUST implement functionality that allows programming and debugging from the host PC.
      • [I-DB-2] SHOULD be CMSIS-DAP.
  • Category: Modules

    Modules

    Aiming at production, modules are pre-integrated certified hardware platforms that incorporate a microcontroller, connectivity, front-end, software and services needed at the heart of products. They can be used for prototyping as well when bundled with an Interface debug circuit. Please note that normally modules don't contain storage and might need an external one.

    Compliance Criteria

    • [M-CC-1] MUST implement all functionality against the current Mbed OS major release (see Mbed Enabled technical requirements for Modules).
    • [M-CC-2] MUST pass all Mbed OS functional and system validation tests for the current Mbed OS major release.
    • [M-CC-3] MUST have the support software merged mainline in the official Mbed OS repository according to porting and contributor guidelines.
    • [M-CC-4] MUST support one of the connectivity protocols officially available in Mbed OS.
    • [M-CC-5] SHOULD support all additional connectivity protocols that are available.
    • [M-CC-6] MUST provide comprehensive examples for key Module features and functionality.
    • [M-CC-7] MUST have an Mbed Enabled Interface firmware available for the Module microcontroller (see Mbed Enabled compliance criteria for Interface).
    • [M-CC-8] MUST have a pinout diagram based on the Mbed pinout template.
    • [M-CC-9] MUST provide product photo, description, features and other marketing collateral.
    • [M-CC-10] MUST have technical documents available for download from the Mbed Developer website.
    • [M-CC-11] MUST have a public issue tracker and feedback mechanism.
    • [M-CC-12] MUST have a support engineer on the Mbed Developer website to monitor community questions/feedback regarding the product and supporting software.
    • [M-CC-13] MUST provide 10x units mounted on MCBs (Module Carrier Board) with for validation and regression testing.
    • [M-CC-14] MUST have a license identifiable using SPDX.
    • [M-CC-15] MUST have an Mbed Partner Agreement.

     

    Technical Requirements

    Class: Baseline

    This set of requirements aims at ultra-constrained devices.

    • [M-M1] Microcontroller Requirements: Baseline
      • [M-M1-1] MUST implement ARMv6-M, ARMv7-M, ARMv8-M or newer Arm architecture.
      • [M-M1-2] MUST provide at least 4KB RAM and 32KB Flash.
    • [M-TG] Target Support Files
      • [M-TG-1] MUST provide folder structure as per the Mbed OS specification (specification).
    • [M-TC] Toolchain Compilers
    • [M-CM] CMSIS-CORE
      • [M-CM-1] MUST provide CMSIS-CORE implementation and related starter files and linker scripts for all major toolchains – ARM, GCC_ARM, IAR (porting guide).
    • [M-TM] TIMERS
    • [M-RC] RTC
    • [M-HG] HAL Drivers - GPIO
    • [M-HU] HAL Drivers - UART
    • [M-HC] HAL Drivers - I2C
      • [M-HC-1] MUST implement I2C if provided by SoC.
    • [M-HS] HAL Drivers - SPI
      • [M-HS-1] MUST implement SPI Master and SPI Slave if provided by SoC.
    • [M-HQ] HAL Drivers - QuadSPI
    • [M-HA] HAL Drivers - AnalogIn
      • [M-HA-1] MUST implement AnalogIn if provided by SoC.
    • [M-HP] HAL Drivers - UART
      • [M-HP-1] MUST implement PWM if provided by SoC.

     

    Class: Advanced

    This set of requirements builds on top of Baseline and aims at constrained devices.

    • [M-M2] Microcontroller Requirements: Advanced
      • [M-M2-1] MUST implement ARMv7-M, ARMv8-M or newer Arm architecture.
      • [M-M2-2] MUST provide at least 16KB RAM and 256KB Flash.
    • [M-RT] RTOS
      • [M-RT-1] MUST implement Mbed RTOS APIs based on CMSIS-RTOS standard (porting & testing guide).
      • [M-RT-2] MUST have RTOS enabled and capable of 1 thread minimum, i.e. main thread.
    • [M-EH] Extended HAL
    • [M-ST] Storage
      • [M-ST-1] MUST provide storage and implement BlockDevice driver if provided by SoC or module (specification & porting).
    • [M-ES] Entropy source / TRNG
      • [M-ES-1] MUST implement hardware entropy source support if provided by SoC or module, and support Mbed OS TRNG API (porting & testing guide).
    • [M-CR] Hardware Cryptography
    • [M-BT] Non-IP Connectivity – Bluetooth Low Energy
      • [M-BT-1] MUST implement Mbed OS BLE APIs, if own BLE stack is provided, and functionality covering the BLE 4.0 or higher stack capabilities.
      • [M-BT-2] MUST implement a BLE HCI driver for Cordio BLE stack, if own BLE stack is not provided, and functionality covering the BLE controller capabilities, but no less than BLE 4.0 standard.
    • [M-LR] Non-IP Connectivity – LoRa
    • [M-NF] Non-IP Connectivity – NFC
    • [M-ET] IP Connectivity – Ethernet (IPv4 & IPv6)
    • [M-WF] IP Connectivity – WiFI (IPv4 & IPv6)
    • [M-1M] IP Connectivity – 15.4 MAC (6LoWPAN/IPv6)
    • [M-1R] IP Connectivity – 15.4 RF (6LoWPAN/IPv6)
    • [M-CL] IP Connectivity – Cellular

     

    Class: Pelion Ready

    This set of requirements builds on top of Baseline and Advanced, and aims at mainstream IoT devices. A Pelion Ready module supports Pelion Device Management connect and update features, although additional hardware or software might be required.

    • [M-M3] Microcontroller Requirements: Pelion Ready
      • [M-M3-1] MUST implement ARMv7-M, ARMv8-M or newer Arm architecture.
      • [M-M3-2] MUST provide at least 128KB RAM and 512KB Flash.
    • [M-HW] Hardware Requirements
      • [M-HW-1] MUST provide one of the Mbed OS-supported IP-based connectivity.
      • [M-HW-2] SHOULD provide external storage and implement BlockDevice driver (specification & porting).
      • [M-HW-3] MUST implement entropy source support and pass all tests described in section [M-ES] and its sub-sections.
      • [M-HW-4] MUST implement RTC support and pass all tests described in section [M-RC] and its sub-sections.
    • [M-SW] Software Requirements
      • [M-SW-1] MUST pass all Mbed OS IP-based connectivity tests as described in its relevant section and sub-sections.
      • [M-SW-2] MUST pass all Mbed OS storage tests as described in its relevant section and sub-sections.
      • [M-SW-3] SHOULD pass all Mbed OS stress tests for IP-based connectivity, Flash IAP, storage and TRNG (tests specification and testing).
      • [M-SW-4] MUST provide an example program demonstrating successful device registration and data transfer to Pelion Device Management (program template).
      • [M-SW-5] MUST provide an example program demonstrating successful device firmware update with Pelion Device Management (program template).
    • [M-BL] Bootloader
      • [M-BL-1] MUST provide linker script for all major toolchains (GCC for ARM, IAR for ARM, ARM Compiler 5) with support for macro definable memory offset (MBED_APP_START) and application size (MBED_APP_SIZE) (porting guide).
  • Category: Products

    Products

    An end-product that utilizes Arm Mbed technology in its creation, i.e. not a developer product.

    Compliance Criteria

    • [P-CC-1] MUST be in volume production.
    • [P-CC-2] MUST complete a questionnaire and technical review with end product review team.

     

    Technical Requirements

    • [P-PR] Product Requirements
      • [P-PR-1] MUST use either Mbed OS 2 or Mbed OS 5.
      • [P-PR-2] SHOULD make use of Mbed RTOS API if based on Mbed OS.

     

    Class: Pelion Ready

    A Pelion Ready product is based on Mbed OS and uses Pelion Device Management connect and update features as part of its core functionality.

    • [P-IR] Pelion Ready
      • [P-IR-1] SHOULD make use of connectivity technology as a product feature.
      • [P-IR-2] SHOULD be able to connect to Pelion Device Management service.
      • [P-IR-3] SHOULD have an unique identity in Pelion Device Management.
      • [P-IR-4] SHOULD employ remote firmware update capabilities with Pelion Device Management.

 

The compliance criteria and technical requirements below align with the latest Mbed OS release.

How to Apply

Before applying you should determine the correct Mbed Enabled program category for your product and review the latest Mbed Enabled requirements for that program category.

You should then visit the " How to Apply " page containing detailed explanation about the Mbed Enabled process and also where to ship samples of your products.

Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.