Skip to content
All work

Building automation · ESP32

Underfloor heating & cooling controller

Firmware of an ESP32 controller that drives heating and cooling zones in buildings. It talks to building systems over Ethernet and field buses, reports to the cloud and updates itself over the air.

Client
YOBIIQ B.V.
Role
Embedded Software & IoT Consultant
Period
Ongoing

What I built

  • Embedded web UI over Ethernet
  • Modbus TCP/RTU server and BACnet for building management systems
  • MQTT reporting and over-⁠the-⁠air updates
  • LoRaWAN through an AT modem, OpenTherm boiler link
  • Port of the firmware to ESP-⁠IDF v6.1

Testing without hardware

Unit tests run on the host against mocks, with address and undefined-⁠behavior sanitizers. Integration tests boot the firmware in QEMU on simulated hardware, so CI checks networking, storage and protocols on every pull request, on self-⁠hosted runners.

Technologies

  • ESP32
  • ESP-⁠IDF
  • FreeRTOS
  • Modbus TCP/RTU
  • BACnet
  • MQTT
  • OpenTherm
  • QEMU
  • Unity
  • CMock