DroneNode Modules and Loosely Coupled Pub/Sub Messaging
Each boat (or other device) is based on a custom ESP32-based motherboard running our DroneNode firmware. The firmware exposes a number of sensors, actuators, telemetry interfaces and control modules that can be configured for any given boat (device) through a simple config file. To keep software modules loosely coupled, they communicate using a pub/sub messaging model. This post describes both of these features in more detail. See the DroneLink Architecture - "Boat Brains" article for more detail on the overall system including the central server and web management interface. DroneNode Firmware Architecture The DroneNode firmware architecture is grouped into 5 logical blocks, as illustrated in the following diagram: Hardware - The physical interfaces exposed by the ESP32, including onboard Flash storage (LittleFS filesystem) and any peripheral devices connected to the ESP IO (digital/analog IO, I2C, SPI, Serial) Done System - Low-level functionality responsi...