Via the Google Cloud blog – Embedded processors—in particular, microcontrollers—are the fundamental building blocks of the internet of things (IoT), powering edge devices such as smart refrigerators, industrial motors, and energy monitors.
Google has announced their Cloud IoT Device SDK, consisting of client libraries written in Embedded C that enable developers to securely connect, provision, and manage devices with Cloud IoT Core. The kit targets energy- and size-constrained applications, such as battery-powered cellular devices that act as asset trackers, or Wi-Fi smart home devices with limited flash ROM (read-only memory).
In addition to partner platforms supported now, embedded systems engineering teams may port the Cloud IoT Device SDK to various 32-bit microcontrollers (MCUs) across real-time operating systems such as Zephyr, ARM Mbed OS, FreeRTOS kernel. The SDK also operates on POSIX-compliant operating systems like Linux, and can scale down to bare metal devices with the inclusion of its asynchronous API and event scheduler.
A few key features included in the SDK:
- 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
- Integrated back-off logic that implements intelligent networking behavior to prevent self-inflicted DDoS (distributed denial of service) events after service outages
- Future support for Cloud IoT Provisioning
- Support for compute-, memory-, or space-constrained devices:
- Small memory footprint (estimated 25KB of flash memory depending on tool chain optimizations, 80kb with a TLS software solution) with optional feature modularity for size optimizations
- Asynchronous API enabling no-OS operation
- Low power consumption via non-blocking sockets
- An event scheduler and optional thread pool for user callbacks
Google is collaborating with the following partners on our Cloud IoT Embedded SDK:
- Arm
- Cypress Semiconductor
- Nordic Semiconductor
- Espressif Systems
- Microchip
- NXP