Google Cloud Platform (GCP) has released a Cloud IoT Device software development kit (SDK) into the wild this week that was developed in collaboration with a range of semiconductor companies, including Arm, Microchip and NXP.
Its aim is to let engineers rapidly prototype, profile, and test IoT products in a standard desktop environment before porting to an embedded target, shortening time to market.
“For customers designing, building, or deploying IoT solutions, the SDK supports a wider array of MCU-class [microcontroller unit] devices, opening up the opportunity to build systems for asset tracking, smart agriculture, and energy metering,” GCP said.
Developed alongside silicon partners, its aim is to let MCU devices connect directly to GCP’s IoT platform, through which users can manage devices, establish data streams with analytics tools, monitor performance, and visualise data
The SDK allows developers working on embedded systems to port their devices to an array of 32-bit microcontrollers (MCUs) into real-time operating systems such as ARM Mbed OS, FreeRTOS Kernel and Zephyr.
Three key features Chakraborty highlights contained within the Cloud IoT SDK are:
A highly portable feature set paired with a lightweight BSP (Board Support Package) allowing for the deployment of new features with minimal engineering impact.
Single-threaded operations with co-routines to support bi-directional messaging without interrupting device applications.
All the necessary security requirements to connect to IoT Core via JSON Web Token (JWT) authentication, out-of-the-box integration with third party TLS stacks (wolfSSL, mbedTLS), including TLS 1.2 and support for various secure elements.
User working with Googles Cloud IoT Core can design and deploy a large assortment of MCU-class devices for industry applications such as smart energy metering, asset tracking and smart agriculture.
The Google Cloud IoT Device SDK for Embedded C has been made available on GitHub: The Device SDK supports concurrent Pub/Sub traffic on a non-blocking socket implementation that runs on POSIX, RTOS, and no-OS devices.
It also has a Board Support Package that: “Facilitates portability and provides platform-specific implementations through a set of functions and directories. The BSP helps implement crypto and time functions, networking, Transport Layer Security (TLS), memory management, and random number generation—without working through MQTT internals.”