Component library for ESP32-xx and ESP8266
[!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.
| Chip | Framework | Versions |
|---|---|---|
| ESP32-xx | ESP-IDF | All officially supported versions (see Support Period Policy) and master |
| ESP8266 | ESP8266 RTOS SDK | master, v3.4 |
See "Supported on" column for each of the components.
Clone this repository somewhere, e.g.:
cd ~/myprojects/esp
git clone https://github.com/UncleRus/esp-idf-lib.gitAdd 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)Clone this repository somewhere, e.g.:
cd ~/myprojects/esp
git clone https://github.com/UncleRus/esp-idf-lib.gitAdd 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.mkAs 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.projbuildSee GitHub examples or GitLab examples.
| Component | Description | License | Supported on | Thread safety |
|---|---|---|---|---|
| ads111x | Driver for ADS1113/ADS1114/ADS1115 and ADS1013/ADS1014/ADS1015 I2C ADC | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| ads130e08 | Driver for ADS130E08 ADC | MIT | esp32, esp32s3, esp32s2, esp32c3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| hx711 | Driver for HX711 24-bit ADC for weigh scales | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | no |
| mcp342x | Driver for 18-Bit, delta-sigma ADC MCP3426/MCP3427/MCP3428 | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| mcp4725 | Driver for 12-bit DAC MCP4725 | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| pcf8591 | Driver for 8-bit ADC and an 8-bit DAC PCF8591 | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| sgm58031 | Driver for SGM58031 16-bit I2C ADC | ISC | esp32, esp8266, esp32s2, esp32s3, esp32c3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| Component | Description | License | Supported on | Thread safety |
|---|---|---|---|---|
| ccs811 | Driver for AMS CCS811 digital gas sensor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| mhz19b | Driver for MH-Z19B NDIR CO₂ sensor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | no |
| scd30 | Driver for SCD30 CO₂ sensor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| scd4x | Driver for SCD40/SCD41 miniature CO₂ sensor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| sfa3x | Driver for SFA30 formaldehyde detection module (I2C) | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| sgp40 | Driver for SGP40 Indoor Air Quality Sensor for VOC Measurements | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| Component | Description | License | Supported on | Thread safety |
|---|---|---|---|---|
| lc709203f | Driver for LC709203F battery fuel gauge | ISC | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| max1704x | Driver for MAX17043/MAX17044/MAX17048/MAX17049 battery fuel gauge | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| mp2660 | Driver for MP2660 5V USB, 500mA, I2C-Controlled Linear Charger with Power Path Management for Single-Cell Li-Ion Battery | BSD-3-Clause | esp32, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| Component | Description | License | Supported on | Thread safety |
|---|---|---|---|---|
| calibration | Multi-point calibration library | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | n/a |
| color | Common library for RGB and HSV colors | MIT | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5 | n/a |
| esp_idf_lib_helpers | Common support library for esp-idf-lib | ISC | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | n/a |
| framebuffer | RGB framebuffer component | MIT | esp32, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5 | n/a |
| i2cdev | ESP-IDF I2C master thread-safe utilities | MIT | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| lib8tion | Math functions specifically designed for LED programming | MIT | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c6, esp32h2, esp32p4, esp32c5 | n/a |
| noise | Noise generation functions | MIT | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | n/a |
| onewire | Bit-banging 1-Wire driver | MIT | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | no |
| Component | Description | License | Supported on | Thread safety |
|---|---|---|---|---|
| ina219 | Driver for INA219/INA220 bidirectional current/power monitor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| ina260 | Driver for INA260 precision digital current and power monitor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| ina3221 | Driver for INA3221 shunt and bus voltage monitor | MIT | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| Component | Description | License | Supported on | Thread safety |
|---|---|---|---|---|
| ccs811 | Driver for AMS CCS811 digital gas sensor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| mhz19b | Driver for MH-Z19B NDIR CO₂ sensor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | no |
| scd30 | Driver for SCD30 CO₂ sensor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
| scd4x | Driver for SCD40/SCD41 miniature CO₂ sensor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, |
No open issues yet, or sync has not completed.