Skip to content

Peripheral catalogue

A peripheral is a component on the board's own I²C or SPI bus — a sensor, a converter, an expander, a clock. It is added to a project by picking it from this catalogue, not by writing a driver: see adding peripherals to a board.

Every component gets one page, with its photo, what it does, its parameters, how it is wired and where its datasheet is. The page is meant to be the short datasheet — enough to choose the part and wire it without opening the manufacturer's PDF, with the PDF one click away when you do need it.

Supported today

These have a driver in inoCORE and can be used now.

Component Bus What it is
ADS1115 I²C Four analogue inputs, 16-bit
TCA9555 I²C Sixteen digital inputs and outputs
PCF8563 I²C Real-time clock, battery backed

Written up next

Chosen, with a page each, but without a driver yet.

Component Bus What it is
BME280 I²C, SPI Temperature, humidity and pressure
SHT4x I²C Temperature and humidity, the accurate kind
BH1750 I²C Ambient light
INA219 I²C Current, voltage and power on a rail
MAX31865 SPI PT100 and PT1000 temperature probes

A new component needs a release, not just an entry

There is no generic driver that reads any I²C chip. Each component gets a real driver, written and tested against the part, and arrives with a version of the software. That is a deliberate trade: the catalogue grows at the speed of releases, and in exchange every entry in it has been made to work rather than assumed to.


The range being worked towards

Below is every component on an I²C or SPI bus that ESPHome supports, which is the range this catalogue is aimed at. None of them has a driver yet beyond the three above; they are here so that what is coming is visible rather than guessed at, and so that a part already on your desk can be found.

A part moves up into the tables above when its driver ships and its page is written.

Temperature

Part Bus What it is
tmp102 tmp1075 tmp117 I²C Digital temperature, the accurate small ones
lm75b tc74 mcp9808 bh1900nux stts22h I²C Digital temperature, general purpose
sts3x I²C Temperature only, Sensirion
mlx90614 I²C Infrared, measures a surface without touching it
max6675 max31855 max31856 SPI Thermocouple inputs — type K and the rest
max31865 SPI PT100 and PT1000 probes

Temperature and humidity

Part Bus What it is
sht3xd sht4x shtcx I²C Sensirion, in rising order of accuracy and price
htu21d htu31d I²C The common alternative
hdc1080 hdc2080 hdc302x I²C Texas Instruments
am2320 hyt271 hte501 tee501 I²C Others in the same job
honeywell_hih_i2c I²C Honeywell, the industrial one
ms8607 I²C Temperature, humidity and pressure in one

Pressure

Part Bus What it is
lps22 spa06 I²C, SPI Barometric
xgzp68xx xdb401 npi19 tem3200 I²C Pressure transducers, for liquids and gases
sdp3x I²C Differential pressure — across a filter, along a duct
fs3000 I²C Air velocity

Air quality and gas

Part Bus What it is
scd30 scd4x I²C Carbon dioxide, measured properly
ee895 I²C Carbon dioxide, pressure and temperature
sgp30 sgp4x sfa30 I²C Volatile compounds, and formaldehyde
ccs811 iaqcore ags10 I²C Air quality, the cheaper approach
bme680_bsec bme68x_bsec2 I²C Bosch, with the manufacturer's air quality algorithm
sen5x sen6x sps30 pmsa003i I²C Particulate matter
mics_4514 grove_gas_mc_v2 gl_r01 I²C Specific gases

Light and colour

Part Bus What it is
bh1750 max44009 opt3001 veml7700 tsl2591 I²C Ambient light in lux
ltr390 ltr501 ltr_als_ps I²C Light, some with ultraviolet or proximity
as7341 I²C Colour, across eleven bands

Distance and presence

Part Bus What it is
vl53l0x tof10120 I²C Time-of-flight, up to a couple of metres
zio_ultrasonic I²C Ultrasonic range
at581x I²C Radar presence
qwiic_pir I²C Passive infrared movement

Motion, magnetic field and angle

Part Bus What it is
mpu6050 mpu6886 bmi160 bmi270 lsm6ds qmi8658 I²C Accelerometer and gyroscope
hmc5883l qmc5883l mmc5603 mmc5983 mlx90393 I²C Magnetic field — a compass, or sensing a magnet
as5600 I²C Magnetic angle, for a shaft with no contact

Current, voltage and power

Part Bus What it is
ina219 ina226 ina260 ina2xx ina3221 I²C, SPI Current and voltage on a DC rail
ade7880 ade7953 atm90e26 atm90e32 cs5460a I²C, SPI Mains energy metering
max17043 I²C Battery state of charge
sy6970 I²C Battery charging

Analogue in and out

Part Bus What it is
ads1115 mcp3221 I²C Analogue inputs
ads1118 mcp3008 mcp3204 adc128s102 SPI Analogue inputs
dac7678 I²C Analogue outputs
pca9685 tlc59208f I²C PWM outputs, for dimming and servos

Digital inputs and outputs

Part Bus What it is
tca9555 pcf8574 pca9554 pca6416a xl9535 I²C Port expanders
mcp230xx sx1509 max6956 pi4ioe5v6408 I²C Port expanders
ch422g ch423 waveshare_io_ch32v003 I²C Port expanders
sn74hc595 SPI Shift register outputs
weikai I²C, SPI Extra serial ports
tca9548a I²C Bus multiplexer — for eight parts that share one address

Touch and identification

Part Bus What it is
cap1188 mpr121 I²C Capacitive touch pads
pn532 rc522 pn7150 pn7160 I²C, SPI RFID and NFC readers

Liquid and soil

Part Bus What it is
ezo ezo_pmp I²C Atlas Scientific probes — pH, conductivity, dosing
ufire_ec ufire_ise I²C Conductivity and ion-selective probes
pmwcs3 I²C Soil moisture

Radio

Part Bus What it is
sx126x sx127x SPI LoRa transceivers
cc1101 SPI Sub-gigahertz transceiver

Other

Part Bus What it is
mcp2515 SPI A second CAN interface
bm8563 I²C Real-time clock
ds2484 I²C A bridge to 1-Wire devices
emc2101 grove_tb6612fng I²C Fan control, and a small motor driver
aic3204 es8311 es8388 es8156 pcm5122 es7210 es7243e I²C Audio converters
i2c_device I²C A raw device, addressed and written by hand

Displays

Listed for completeness, but a display is not a peripheral here. It belongs to the board definition, because its pins and its controller are compiled in — see display controllers.

Part Bus What it is
ssd1306 ssd1327 st7567 lcd_display I²C, SPI Small monochrome panels
st7789v st7735 ili9xxx mipi_spi qspi_dbi SPI Colour panels
ssd1322 ssd1325 ssd1331 ssd1351 st7920 pcd8544 SPI Monochrome and small colour panels
waveshare_epaper epaper_spi it8951 SPI Electronic paper
max7219 max7219digit hub75 pixoo SPI LED matrices and seven-segment displays

What each page contains

Same shape every time, so a page can be read at a glance and written without deciding the format again:

Section What goes in it
Photo The component as you will recognise it in a bag of parts.
What it does Two or three sentences, in plain words.
Parameters The table: ranges, accuracy, resolution, supply, current.
Bus and addressing Which bus, which addresses, how the address is set.
Wiring The diagram, and what is needed besides the four wires — pull-ups, a reference resistor, a shunt.
In a project The lines that appear in the project, and the tags that come out.
Traps The mistakes that cost a day with this particular part.
Datasheet A link to the manufacturer's page.