// the find
Azure/azure-iot-pal-arduino
Adaptation layer for the Azure IoT Hub SDK for Arduino
The PAL (platform abstraction layer) that bridges the Azure IoT Hub C SDK to Arduino boards (ESP8266, ESP32, SAMD). It's deprecated — the README says so in the first three lines. This exists only as a reference for anyone maintaining old devices already using it.
The architecture is sound: splitting the platform-specific shims (TLS, threading, sockets) into a separate PAL layer kept the core C SDK clean. Board-specific implementations are isolated per directory (esp32, esp8266, samd) so you can see exactly what each platform needed to stub out. Unit tests exist for the TLS I/O and platform layers, which is more than most embedded C projects bother with.
Deprecated since at least 2022 — Microsoft explicitly says don't use this for new development. Last real activity was over three years ago. The TLS layer delegates to an sslClient abstraction that ties you to specific Arduino SSL libraries, meaning any board not covered is your problem. No async I/O: the MQTT and HTTP implementations block, which is fine for simple sensors but falls apart for anything that needs to stay responsive.