• Well, the Pico is 5v tolerant, but it works like this:

    • As an input - up to 5v
    • As an open drain output - up to 5v
    • As an output, 3.3v

    The problem is that if the Pico tries to output a 1, it effectively shorts the pin to the 3.3v line, which ends up pumping more voltage into the Espruino itself.

    Having said that, I2C itself should be fine, since usually you have pullup resistors, and the devices themselves only pull the voltage down to 0. It means that even when there's a 1 being transmitted, you've only got 5v applied via a relatively large (4k?) resistor, which is no problem for Espruino if it does connect it to 3.3v (which it shouldn't because I2C configures outputs in Open Drain).

    So you're fine, basically.

About

Avatar for Gordon @Gordon started