 So you have this 5V microcontroller, powered by 5V and speaking 5V only on its digital IO pins. To communicate safely with a 3.3V board, like say an I2C-based sensor, you'll need a translator, specifically a logic-level shifter. This board will convert the voltage levels and make communication safe and possible. Because I'm using this for I2C communication, I chose the BSS-138 level converter. It uses NXP's official method for shifting between I2C devices with pull-up resistors to boot. Just make sure you put the lower voltage signal, like 3V, on the LV side, and the higher voltage signal on the HV side. This board can also be used for UART serial and very slow SPI data. Just not a great pick for neopixels or high-speed signals.