Level shifting I2C

Bi-directional level shifting using a single MOS-FET

Level shifting is normally pretty straight forward. A voltage divider for down, a transistor for up shifting. But certain buses such as I2C require bi-directional level shifting. Here's a little circuit that does just that with a single MOS-FET.

It can come in handy the next night you run all out off those specialty ICs again.

Nope, this wasn't my idea. It's an old Phillips app note (see reference below). So yep, it'll work :]

Connecting a 5V Arduino to a 3V sensor over I2c

The resulting signals on both sides look great