Drogue IoT

An introduction

Note

This presentation uses vertical slides to group content. Be sure to use space or n to advance to the next slide. Using or will skip all vertical slides.

What is Drogue IoT?

An open source project

  • Licensed under Apache-2

  • Sponsored by Red Hat

Two main parts

  • Drogue Device

  • Drogue Cloud

Drogue Device

  • Distribution of libraries and examples for building embedded IoT applications.

  • Written in Rust

  • Provides common required components and services

  • Based on a lot of components from the Embedded Rust ecosystem

Drogue Cloud

  • IoT friendly APIs for the cloud

  • Common required IoT services

  • Connect any IoT device with custom backend applications

  • Programming language agnostic

Drogue Edge?

We don’t provide an edge infrastructure.

We leverage projects like Microshift and Open Cluster Management instead to deploy our workload.

We do provide workload for the edge, which makes it easier to work with the cloud and devices.

Better together

Drogue Device and Drogue Cloud work great together…

…but can also be used in independently!

Drogue Device

Distribution of tools and examples for building embedded IoT applications.

What is a microcontroller?

  • KiBs of RAM and storage

  • No operating system

  • No memory management

  • Cheap

microcontroller

What it provides

  • Components from the Embedded Rust ecosystem

    • Embassy: Scheduler, hardware abstractions, time-keeping

    • Board Support Packages (BSP) for selected boards

    • Examples

  • Hardware support

    • STM32, nRF, Raspberry Pi Pico, ESP-32

Built on top

  • Firmware update

  • Communication

    • TCP, HTTP

    • Bluetooth Mesh

    • Bluetooth Low Energy

    • LoRaWAN

Architecture

device arch

Drogue Cloud

IoT friendly APIs and services for the cloud.

Connecting your devices with applications. Solving common IoT tasks in the middle.

What it provides

  • Device registry

  • IoT connectivity

  • Digital twin

  • Firmware Updates

  • Scalability

Device registry

  • Manage millions of devices

  • Handle credentials & configuration

  • APIs and change events to integrate with others

    • Build operators to propagate changes

    • Or leverage existing ones

IoT connectivity

  • Device endpoints: MQTT, HTTP, CoAP

  • Protocol normalization

    • Payload agnostic events, based on Cloud Events

    • Basic preprocessing

    • Telemetry, Command & Control

  • Make available on the cloud side using: WebSocket, Kafka, MQTT, Knative eventing

Digital twin

It is an optional feature, built on top of the IoT connectivity layer, providing:

  • Data normalization

    • Structure data, post-process, evaluate

    • Reconcile device state

  • APIs

    • WebSocket & REST

    • OPC UA

Firmware updates

Optional feature, built on top of the IoT connectivity layer and device registry:

  • Extends device registry schema to enable updates

  • Store firmware in containers or Eclipse Hawkbit

  • OTA protocol supported by all device endpoints

  • Source 2 Firmware using Tekton pipelines

  • REST API for triggering and monitoring builds

Getting started

We have a public sandbox: https://sandbox.drogue.cloud

Or try a local deployment.

Thank you!

Questions?