Cypress Mbed OS Documentation | |||
This article helps you get started on using PSoC 6 MCU and the CYW43xxx WLAN/Bluetooth combo device for developing applications in Mbed OS. Mbed OS is an open-source operating system for platforms using Arm® Cortex®-M CPU-based MCUs and connectivity devices (WiFi, BT/BLE) designed specifically for Internet of Things (IoT) devices: low-powered devices that need to connect to the internet. See the Mbed OS website for an overview of Mbed OS: https://os.mbed.com/docs/.
This article is organized in to the following categories:
PSoC 6 MCU bridges the gap between expensive, power-hungry application processors and low‑performance microcontrollers (MCUs). The ultra‑low‑power PSoC 6 MCU architecture offers the processing performance needed by IoT devices, eliminating the tradeoffs between power and performance. The PSoC 6 MCU contains a dual‑CPU architecture, with both CPUs on a single chip. It has an Arm Cortex‑M4 CPU for high‑performance application tasks, and an Arm Cortex‑M0+ as a secure CPU with security built-in so that your IoT system is protected.
See the Cypress PSoC 6 MCU webpage for more information including the device datasheet and application notes, and development and design resources.
Cypress CYW43012 is a 28-nm, ultra-low-power device that supports single-stream, dual-band IEEE 802.11n-compliant Wi-Fi MAC/baseband/radio and Bluetooth 5.0 BR/EDR/LE. The WLAN section supports SDIO interface to the host MCU (PSoC 6 MCU), and the Bluetooth section supports high-speed 4-wire UART interface to the host MCU.
Cypress CYW4343W is a highly integrated device that offers the lowest BOM in the industry for integrated WLAN/BT IoT applications. The chip includes a 2.4-GHz WLAN IEEE 802.11 b/g/n MAC/baseband/radio, and Bluetooth 4.2 BR/EDR/LE support. The WLAN section supports the SDIO interface to the host MCU (PSoC 6 MCU), and the Bluetooth section supports high-speed 4-wire UART interface to the host MCU.
Cypress provides various development kits with Mbed OS support, featuring PSoC 6 MCU, Bluetooth, and WLAN functionality in Mbed OS. Select a kit shown in the following table that is appropriate for your application's needs.
Kit Name |
PSoC 6 MCU |
Radio Module |
WLAN |
BT/BLE1 |
Arduino /PMOD Headers |
Other Features2 |
Bluetooth radio integrated with MCU |
No |
BT 5.0 (BLE)3 |
Yes/Yes |
QSPI NOR Flash, CapSense® Slider/Buttons, CY8CKIT-028-EPD shield board with E-INK display, Temperature sensor, motion sensor, PDM mic | ||
PSoC 62 MCU with 1 MB Flash and 288 KB SRAM |
Murata Type 1DX module based on CYW4343W |
802.11 b/g/n (Only 2.4 GHz) |
BT 4.2 (BR, EDR, LE) |
Yes/Yes |
QSPI NOR Flash, CapSense Slider/Buttons, CY8CKIT-028-TFT shield board with TFT display, Ambient light sensor, motion sensor, and PDM mic | |
PSoC 62 MCU with 2 MB Flash and 1 MB SRAM |
Murata Type 1DX module based on CYW4343W |
802.11 b/g/n (Only 2.4 GHz) |
BT 4.2 (BR, EDR, LE) |
No/Yes |
QSPI NOR Flash, CapSense Slider/Buttons, micro SD card socket, FS-USB (Host/Device) |
1 - Mbed OS supports only BLE functionality, and does not support Classic Bluetooth – even though the Cypress Wi‑Fi/BT combo devices support both Classic Bluetooth and BLE.
2 - All the development boards have an onboard Programmer and Debugger.
3 - CY8CKIT-062-BLE does not support BLE functionality in Mbed OS. Use the PSoC 6 SDK in ModusToolbox™ if you want to evaluate BLE functionality using this kit.
The Mbed OS landing page for each development kit, provided in the table below, contains details on hardware/software prerequisites and the steps required to get started with a simple LED blinky example in Mbed OS. Follow the steps in the kit landing page to ensure you have a working hardware/software setup to develop applications in Mbed OS.
Kit Name |
Mbed Landing Page |
Cypress provides various code examples for Mbed OS demonstrating the functionality unique to the Cypress MCU and radio devices, as shown in the table below. You can use them as reference to learn about specific topics and reuse the code as applicable for your end application. For up-to-date information on the latest code examples, visit the Cypress GitHub repository at https://github.com/cypresssemiconductorco/?q=mbed-os-example.
Code Example |
Repository Link |
Brief Description |
Wi-Fi Code Examples | ||
WiFi Provisioning via BLE |
Demonstrates how to connect a kit to Wi-Fi by provisioning the Wi-Fi credentials via BLE | |
HTTP Server |
Connects to a Wi-Fi network as a STA (client), starts a secure (or non-secure) web server, and waits for requests. | |
AWS Greengrass |
Code examples for AWS Greengrass: publisher and subscriber. | |
AWS IoT Client |
Code examples for AWS IoT client: publisher and subscriber. | |
CapSense Code Examples | ||
Capsense Buttons and Slider |
Demonstrates implementing CapSense buttons and slider for PSoC 6 MCU with Mbed OS | |
CSD ADC |
Demonstrates the usage of CSD analog-to-digital converter (ADC) for PSoC 6 MCU with Mbed OS using the CSDADC Middleware Library | |
CSD IDAC |
Demonstrates the usage of the CSD current digital-to-analog converter (IDAC) as a current source and a current sink | |
External Memory-based Examples | ||
QSPI XIP |
Demonstrates the Execute-In-Place (XIP) feature of PSoC 6 MCU using external serial memory | |
Graphics/Display-based Examples | ||
EmWin OLED |
Demonstrates how to display graphics on an OLED display using emWin graphics library in Mbed OS | |
EmWin EInk Display |
Demonstrates displaying graphics on an E-INK display using EmWin graphics library in Mbed OS |
You can also reuse several code examples provided by Arm Mbed. Some of the important examples from Arm Mbed are listed in the table below. Visit the Arm Mbed GitHub repo at https://github.com/ARMmbed/?q=mbed-os-example to see the examples available for Mbed OS.
Code Example |
Repository Link |
Brief Description |
Wi-Fi Code Examples | ||
Mbed OS WiFi |
Example Wi-Fi application using the Wi-Fi APIs that Mbed OS provides | |
Bluetooth Low Energy (BLE) Code Examples | ||
Mbed OS BLE Examples |
This repo contains a collection of BLE example applications based on Mbed OS | |
MCU/Peripheral Code Examples | ||
Mbed OS Blinky |
Basic LED Blinky example for Mbed OS |
ModusToolbox is a set of tools and software, distributed in Software Development Kits (SDK), that enable an immersive development experience for customers creating converged MCU and Wireless systems. To achieve this goal, ModusToolbox leverages popular third-party ecosystems, such as Arm Mbed, and adds the Cypress-specific features for Wi-Fi, Bluetooth, CapSense, security, industry-leading low power and rapid peripheral configuration in easy to use form.
SDKs include all the device and board firmware along with the RTOS, stacks and middleware needed for applications running on PSoC 6 MCUs, PSoC 6 MCU coupled with Wi-Fi/Bluetooth combo devices, and Bluetooth SoCs. Tools such as ModusToolbox IDE, an Eclipse-based Integrated Development Environment (IDE) optimized for Cypress devices, and intuitive graphical configurators enable an IoT designer to develop innovative IoT applications efficiently and with ease.
You can download ModusToolbox software from https://www.cypress.com/products/modustoolbox-software-environment. After installing the software, refer to the Quick Start Guide and User Guide in ModusToolbox IDE to get an overview of the software and get started.
ModusToolbox IDE can be used to import, build, program, and debug Mbed OS applications. The information on how to do these is provided in the chapter "Mbed OS to ModusToolbox Flow" in the ModusToolbox IDE User Guide. This document can be accessed from the ModusToolbox IDE from Help > ModusToolbox IDE Documentation > User Guide. The user guide is also available on web in the "Documentation" tab at https://www.cypress.com/products/modustoolbox-software-environment.