IoT Clients

The Internet of Things (IoT) describes connected end-node devices that collect, process and exchange data. Such devices are frequently connected via the Internet to a cloud service that provides processing power, data analytics, and storage capabilities. An IoT client is a software interface which runs in the IoT end-node device and establishes the connection to a cloud service.

Many cloud service providers offer open-source software that implements an IoT client for an embedded system. Arm adopted these clients for using the reliable MDK-Middleware network component for communication with the cloud service. Alternatively, you can use WiFi devices that are supported by a CMSIS-WiFi driver.

The following IoT clients are supported:

Most IoT clients use the MQTT protocol, which is a lightweight messaging protocol for IoT applications. It communicates over TCP/IP using a TCP socket (in case of a non-secure connection) or a TLS socket (in case of a secure connection with encryption).

Webinar: How to Rapidly Develop IoT Devices

Arm Cortex-M processors have been shipped in more than 45 billion chips for a vast range of applications, from industrial sensors to wearables. This growth has exploded more so in the last few years due to the significant rise in connected products for diverse markets.

AWS IoT provides broad and deep functionality, spanning the edge to the cloud, so customers can build IoT solutions for virtually any use case across a wide range of devices. 

The talk provides a tour of a simple path to developing secure Cortex-M based IoT devices with Arm and AWS, and how together, the collaboration provides choice and scalability for IoT developers.

Webinar: Wireless Cloud Connectivity Made Easy

CMSIS-Drivers for WiFi connectivity is a standardized interface, that makes cloud connectivity simple. Off-the-shelf CMSIS components let developers easily set up and connect embedded applications to the cloud using a WiFi shield for their favorite development board. 

We will demonstrate these functionalities on an NXP LPC55S69 development board with a popular WiFi shield during the webinar. You will learn about how to:

  • Set up and connect an embedded application to the cloud
  • Use Wifi driver validation suite to debug connectivity issues

White Paper: An Open Approach to IoT for Cortex-M


Read our whitepaper that showcases a simple path to developing secure Cortex-M based IoT devices with Arm and AWS. It shows how the collaboration provides choice and scalability for IoT developers. It explains:

  • the CMSIS-Pack system
  • how components help software developers
  • how to enable secure IoT endpoints
  • the various IoT clients
  • how CMSIS-Driver help to unify software
  • how to use layers to build complex applications from scratch

Building blocks

The following MDK-Packs provide the basic building blocks that are required to connect to the cloud providers. These software packs are available from the Pack Installer:

For the above mentioned cloud providers, an IoT client is available. The end node application uses this client, connected to the MDK-Middleware networking stack running on a CMSIS-RTOS v2 based real-time operating system.

Software flow

A simplified software flow can be described as follows:

  1. The application initializes and starts the real-time operating system.
  2. It initializes the network stack which needs to be active before the next step.
  3. The IoT client is used through its API. 

Further information and download

Application note 312 provides further details on the various cloud services that are supported.

All software packs are fully CMSIS-Packs compliant so that they can be used in any third party development environment with CMSIS-Pack support.