Cross Platform Cloud Connect Library (CCL) For Connected Devices – IoT
The project involved working with the client to enhance his cloud services. The client was, and is still catering to a segment of businesses that regularly requires competent cloud functionality to confer the ‘smart’ attribute to their products.
AIM OF THE PROJECT
We were basically aiming at improving the client’s cloud services by designing Cloud Connect Library (CCL) for low cost, low power Wi-Fi based Multiple Embedded IoT platforms. Secondly, the goal involved working on the efficiency and speed with which the cloud servers functioned. Thirdly, the client needed a tight cost optimization because he needed his cloud services to be fairly affordable to his clientele.
The foremost hurdle that we faced was while infusing multi-platform compatibility in an already framed cloud architecture. Since these different platforms functioned using distinct communication protocols, we had a tough time figuring out a singular way in which the client’s cloud services could be accommodated efficiently on these platforms.
- Cloud Connect Library(CCL) designed for low cost, low power Wi-Fi based Embedded IoT platforms
- The Cloud Connect Library(CCL) establishes and maintains a Wi-Fi connected device’s session with the Cloud
- The library provides connection to the cloud, maintains device session and sends & receives messages on behalf of the host application
- The library provides rapid prototyping for device manufacturers needing cloud connectivity
- CCL available for multiple hardware platforms:
- Broadcom, Texas Instruments, Marvell, Freescale, Raspberry-PI, Atmel
- The data sent to the cloud is AES encrypted
We helped the client by offering and maintaining a Cloud Connect Library(CCL) which is used in the IoT domain for establishing and managing a session with cloud servers using Wi-Fi. This library was capable of running on multiple hardware platforms having Broadcom, Texas Instruments, Marvell, Freescale, Raspberry-PI, and Atmel.
Further, a serial API application was developed on Marvell Wi-Fi module to provide a serial interface to the library APIs. This provided cloud connectivity to the host micro-controller that is connected to the Wi-Fi module using UART. The Device application firmware running on a host micro-controller can issue commands and receive responses from the Wi-Fi module, running the library using simple ASCII text based communication in verbose mode or binary data in non-verbose mode. Following list shows our contribution in depth:
- Refactor the library to improve code readability and reduced complexity
- Optimized the code to reduce memory footprint and CPU utilization
- Achieved 3% utilization in maximum live heap
- Changed the internal software architecture to reduce the number of threads
- Added wake and sleep APIs which provide the host application with control over cloud connection
- Developed a serial API application on Marvell Wi-Fi module to provide verbose and non-verbose serial interface to the library
- Ported library on multiple platforms:
o Atmel’s SAMD21, Marvell’s MC200, Marvell’s MW300, Freescale K22F and TI’s CC3200
Developed seamless multi-platform build procedure for CCL using Jenkins
- Developed demo applications for all supported HW platforms to demonstrate capabilities of CCL
- Software maintenance of the library to fix bugs and provide enhancements