Wireless- and Inter-Processor-Communication
- C++23
- C++20
- Python
- STM32
- ARM Cortex-M
- ESP32
- Risc-V
- FreeRTOS
- CMake
- Conan
- Catch2
- Trompeloeil
- CI/CD
- WiFi
- BLE
- HTTPS
- Server-Sent-Events
- RPC
- MessagePack
- USB
- AES-CTR
- Docker
- Segger Ozone
- UART
- DMA
The Client
The customer was a leading international life sciences company headquartered in northern Germany that develops, manufactures, and distributes instruments, consumables, and services for use in laboratories around the world. Its products represent the pinnacle of German engineering in terms of innovation and quality.

The Challenge
After several setbacks in hardware selection and with other service providers, we were asked to assist with firmware development for a wireless module and its integration into the software of a new development. From the outset, we were confronted with design challenges, high requirements, and a large code base.
The Value
We implemented the firmware for this multi-MCU system based on the customer's own framework and integrated it into their product and CI/CD. This enabled the customer to seamlessly connect a new flagship model, giving them another competitive edge.
The Product
Evaluation and risk analysis of ESP-AT firmware — Design and proof-of-concept of a bidirectional RPC protocol based on MessagePack — Implementation of a WiFi station service — Implementation of a BLE beacon service — Implementation of an HTTPS server service with support for server-sent events — Support for a WiFi and BLE certification process — Integration of a MessagePack-based RPC interface into firmware on the ESP32-C3 and STM32H7 — Integration of ESP32 firmware into the customer's GitLab CI with a customized Docker container — Implementation of a modular, stream-based transport layer with multiplexer, encryption, and more — Flash encryption on the ESP32C3 — DMA-based UART communication on the STM32 to relieve the main MCU — Performance optimization (temporal) of the production test software — In-depth interrupt debugging in the USB-OTG device