UncleRus/esp-idf-lib

Component library for ESP32-xx and ESP8266

C

1,612

1,568 commits

updated Jan 24, 2026

See the code

README

ESP-IDF Components library

Main CI process Docs Status

[!CAUTION] New project, esp-idf-lib, succeeded this project. We will NOT update this repository. All new issues and PRs will NOT be accepted here. If you find any issues, please visit the relevant component repository. For instance, ads111x's component repository is esp-idf-lib/ads111x.

Visit esp-idf-lib/core/discussions for discussions and questions.

Please do not use this repository!

Components for Espressif ESP32 ESP-IDF framework and ESP8266 RTOS SDK.

Part of them ported from esp-open-rtos.

Supported versions of frameworks and devices

ChipFrameworkVersions
ESP32-xxESP-IDFAll officially supported versions (see Support Period Policy) and master
ESP8266ESP8266 RTOS SDKmaster, v3.4

See "Supported on" column for each of the components.

How to use

ESP32-xx

Clone this repository somewhere, e.g.:

cd ~/myprojects/esp
git clone https://github.com/UncleRus/esp-idf-lib.git

Add path to components in your CMakeLists.txt: e.g:

cmake_minimum_required(VERSION 3.5)
set(EXTRA_COMPONENT_DIRS /home/user/myprojects/esp/esp-idf-lib/components)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(my-esp-project)

or with CMake FetchContent

cmake_minimum_required(VERSION 3.11)
include(FetchContent)
FetchContent_Declare(
  espidflib
  GIT_REPOSITORY https://github.com/UncleRus/esp-idf-lib.git
)
FetchContent_MakeAvailable(espidflib)
set(EXTRA_COMPONENT_DIRS ${espidflib_SOURCE_DIR}/components)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(my-esp-project)

ESP8266 RTOS SDK

Clone this repository somewhere, e.g.:

cd ~/myprojects/esp
git clone https://github.com/UncleRus/esp-idf-lib.git

Add path to components in your project makefile, e.g:

PROJECT_NAME := my-esp-project
EXTRA_COMPONENT_DIRS := /home/user/myprojects/esp/esp-idf-lib/components
EXCLUDE_COMPONENTS := ads130e08 max7219 mcp23x17 led_strip max31865 ls7366r max31855
include $(IDF_PATH)/make/project.mk

As some Kconfig.projbuild files use rsource, which the Kconfig parser of ESP8266 RTOS SDK does not understand, run devtools/rewrite_kconfig.rb to rewrite it before building the examples.

ruby devtools/rewrite_kconfig.rb path/to/Kconfig.projbuild

See GitHub examples or GitLab examples.

Documentation

Components

ADC/DAC libraries

ComponentDescriptionLicenseSupported onThread safety
ads111xDriver for ADS1113/ADS1114/ADS1115 and ADS1013/ADS1014/ADS1015 I2C ADCBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ads130e08Driver for ADS130E08 ADCMITesp32, esp32s3, esp32s2, esp32c3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
hx711Driver for HX711 24-bit ADC for weigh scalesBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
mcp342xDriver for 18-Bit, delta-sigma ADC MCP3426/MCP3427/MCP3428BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mcp4725Driver for 12-bit DAC MCP4725BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pcf8591Driver for 8-bit ADC and an 8-bit DAC PCF8591BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sgm58031Driver for SGM58031 16-bit I2C ADCISCesp32, esp8266, esp32s2, esp32s3, esp32c3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Air quality sensors

ComponentDescriptionLicenseSupported onThread safety
ccs811Driver for AMS CCS811 digital gas sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mhz19bDriver for MH-Z19B NDIR CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
scd30Driver for SCD30 CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
scd4xDriver for SCD40/SCD41 miniature CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sfa3xDriver for SFA30 formaldehyde detection module (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sgp40Driver for SGP40 Indoor Air Quality Sensor for VOC MeasurementsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Battery controllers

ComponentDescriptionLicenseSupported onThread safety
lc709203fDriver for LC709203F battery fuel gaugeISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
max1704xDriver for MAX17043/MAX17044/MAX17048/MAX17049 battery fuel gaugeBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mp2660Driver for MP2660 5V USB, 500mA, I2C-Controlled Linear Charger with Power Path Management for Single-Cell Li-Ion BatteryBSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Common libraries

ComponentDescriptionLicenseSupported onThread safety
calibrationMulti-point calibration libraryBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61n/a
colorCommon library for RGB and HSV colorsMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5n/a
esp_idf_lib_helpersCommon support library for esp-idf-libISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61n/a
framebufferRGB framebuffer componentMITesp32, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5n/a
i2cdevESP-IDF I2C master thread-safe utilitiesMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
lib8tionMath functions specifically designed for LED programmingMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5n/a
noiseNoise generation functionsMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61n/a
onewireBit-banging 1-Wire driverMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no

Current and power sensors

ComponentDescriptionLicenseSupported onThread safety
ina219Driver for INA219/INA220 bidirectional current/power monitorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ina260Driver for INA260 precision digital current and power monitorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ina3221Driver for INA3221 shunt and bus voltage monitorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Gas sensors

ComponentDescriptionLicenseSupported onThread safety
ccs811Driver for AMS CCS811 digital gas sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mhz19bDriver for MH-Z19B NDIR CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
scd30Driver for SCD30 CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
scd4xDriver for SCD40/SCD41 miniature CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sfa3xDriver for SFA30 formaldehyde detection module (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

GPIO expanders

ComponentDescriptionLicenseSupported onThread safety
mcp23008Driver for 8-bit I2C GPIO expander MCP23008BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mcp23x17Driver for I2C/SPI 16 bit GPIO expanders MCP23017/MCP23S17BSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pca9557Driver for PCA9536/PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-busBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pcf8574Driver for PCF8574 remote 8-bit I/O expander for I2C-busMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pcf8575Driver for PCF8575 remote 16-bit I/O expander for I2C-busMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tca6424aDriver for TCA6424A low-voltage 24-bit I2C I/O expanderBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tca95x5Driver for TCA9535/TCA9555 remote 16-bit I/O expanders for I2C-busBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Humidity sensors

ComponentDescriptionLicenseSupported onThread safety
ahtDriver for AHT10/AHT15/AHT20 temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
am2320Driver for AM2320 temperature and humidity sensor (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bme680Driver for BME680 digital environmental sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
dhtDriver for DHT11, AM2301 (DHT21, DHT22, AM2302, AM2321), Itead Si7021BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
hdc1000Driver for HDC1000 temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
hts221Driver for HTS221 temperature and humidity sensorISCesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sfa3xDriver for SFA30 formaldehyde detection module (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sht3xDriver for Sensirion SHT30/SHT31/SHT35 digital temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sht4xDriver for Sensirion SHT40/SHT41/SHT45 digital temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
si7021Driver for Si7013/Si7020/Si7021/HTU2xD/SHT2x and compatible temperature and humidity sensorsBSD-3-Clauseesp32, esp32c3, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Inertial measurement units

ComponentDescriptionLicenseSupported onThread safety
icm42670Driver for TDK ICM-42670-P 6-Axis IMUISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
l3gxDriver for L3Gx(L3GD20/L3G4200D) 3-axis gyroscope sensorsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
lsm303Driver for LSM303 3-axis accelerometer and magnetometer sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mpu6050Driver for MPU6000/MPU6050 6-axis MotionTracking deviceMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Input device drivers

ComponentDescriptionLicenseSupported onThread safety
buttonHW timer-based driver for GPIO buttonsMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
encoderHW timer-based driver for incremental rotary encodersBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ls7366rDriver for LS7366R Quadrature Encoder CounterMITesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

LED drivers

ComponentDescriptionLicenseSupported onThread safety
ht16k33HT16K33 LED controller driverMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
led_stripRMT-based driver for WS2812B/SK6812/APA106/SM16703 LED stripsMITesp32, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5yes
led_strip_spiSPI-based driver for SK9822/APA102 LED stripsMITesp32, esp32c3, esp8266, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5yes
max7219Driver for 8-Digit LED display drivers, MAX7219/MAX7221BSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pca9632Driver for PCA9632 4-channel PWM chipBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Light sensors

ComponentDescriptionLicenseSupported onThread safety
bh1750Driver for BH1750 light sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tsl2561Driver for light-to-digital converter TSL2561BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tsl2591Driver for light-to-digital converter TSL2591MITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tsl4531Driver for digital ambient light sensor TSL4531BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
veml7700Driver for VEML7700 ambient light sensorISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Magnetic sensors

ComponentDescriptionLicenseSupported onThread safety
hmc5883lDriver for 3-axis digital compass HMC5883L and HMC5983LBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
lsm303Driver for LSM303 3-axis accelerometer and magnetometer sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
qmc5883lDriver for QMC5883L 3-axis magnetic sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
qmi8658cDriver for QMI8658C 6-axis IMU sensorBSD-3-Clauseesp32, esp32c3, esp8266, esp32s2, esp32c3, esp32c6yes

Other misc libraries

ComponentDescriptionLicenseSupported onThread safety
ds3502Driver for nonvolatile digital potentiometer DS3502BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
exampleAn example componentISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61n/a
hd44780Driver for HD44780 compatible LCD text displaysBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
impulse_sensorDriver for impulse output sensorsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
pca9685Driver for 16-channel, 12-bit PWM PCA9685BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
rda5807mDriver for single-chip broadcast FM radio tuner RDA5807MBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tca9548Driver for TCA9548A/PCA9548A low-voltage 8-channel I2C switchBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tda74xxDriver for TDA7439/TDA7439DS/TDA7440D audioprocessorsMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tps63101xDriver for Texas Instruments TPS631012 and TPS631013 1.6-V to 5.5-V Input Voltage 1.5-A Buck-boost Converter with I2CBSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ultrasonicDriver for ultrasonic range meters, e.g. HC-SR04, HY-SRF05BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
wiegandWiegand protocol receiverBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no

Pressure sensors

ComponentDescriptionLicenseSupported onThread safety
bme680Driver for BME680 digital environmental sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bmp180Driver for BMP180 digital pressure sensorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bmp280Driver for BMP280/BME280 digital pressure sensorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
dps310Driver for DPS310 barometric pressure sensorISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ms5611Driver for barometic pressure sensor MS5611-01BA03BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
qmp6988Driver for QMP6988 digital temperature and pressure sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Real-time clocks

ComponentDescriptionLicenseSupported onThread safety
ds1302Driver for DS1302 RTC moduleBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
ds1307Driver for DS1307 RTC moduleBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ds3231Driver for DS1337 RTC and DS3231 high precision RTC moduleMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pcf8563Driver for PCF8563 (BM8563) real-time clock/calendarBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Temperature sensors

ComponentDescriptionLicenseSupported onThread safety
ahtDriver for AHT10/AHT15/AHT20 temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
am2320Driver for AM2320 temperature and humidity sensor (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bh1900nuxDriver for BH1900NUX temperature sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bme680Driver for BME680 digital environmental sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bmp180Driver for BMP180 digital pressure sensorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bmp280Driver for BMP280/BME280 digital pressure sensorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
dhtDriver for DHT11, AM2301 (DHT21, DHT22, AM2302, AM2321), Itead Si7021BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
dps310Driver for DPS310 barometric pressure sensorISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ds18x20Driver for DS18B20/DS18S20 families of 1-Wire temperature sensor ICsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
hdc1000Driver for HDC1000 temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
hts221Driver for HTS221 temperature and humidity sensorISCesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
lm75Driver for LM75, a digital temperature sensor and thermal watchdogISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
max31725Driver for MAX31725/MAX31726 temperature sensorsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
max31855Driver for MAX31855 cold-junction compensated thermocouple-to-digital converterBSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
max31865Driver for MAX31865 resistance converter for platinum RTDsBSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mcp960xDriver for MCP9600/MCP9601, thermocouple EMF to temperature converterBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mcp9808Driver for MCP9808 digital temperature sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ms5611Driver for barometic pressure sensor MS5611-01BA03BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
qmp6988Driver for QMP6988 digital temperature and pressure sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sfa3xDriver for SFA30 formaldehyde detection module (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sht3xDriver for Sensirion SHT30/SHT31/SHT35 digital temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sht4xDriver for Sensirion SHT40/SHT41/SHT45 digital temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
si7021Driver for Si7013/Si7020/Si7021/HTU2xD/SHT2x and compatible temperature and humidity sensorsBSD-3-Clauseesp32, esp32c3, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sts21Driver for STS21 temperature sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sts3xDriver for Sensirion STS30/STS31/STS35 digital temperature sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tsys01Driver for precision digital temperature sensor TSYS01BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Library maintainers

Credits

adc
co2-sensor
dac
esp32
esp32-s2
esp8266
esp-idf
gas-sensor
gpio-extender
humidity-sensor
i2c-device
led-controller
light-sensor
magnetometer
power-monitor
pressure-sensor
pwm
rotary-encoder
temperature-sensor
wiegand

UncleRus/esp-idf-lib

Component library for ESP32-xx and ESP8266

C

1,612

1,568 commits

updated Jan 24, 2026

See the code

README

ESP-IDF Components library

Main CI process Docs Status

[!CAUTION] New project, esp-idf-lib, succeeded this project. We will NOT update this repository. All new issues and PRs will NOT be accepted here. If you find any issues, please visit the relevant component repository. For instance, ads111x's component repository is esp-idf-lib/ads111x.

Visit esp-idf-lib/core/discussions for discussions and questions.

Please do not use this repository!

Components for Espressif ESP32 ESP-IDF framework and ESP8266 RTOS SDK.

Part of them ported from esp-open-rtos.

Supported versions of frameworks and devices

ChipFrameworkVersions
ESP32-xxESP-IDFAll officially supported versions (see Support Period Policy) and master
ESP8266ESP8266 RTOS SDKmaster, v3.4

See "Supported on" column for each of the components.

How to use

ESP32-xx

Clone this repository somewhere, e.g.:

cd ~/myprojects/esp
git clone https://github.com/UncleRus/esp-idf-lib.git

Add path to components in your CMakeLists.txt: e.g:

cmake_minimum_required(VERSION 3.5)
set(EXTRA_COMPONENT_DIRS /home/user/myprojects/esp/esp-idf-lib/components)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(my-esp-project)

or with CMake FetchContent

cmake_minimum_required(VERSION 3.11)
include(FetchContent)
FetchContent_Declare(
  espidflib
  GIT_REPOSITORY https://github.com/UncleRus/esp-idf-lib.git
)
FetchContent_MakeAvailable(espidflib)
set(EXTRA_COMPONENT_DIRS ${espidflib_SOURCE_DIR}/components)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(my-esp-project)

ESP8266 RTOS SDK

Clone this repository somewhere, e.g.:

cd ~/myprojects/esp
git clone https://github.com/UncleRus/esp-idf-lib.git

Add path to components in your project makefile, e.g:

PROJECT_NAME := my-esp-project
EXTRA_COMPONENT_DIRS := /home/user/myprojects/esp/esp-idf-lib/components
EXCLUDE_COMPONENTS := ads130e08 max7219 mcp23x17 led_strip max31865 ls7366r max31855
include $(IDF_PATH)/make/project.mk

As some Kconfig.projbuild files use rsource, which the Kconfig parser of ESP8266 RTOS SDK does not understand, run devtools/rewrite_kconfig.rb to rewrite it before building the examples.

ruby devtools/rewrite_kconfig.rb path/to/Kconfig.projbuild

See GitHub examples or GitLab examples.

Documentation

Components

ADC/DAC libraries

ComponentDescriptionLicenseSupported onThread safety
ads111xDriver for ADS1113/ADS1114/ADS1115 and ADS1013/ADS1014/ADS1015 I2C ADCBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ads130e08Driver for ADS130E08 ADCMITesp32, esp32s3, esp32s2, esp32c3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
hx711Driver for HX711 24-bit ADC for weigh scalesBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
mcp342xDriver for 18-Bit, delta-sigma ADC MCP3426/MCP3427/MCP3428BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mcp4725Driver for 12-bit DAC MCP4725BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pcf8591Driver for 8-bit ADC and an 8-bit DAC PCF8591BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sgm58031Driver for SGM58031 16-bit I2C ADCISCesp32, esp8266, esp32s2, esp32s3, esp32c3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Air quality sensors

ComponentDescriptionLicenseSupported onThread safety
ccs811Driver for AMS CCS811 digital gas sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mhz19bDriver for MH-Z19B NDIR CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
scd30Driver for SCD30 CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
scd4xDriver for SCD40/SCD41 miniature CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sfa3xDriver for SFA30 formaldehyde detection module (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sgp40Driver for SGP40 Indoor Air Quality Sensor for VOC MeasurementsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Battery controllers

ComponentDescriptionLicenseSupported onThread safety
lc709203fDriver for LC709203F battery fuel gaugeISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
max1704xDriver for MAX17043/MAX17044/MAX17048/MAX17049 battery fuel gaugeBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mp2660Driver for MP2660 5V USB, 500mA, I2C-Controlled Linear Charger with Power Path Management for Single-Cell Li-Ion BatteryBSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Common libraries

ComponentDescriptionLicenseSupported onThread safety
calibrationMulti-point calibration libraryBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61n/a
colorCommon library for RGB and HSV colorsMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5n/a
esp_idf_lib_helpersCommon support library for esp-idf-libISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61n/a
framebufferRGB framebuffer componentMITesp32, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5n/a
i2cdevESP-IDF I2C master thread-safe utilitiesMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
lib8tionMath functions specifically designed for LED programmingMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5n/a
noiseNoise generation functionsMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61n/a
onewireBit-banging 1-Wire driverMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no

Current and power sensors

ComponentDescriptionLicenseSupported onThread safety
ina219Driver for INA219/INA220 bidirectional current/power monitorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ina260Driver for INA260 precision digital current and power monitorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ina3221Driver for INA3221 shunt and bus voltage monitorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Gas sensors

ComponentDescriptionLicenseSupported onThread safety
ccs811Driver for AMS CCS811 digital gas sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mhz19bDriver for MH-Z19B NDIR CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
scd30Driver for SCD30 CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
scd4xDriver for SCD40/SCD41 miniature CO₂ sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sfa3xDriver for SFA30 formaldehyde detection module (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

GPIO expanders

ComponentDescriptionLicenseSupported onThread safety
mcp23008Driver for 8-bit I2C GPIO expander MCP23008BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mcp23x17Driver for I2C/SPI 16 bit GPIO expanders MCP23017/MCP23S17BSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pca9557Driver for PCA9536/PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-busBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pcf8574Driver for PCF8574 remote 8-bit I/O expander for I2C-busMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pcf8575Driver for PCF8575 remote 16-bit I/O expander for I2C-busMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tca6424aDriver for TCA6424A low-voltage 24-bit I2C I/O expanderBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tca95x5Driver for TCA9535/TCA9555 remote 16-bit I/O expanders for I2C-busBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Humidity sensors

ComponentDescriptionLicenseSupported onThread safety
ahtDriver for AHT10/AHT15/AHT20 temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
am2320Driver for AM2320 temperature and humidity sensor (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bme680Driver for BME680 digital environmental sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
dhtDriver for DHT11, AM2301 (DHT21, DHT22, AM2302, AM2321), Itead Si7021BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
hdc1000Driver for HDC1000 temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
hts221Driver for HTS221 temperature and humidity sensorISCesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sfa3xDriver for SFA30 formaldehyde detection module (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sht3xDriver for Sensirion SHT30/SHT31/SHT35 digital temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sht4xDriver for Sensirion SHT40/SHT41/SHT45 digital temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
si7021Driver for Si7013/Si7020/Si7021/HTU2xD/SHT2x and compatible temperature and humidity sensorsBSD-3-Clauseesp32, esp32c3, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Inertial measurement units

ComponentDescriptionLicenseSupported onThread safety
icm42670Driver for TDK ICM-42670-P 6-Axis IMUISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
l3gxDriver for L3Gx(L3GD20/L3G4200D) 3-axis gyroscope sensorsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
lsm303Driver for LSM303 3-axis accelerometer and magnetometer sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mpu6050Driver for MPU6000/MPU6050 6-axis MotionTracking deviceMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Input device drivers

ComponentDescriptionLicenseSupported onThread safety
buttonHW timer-based driver for GPIO buttonsMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
encoderHW timer-based driver for incremental rotary encodersBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ls7366rDriver for LS7366R Quadrature Encoder CounterMITesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

LED drivers

ComponentDescriptionLicenseSupported onThread safety
ht16k33HT16K33 LED controller driverMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
led_stripRMT-based driver for WS2812B/SK6812/APA106/SM16703 LED stripsMITesp32, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5yes
led_strip_spiSPI-based driver for SK9822/APA102 LED stripsMITesp32, esp32c3, esp8266, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5yes
max7219Driver for 8-Digit LED display drivers, MAX7219/MAX7221BSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pca9632Driver for PCA9632 4-channel PWM chipBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Light sensors

ComponentDescriptionLicenseSupported onThread safety
bh1750Driver for BH1750 light sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tsl2561Driver for light-to-digital converter TSL2561BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tsl2591Driver for light-to-digital converter TSL2591MITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tsl4531Driver for digital ambient light sensor TSL4531BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
veml7700Driver for VEML7700 ambient light sensorISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Magnetic sensors

ComponentDescriptionLicenseSupported onThread safety
hmc5883lDriver for 3-axis digital compass HMC5883L and HMC5983LBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
lsm303Driver for LSM303 3-axis accelerometer and magnetometer sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
qmc5883lDriver for QMC5883L 3-axis magnetic sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
qmi8658cDriver for QMI8658C 6-axis IMU sensorBSD-3-Clauseesp32, esp32c3, esp8266, esp32s2, esp32c3, esp32c6yes

Other misc libraries

ComponentDescriptionLicenseSupported onThread safety
ds3502Driver for nonvolatile digital potentiometer DS3502BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
exampleAn example componentISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61n/a
hd44780Driver for HD44780 compatible LCD text displaysBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
impulse_sensorDriver for impulse output sensorsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
pca9685Driver for 16-channel, 12-bit PWM PCA9685BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
rda5807mDriver for single-chip broadcast FM radio tuner RDA5807MBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tca9548Driver for TCA9548A/PCA9548A low-voltage 8-channel I2C switchBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tda74xxDriver for TDA7439/TDA7439DS/TDA7440D audioprocessorsMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tps63101xDriver for Texas Instruments TPS631012 and TPS631013 1.6-V to 5.5-V Input Voltage 1.5-A Buck-boost Converter with I2CBSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ultrasonicDriver for ultrasonic range meters, e.g. HC-SR04, HY-SRF05BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
wiegandWiegand protocol receiverBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no

Pressure sensors

ComponentDescriptionLicenseSupported onThread safety
bme680Driver for BME680 digital environmental sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bmp180Driver for BMP180 digital pressure sensorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bmp280Driver for BMP280/BME280 digital pressure sensorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
dps310Driver for DPS310 barometric pressure sensorISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ms5611Driver for barometic pressure sensor MS5611-01BA03BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
qmp6988Driver for QMP6988 digital temperature and pressure sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Real-time clocks

ComponentDescriptionLicenseSupported onThread safety
ds1302Driver for DS1302 RTC moduleBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
ds1307Driver for DS1307 RTC moduleBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ds3231Driver for DS1337 RTC and DS3231 high precision RTC moduleMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
pcf8563Driver for PCF8563 (BM8563) real-time clock/calendarBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Temperature sensors

ComponentDescriptionLicenseSupported onThread safety
ahtDriver for AHT10/AHT15/AHT20 temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
am2320Driver for AM2320 temperature and humidity sensor (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bh1900nuxDriver for BH1900NUX temperature sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bme680Driver for BME680 digital environmental sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bmp180Driver for BMP180 digital pressure sensorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
bmp280Driver for BMP280/BME280 digital pressure sensorMITesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
dhtDriver for DHT11, AM2301 (DHT21, DHT22, AM2302, AM2321), Itead Si7021BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
dps310Driver for DPS310 barometric pressure sensorISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ds18x20Driver for DS18B20/DS18S20 families of 1-Wire temperature sensor ICsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61no
hdc1000Driver for HDC1000 temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
hts221Driver for HTS221 temperature and humidity sensorISCesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
lm75Driver for LM75, a digital temperature sensor and thermal watchdogISCesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
max31725Driver for MAX31725/MAX31726 temperature sensorsBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
max31855Driver for MAX31855 cold-junction compensated thermocouple-to-digital converterBSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
max31865Driver for MAX31865 resistance converter for platinum RTDsBSD-3-Clauseesp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mcp960xDriver for MCP9600/MCP9601, thermocouple EMF to temperature converterBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
mcp9808Driver for MCP9808 digital temperature sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
ms5611Driver for barometic pressure sensor MS5611-01BA03BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
qmp6988Driver for QMP6988 digital temperature and pressure sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sfa3xDriver for SFA30 formaldehyde detection module (I2C)BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sht3xDriver for Sensirion SHT30/SHT31/SHT35 digital temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sht4xDriver for Sensirion SHT40/SHT41/SHT45 digital temperature and humidity sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
si7021Driver for Si7013/Si7020/Si7021/HTU2xD/SHT2x and compatible temperature and humidity sensorsBSD-3-Clauseesp32, esp32c3, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sts21Driver for STS21 temperature sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
sts3xDriver for Sensirion STS30/STS31/STS35 digital temperature sensorBSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes
tsys01Driver for precision digital temperature sensor TSYS01BSD-3-Clauseesp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61yes

Library maintainers

Credits

adc
co2-sensor
dac
esp32
esp32-s2
esp8266
esp-idf
gas-sensor
gpio-extender
humidity-sensor
i2c-device
led-controller
light-sensor
magnetometer
power-monitor
pressure-sensor
pwm
rotary-encoder
temperature-sensor
wiegand

Project health

Overall

3.5/10

Maintained

0/10

Code review

7/10
OpenSSF Scorecard

Significant stargazers

Ivan Kravets

821 followers · starred Feb 2022

Lóránt Pintér

80 followers · starred Dec 2024

Shen Yiming

67 followers · starred Nov 2024

Nikita Khomyakov

31 followers · starred Mar 2023