Half of all “my sensor doesn’t work” problems are I2C problems. These guides cover bus wiring and pull-ups, address scanning and conflicts, 3.3V↔5V level shifting, and running multiple identical devices with a multiplexer — with working examples on Arduino, ESP32, and Pi. The exact converters and expanders used in the guides are below.
Shop the parts used in these tutorials
Pre-Soldered I2C Logic Level Converter 3.3V-5V Bi-Directional for Arduino, Raspberry Pi, ESP32 & Pico
$6.25
TCA9548A Pre-Soldered 1-to-8 I2C 8-Channel Multiplexer Module
$9.99
ADS1115 Pre-Soldered ADC Analog to Digital Converter Module for Arduino & Raspberry Pi
$9.75
BH1750 Pre-Soldered Digital Light Sensor for Arduino & Raspberry Pi
$6.98Raspberry Pi Pico W MPU6050: Improve IMU accuracy
Calibrate an MPU6050 IMU on a Raspberry Pi Pico W with MicroPython to compute offsets and improve gyro and accelerometer accuracy with...
Raspberry Pi Pico BME280: Read sensor data in MicroPython
Build a Raspberry Pi Pico + BME280 MicroPython sensor reader to measure temperature, humidity, and pressure quickly for weather and IoT projects...
Raspberry Pi Pico MPU6050: Read motion data
Build a Raspberry Pi Pico (or Pico W) + MPU6050 setup to read acceleration, gyro, and temperature in Thonny for fast motion...