5396-POLOLU, Pololu Isolated USB-to-I²C Adapter
This USB-to-I²C adapter enables a PC or other USB host to act as the controller on an I²C bus, reading and writing data from I²C target devices. It supports clock stretching and I²C clock speeds over 1 MHz. The adapter features full galvanic isolation between the USB and I²C sides, preventing unwanted current flow and protecting the USB host from damaging voltages. This version does not provide USB power to the I²C bus, so a supply voltage between 2.25 V and 5.5 V must be externally applied on the I²C side.
Overview
This adapter functions as a bridge between I²C devices and a USB host, supporting bidirectional communication with clock stretching and I²C clock speeds beyond 1000 kHz. It provides complete galvanic isolation between the USB and I²C sides, safeguarding the USB host from any harmful voltages on the I²C bus. (Note: The adapter itself may be damaged in such cases, but isolation prevents damage from propagating to the USB host.)
The module features a USB Type-C connector. On the USB side, it presents as a virtual serial port (CDC ACM), so it is recognized by major operating systems (Windows 10+, Linux, macOS) without requiring drivers. Any programming environment that can read/write binary data over a serial port is compatible. A Python library is provided, and the STM32C071G8 firmware is open source for developers interested in customization.
The I²C side includes a JST SH-style 4-pin connector compatible with SparkFun’s Qwiic and Adafruit’s STEMMA QT systems. The four I²C pins are also broken out to 0.1″-pitch through-holes for compatibility with standard headers.
Connections
Pin | Cable color | Function |
---|---|---|
1 | Black | I²C ground (GND); not connected to USB GND |
2 | Red | I²C input voltage (VCC); user must supply 2.25 V to 5.5 V across this pin and GND |
3 | Blue | I²C data line (SDA) |
4 | Yellow | I²C clock line (SCL) |
Schematic