// the find
UncleRus/esp-idf-lib
Component library for ESP32-xx and ESP8266
A collection of 60+ hardware peripheral drivers for ESP-IDF targeting ESP32 and ESP8266 — sensors, ADC/DAC chips, GPIO expanders, LED controllers, RTCs, and more. However, the README prominently warns that this repo is deprecated and explicitly says 'Please do not use this repository' — development has moved to the new org at esp-idf-lib/core. If you're starting a project today, you're looking at the wrong repo.
The breadth is genuinely impressive: one clone gives you production-quality drivers for SHT3x, BME680, ADS111x, DS3231, INA219, MPU6050, and dozens more without reinventing them yourself. Thread safety is explicitly documented per component in a consistent table — most I2C drivers use the shared i2cdev abstraction which handles mutex locking correctly across FreeRTOS tasks. The consistent per-component structure (CMakeLists.txt, .eil.yml metadata, header, source, license) makes it easy to vendor individual components rather than pulling the whole thing. CI is actually green and covers a matrix of ESP-IDF versions.
The deprecation is the deal-breaker — the maintainer is not accepting new issues or PRs here, so any bug you find is yours to keep. Several bit-banging drivers (DHT, DS18x20, 1-Wire, ultrasonic) are explicitly not thread-safe, which will bite you the moment you call them from multiple tasks or interrupt contexts. ESP8266 support requires running a Ruby script to rewrite Kconfig files before building — that's a fragile dependency on a runtime most embedded devs don't have installed. The library has no SPI sensor drivers worth mentioning beyond LED strips and a few ADCs, so if your hardware speaks SPI for anything else you're on your own.