If you’re a developer looking to get microcontroller-class (MCU) devices (the chips at the heart of smart refrigerators, industrial motors, energy monitors, and other internet of things devices) up and running on Google Cloud Platform’s (GCP) fully managed Cloud IoT Core service, good news: Google has made it much more straightforward with the new Cloud IoT Device SDK.
The company describes this SDK — the unveiling of which was timed to coincide with the Embedded World conference in Nuremberg, Germany this week — as an open source collection of Embedded C libraries that enables developers to “connect, provision, and manage” devices with Cloud IoT Core service. It specifically targets energy-, compute-, and size-constrained apps — like battery-powered cellular devices and Wi-Fi smart home devices. The Cloud IoT Device SDK works on hardware with as little as 25KB of flash memory (or 80KB with a TLS software solution) and uses non-blocking sockets to decrease power consumption.
Google is pitching it as a way for embedded engineers to quickly profile and prototype in a desktop environment before porting to target edge devices. “[It allows] for shorter time to market,” Indranil Chakraborty, senior product manager at Google GCP, wrote in a blog post. “Meanwhile, this SDK allows semiconductor companies to easily update product lines with support for the latest features in Cloud IoT Core … [and opens] up the opportunity to build systems for asset tracking, smart agriculture, and energy metering.”
Other highlights include compatibility with real-time operating systems such as Zephyr, ARM Mbed OS, FreeRTOS kernel (with more on the way), and POSIX-compliant operating systems like Linux; an asynchronous API that enables no-OS operation; and an event scheduler and optional thread pool for user callbacks. That’s in addition to a lightweight board support package, built-in bi-directional messaging via single-threaded operations with co-routines, JSON Web Token authentication (plus third-party TLS stacks, like wolfSSL, mbedTLS, and TLS 1.2 secure elements), and an integrated back-off logic that implements “intelligent networking behavior” to prevent self-inflicted distributed denial of service events after outages.
Cloud IoT Device SDK launch partners include Arm, Cypress, Semiconductor, Nordic, Espressif Systems, Microchip, NXP, and a “wide array” of other 32-bit MCU manufacturers. It’s available on GitHub, and will soon gain support for Cloud IoT Provisioning.
The SDK’s unveiling comes about a year after Google launched Cloud IoT Core, which debuted in preview in September 2017, out of beta. Customers are billed based on the amount of data transferred to and from devices connected to Cloud IoT Core each month, with discounted rates kicking in as they consume more.