Mbed Enabled for Modules

Compliance Critera and Technical Requirements

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 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 Device Ready

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

  • [M-M3] Microcontroller Requirements: Pelion Device 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] MUST pass all Mbed Device Management stress tests for IP-based connectivity, Flash IAP, storage, TRNG and Pelion Device Management (tests specification and testing).
    • [M-SW-4] MUST provide an example application demonstrating successful device registration and data transfer to Pelion Device Management (application template).
    • [M-SW-5] MUST provide an example application demonstrating successful device firmware update with Pelion Device Management (application 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).
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.