Practice Area 02

Embedded Systems
Engineering

ESP32/C/C++ firmware development, MQTT protocol integration, real-time sensor networks, and custom embedded hardware solutions — built for the reliability demands of industrial and maritime environments.

ESP32 · ESP32-S3 C / C++ FreeRTOS MQTT OTA Updates Industrial IoT
ESP32 -S3 240MHz · Dual Core WiFi · BT5 · USB OTG BME280 TEMP·HUM·PRESS NOR Flash 16MB · SPI LDO 3.3V AMS1117 OLED I2C · 128x64 MQTT · WiFi · OTA FreeRTOS · MULTI-TASK · REAL-TIME · INDUSTRIAL
Overview

Firmware that runs when it matters.

We design and deliver embedded firmware for industrial and maritime environments — where power consumption, reliability, and real-time response are non-negotiable.

Our Embedded Systems Engineering practice specialises in ESP32 and ESP32-S3 platform development — writing production-grade C/C++ firmware under FreeRTOS for devices that must operate reliably in harsh industrial environments, often without physical access for maintenance or debugging.

We have designed embedded systems for factory floor sensor networks, maritime shore-power monitoring, IoT edge devices, and computer vision inference engines — each requiring careful attention to task scheduling, interrupt handling, power management, and over-the-air update reliability.

Our firmware development follows disciplined engineering practices — hardware abstraction layers, unit-testable components, structured logging, and documented ADRs for every significant design decision. Code that ships is code that can be maintained.

01
ESP32 / ESP32-S3 Expertise
Deep platform knowledge — dual-core task management, WiFi/BT co-existence, USB OTG, camera interfaces (OV5640), and PSRAM utilisation for ML inference workloads.
02
FreeRTOS Real-Time Architecture
Multi-task firmware design with proper priority assignment, queue-based inter-task communication, watchdog management, and deterministic interrupt handling.
03
MQTT & IoT Connectivity
Production MQTT client implementation with QoS, last-will messages, TLS/SSL, reconnect logic, and broker integration with AWS IoT Core, HiveMQ, and Mosquitto.
04
OTA Update Infrastructure
Reliable over-the-air firmware update pipelines with rollback protection, dual-partition boot schemes, and cryptographic signature verification.
Firmware Architecture

How the firmware is structured

A disciplined layered firmware architecture — from hardware abstraction through to cloud connectivity.

CLOUD / CONNECTIVITY LAYER APPLICATION LAYER RTOS / MIDDLEWARE LAYER HARDWARE ABSTRACTION LAYER (HAL) MQTT Client TLS/SSL WiFi Stack OTA Engine Telemetry BLE Stack HTTP/REST NTP Sync Sensor Manager Event Dispatcher Config Manager Alert Engine Data Logger CLI / Debug FreeRTOS Scheduler Queue / Semaphore Timer / Interrupt NVS / Partitions Watchdog GPIO / ADC I2C / SPI UART / RS485 PWM / DAC Camera CSI USB OTG RMT / LEDC ESP32-S3 HARDWARE · FreeRTOS · ESPRESSIF IDF v5.x
Capability Breakdown

What we actually build

Specific embedded engineering capabilities across firmware, connectivity, and hardware integration.

FreeRTOS Scheduler MQTT P:3 Sensor P:2 OTA P:2 Log P:1 QUEUE · SEMAPHORE · MUTEX · NOTIFY
FreeRTOS Firmware Design
Multi-task firmware architecture with proper priority assignment, queue-based IPC, binary/counting semaphores, event groups, and deterministic interrupt service routines.
FreeRTOSESP-IDF v5C / C++ISR Design
ESP32 MQTT Broker Cloud QoS 0/1/2 · TLS · LAST WILL · RETAIN
MQTT Protocol & Connectivity
Production MQTT client with QoS level handling, last-will messages, TLS/mTLS authentication, automatic reconnection with exponential backoff, and AWS IoT Core integration.
MQTT v5AWS IoT CoreHiveMQTLS 1.3
Flash Partition Map OTA_0 (ACTIVE) OTA_1 (STANDBY) ROLLBACK · SHA256 VERIFY · SIGNED BINARY
OTA Update Infrastructure
Dual-partition OTA with automatic rollback on boot failure, cryptographic binary signature verification, staged rollout support, and version management across device fleets.
ESP-IDF OTASHA256RollbackFleet Management
BME 280 ADC HAL I2C/SPI Sensor Manager
Sensor Integration
I2C, SPI, UART, and ADC sensor integration with proper hardware abstraction layers — temperature, humidity, pressure, current, vibration, and vision sensors across industrial deployments.
I2C · SPI · UARTADCBME280Modbus RTU
OV5640 Edge ML MobileNet INT8 TFLite PSRAM · LVGL · JPEG DECODE
Camera & Edge ML
OV5640 camera integration with ESP32-S3, PSRAM-backed frame buffers, JPEG streaming, and on-device MobileNetV3-Small INT8 inference for computer vision QA applications.
OV5640TensorFlow LiteMobileNetV3PSRAM
Battery LiPo 3.7V Power Manager Active Light Sleep Deep Sleep
Power Management
Multi-mode power management — active, light sleep, and deep sleep with ULP co-processor wakeup. Optimised for battery-operated field devices requiring months of operation between charges.
Deep SleepULPRTC WakeupLiPo
Technology Stack

Tools we ship with

Specific tools and frameworks we use to deliver production embedded firmware — not aspirational lists.

Platform
ESP32 / ESP32-S3
Espressif ESP-IDF v5.x, Xtensa LX7 dual-core, 240MHz, WiFi 802.11 b/g/n, BT5
Language
C / C++ (C17 / C++17)
Structured C for HAL layers, C++ for application logic and object-oriented drivers
RTOS
FreeRTOS
Tasks, queues, event groups, timers, semaphores, mutexes, and stream buffers
Connectivity
MQTT · WiFi · BLE
Eclipse Paho MQTT, ESP-IDF WiFi stack, NimBLE for BT5 Low Energy peripherals
Storage
NVS · SPIFFS · FAT
Non-volatile storage for config, SPIFFS for file system, external SPI flash management
Security
TLS 1.3 · Secure Boot
mbedTLS, secure boot v2, flash encryption, and cryptographic certificate management
Toolchain
ESP-IDF · CMake
IDF component manager, CMake build system, Menuconfig, and JTAG debugging via OpenOCD
Testing
Unity · pytest-embedded
On-target unit testing with Unity, host-side mocking with CMock, and CI via pytest-embedded
Use Cases

Where we deploy embedded systems

Specific deployment environments where our embedded firmware has been applied or is actively in development.

Factory Floor Monitoring
ESP32-based sensor nodes on production lines — temperature, vibration, current draw, and machine cycle counting. MQTT telemetry to ADROIT SENSE™ cloud platform.
Shore Pedestal ESP32 Node
Maritime Shore Power IoT
EU-assembled drop-in meter modules for marina shore-power pedestals — metering, MQTT telemetry, and remote management for Rolec, GEWISS, and Plusmarine infrastructure.
PCB Computer Vision QA
ESP32-S3 cluster driving OV5640 cameras for PCB defect detection — MobileNetV3-Small INT8 on-device inference with MQTT result publishing and solenoid reject control.
Delivery Process

How an engagement runs

From hardware requirements brief through to production firmware handover.

01
Hardware & Requirements Brief
We begin by understanding your target hardware, sensor requirements, connectivity constraints, power budget, and safety or certification requirements before any firmware is scoped.
02
Firmware Architecture Spec
A documented firmware specification — task breakdown, HAL design, MQTT topic schema, partition map, and OTA strategy — reviewed and signed off before development begins.
03
Iterative Development
Firmware delivered in testable increments — hardware-in-the-loop testing at each milestone, with JTAG debugging sessions and structured code review against the spec.
04
Production Handover
Full source code, build toolchain documentation, flash programming scripts, and a maintenance guide. Optional ongoing support retainer for field issue triage and firmware updates.
PreviousIT Architecture Consulting All Practice Areas

Need embedded firmware
expertise?

Tell us about your hardware platform and requirements — we respond with a direct technical assessment.

Start a Conversation All Practice Areas