Google Cloud IoT Device SDK for Embedded C (IoTC) BSP
IoTC Board Support Package (BSP)

Welcome

This doxygen catalogs the Board Support Package (BSP), an abstracted framework for hosting all of the platform-specific code used by the Google Cloud IoT Device SDK for Embedded C (IoTC).Porting engineers should focus most of their work to a custom implementation of these collection of files. The rest of the IoTC client sources, such as the event system, mqtt serializer, and callback system, use platform generic C code that should not need tailoring to specific device SDKs.

Out of the Box

The IoTC Client includes a POSIX implementation of the BSP which it uses by default on Linux desktops and devices. For non POSIX platforms your will need to customize the reference implementation, or begin one from scratch.

More information on the porting process can be found in the IoTC Porting Guide which resides in the main /doc directory of this project.

Browsing the Sources

The BSP is segmented into several distinct files, each focused around a particular platform library requirement:

The best place to start would be the NET BSP to couple the IoTC Client to your device's networking SDK and Crypto to use your TLS or secure chip library to sign a JWT with a private key.

Implementations for Time, Rng and Memory should be highly portable and might not need any customization at all.

TLS BSPs

The IoTC Client also ships with support for two TLS implementations out of the box:

 mbedTLS (https://tls.mbed.org)

The default make target will download a tagged mbedTLS release from their repository, and build it to link against. Additionally the IoTC Client Sources will be configured to build the its TLS BSP for mbedTLS which resides in: /src/bsp/mbedtls.

 wolfSSL (https://www.wolfssl.com/)

The client also has a reference TLS BSP implementation for wolfSSL, another TLS library designed for embedded devices.

Please see our User Guide and Porting Guide for more information on how to configure the client to use these different TLS implementations. Both documents reside in the base /doc directory.

This should get you up and running quickly but their sources must be licensed for distribution.

Further Reading

IoTC Client

Information on how to use the Google Cloud IoT Device SDK for Embedded C from the applications perspective can be found in:

Porting Process

Documentation on the porting process and more information about the BSP can be found in the Google Cloud IoT Device SDK Porting Guide located in: /doc/porting_guide.md.