Keil Logo

IoT clients

Learning Platform

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:

How to connect to AWS using an STMicroelectronics Nucleo board


How to connect to AWS using TF-M an NXP LPCXpresso board


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).

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.

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. With designers of IoT applications under extraordinary pressure to build innovative solutions quickly, affordably, and satisfy many design requirements, how can the IoT continue to scale across a growing number of use cases? 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.

Example projects

IoT client demos are available for the following evaluation kits and development boards:

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. The new WiFi driver validation suite helps to debug connectivity issues and get to a stable connection faster.

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

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:

MDK-Packs for IoT cloud providers

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.
Building Blocks

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.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.