Even if you’re starting to use Mbed, it can be difficult to decide which boards to actually target for development. There are many (138 different ones at the time of this writing!) In this article, I’ll introduce some of the Mbed devices that are compatible with Mbed, and show you which ones are best to use.
However, it’s not enough to just list the most popular boards, so I’d like to introduce them in terms of boards that have been tested in Mbed’s sample program. As I mentioned previously, Mbed OS 5 has standard support for RTOS (CMSIS-RTOS Keil RTX). Thanks to this, you can run multithreaded programs using Thread, Mutex, Semaphore, and others.
On the other hand, Mbed OS 5 requires more RAM and Flash than the mbed SDK (mbed 2.0/Classic) because of the RTOS’ minute footprint. For this reason, some microcontrollers such as Cortex-M0 with relatively low memory may not support Mbed OS 5.
Sample programs for Mbed OS 5 are available in the GitHub repository. Arm Mbed has a number of repositories listed there. Sample programs are usually named “mbed-os-example-*” and you can add “Search respositories…” in the “Search respositories…” field. You can find them by typing “example” in the “Search respositories…” field.
You can find the boards supported by the sample programs in the configuration file “mbed_lib.json” included in each sample program as well as in the documentation. This is the file referenced when building the program in the Mbed CLI, and you can use target_overrides to write the settings for each target to be built.
It differs from the naming rule of “mbed-os-example-*” from the first program we introduce, but mbed-cloud- client-example is a sample program of the Mbed Cloud Client that connects to the Mbed Cloud, which provides not only network connectivity, but also encryption using the Mbed TLS library, file systems, and other Mbed OS 5 It uses a lot of features. So the supported boards are limited.
In this sample mbed_lib.json, there are three types, K64F, NUCLEO_F429ZI and UBLOX_EVK_ODIN_W2.
mbed-os-example-ble is, as the name implies, a sample program for BLE. It contains a set of samples that allow you to easily try out frequently appearing BLE applications. Here we have nRF51 and nRF52, and although it is not a microcontroller board, X-NUCLEO-IDB05 A shield (expansion board) named A1 is supported. Some proven microcontroller boards that can run this expansion board are K64F, NUCLEO_F401RE, and DISCO_L475VG_IOT01A which is not an expansion board but has a BLE module as standard.
mbed-os-example-wifi is a sample that connects to Wi-Fi to perform HTTP communication. This sample is supported by UBLOX_EVK_ODIN_W2 and RTL8195AM microcontrollers, and Mbed OS supported Wi-Fi modules are ISM 43362 (the microcontrollers are DISCO_L475VG_IOT01A and DISCO_F413ZH), IDW04A1 and IDW01M1 (the NUCLEO_F401RE), ESP8266 (K64F, NUCLEO_L429ZI, NUCLEO_L476RG) and many more.
However, as you know, the presence or absence of a technical certification mark is a problem for the legal use of wireless interfaces in Japan. The most readily available Wi-Fi module with a technical certification mark is probably ESP-WROOM-02 with the ESP8266.
mbed-os-example-cellular connects to the Internet using cellular (mobile phone network), TCP and UDP sockets Here is a sample for communication. It looks like u-blox C027 and MTS Dragonfly are supported. Among them, u-blox C027 is the only one available in Japan with a technical certification mark.
The cellular interface was not supported in Mbed OS 5 until 5.8, which was released at the end of March 2018, so there are still a small number of boards that are supported.
mbed-os-example-lorawan is an example of LoRaWAN. The LoRaWAN standard defines regional parameters for the ISM band (Industrial, Scientific and Medical Band) and uses different frequency bands and parameters depending on the country or region, unlike Wi-Fi and Bluetooth. The Japanese version is included in the AS923 specification.
I briefly checked the source code of Mbed OS 5, but I couldn’t find such a specification for Japan. So we don’t recommend you to use the stack included in Mbed OS 5 in Japan for now. The Advantech Wise 1510 and the ST B-L072Z-LRWAN1 are the only boards with an approved technical mark.
I’ve listed a variety of connectivity sample programs, but I’ll pick a board that comes up frequently…
The FRDM-K64F is an evaluation board for the Kinetis K64F with Cortex-M4 with FPU, 1MB of Flash and 256kB of RAM. The K64F It is positioned as a reference for Mbed OS 5, so you shouldn’t have much trouble trying to run a sample program. The FRDM-K64F is the best choice if you’re buying a single Mbed OS 5-compatible board for the first time, as it supports the TRNG (True Random Number Generator) API, which also provides enhanced security features.
The board comes with an Ethernet interface, but you can also connect a Wi-Fi interface, such as ESP-WROOM-02, to X-X- Bluetooth Low Energy can be added by connecting the NUCLEO-IDB04A1. (The X-NUCLEO-IDB04A1 requires patching to the hardware to use. Also, the X-NUCLEO-IDB04A1 is available from a limited number of retailers with the Technology Certification Mark on it).
The NUCLEO-F429ZI is a STM32F429ZIT6 with Cortex-M4 with FPU, 2MB of Flash and 256kB of RAM This is an evaluation board that supports the TRNG API as well as the K64F, and also has a larger Flash capacity than the K64F, so it seems to be able to run larger (and more complex) applications. Previously, the FRDM-K64F was the only board positioned as a reference for Mbed OS 5, but recently the NUCLEO-F429ZI is also a reference.
The network interface of the two boards above was Ethernet, but the interface of the EVK-ODIN-W2 is Wi-Fi. This board is an evaluation board for a Wi-Fi module called ODIN-W2 from u-blox, and inside the module is a Cortex-M4 microcontroller with 2MB of Flash and 256kB of RAM, called STM32F439ZIY6.
There are only a limited number of ways to obtain these boards and modules, which also bear the technical approval mark. The best way to be sure is to get them from a u-blox distributor.
The u-blox C027 was the reference entity for the Mbed Classic, the LPC1768 and the u-blox LISA-U200 W-CDMA (3G) The LPC1768 is a Cortex-M3 microcontroller with 512kB of Flash and 64kB of RAM, which is a smaller capacity than the microcontrollers on the boards we’ve mentioned so far. We recommend that you prepare a 12V1A or higher AC adapter when you use this board. In order to obtain a board with the technical approval mark, it is likely that you will need to procure it from a u-blox distributor in Japan.
LISA-U200 is a 3G module, so it doesn’t support LTE; there are already LTE boards that support Mbed OS 5, but they are only models for overseas markets. We are waiting for the appearance of a model that can be used in Japan as well.
If you want to use Bluetooth Low Energy as a standalone microcontroller, Nordic’s nRF52 is the most popular choice. However, Nordic’s nRF52-DK is unfortunately not construction design-certified, so we looked for a certified nRF52832 evaluation board.
One such board is the u-blox EVK-NINA-B112. The board uses a certified module called NINA-B112 from u-blox. I don’t have it, so I haven’t checked it, but from the description on the page, it looks like it should be able to run mbed-os-example-ble in no time.
In this article, we have introduced the devices that support Mbed OS 5 for each connectivity. In the next article, I would like to explain Mbed OS 5 in more detail.
This post is also available in: Japanese