Bidirectional voltage translators are inexpensive (I have a preassembled SparkFun board with four of them that cost something like $4) and tiny (maybe 1-2mm across). Add 2-4 of them to the new Teensy, using some combination of cuttable traces and bridgeable solder pads. By default, the pins they're for would still run at 3.3 (to keep stock compatibility) - but if you cut traces and/or jump the right pads, the level translators get looped into the circuit. Now, you can talk to 5V peripherals natively!
I'm not a fan of bidirectional level translation.
I believe an overly optimistic attitude is prevalent in the Maker and hobbyist electronics community, regarding the capability and usefulness of such circuits.
For example,
this Adafruit product is described as:
While we designed it for use with I2C, this works great for SPI, TTL Serial, and any other digital interface both uni-directional and bidirectional.
The problem is it does
NOT work great for SPI. In fact, it's absolutely terrible for SPI. Likewise for serial at baud rates above 9600.
Adafruit's page does admit "10K's do make the interface a little more sluggish than using a TXB0108 or 74LVC245". That's quite an understatement. It's very slow, and the slowness is difficult to predict, since it depends on the capacitance of whatever you're connecting, plus stray capacitance of wiring, which is often significant in DIY projects.
The slowness isn't uniform. Falling edges propagate quickly and predictably, but rising edges are slow and can vary quite a lot. The result can be very significant waveform distortion. That's really horrible for PWM signals. Protocols like WS2812/Neopixel, which depend on pulse shapes, can be badly corrupted. Even clocked digital protocols, like 74HC595 shift register control, can be ruined if the clock connects to many chips using long wires (much slower rise times) but the data connects to a single pin with a short wire.
A particularly painful aspect of the slowness is that corruption of waveforms can go unnoticed, where signals that should have plenty of timing margin are just barely working. Unreproducible, infrequent and unpredictable problems can be the most painful of all.
But slow performance is only part of the trouble....
Numerous forum threads have shown novices do not understand the weak high level output. Plenty of people have purchased these, intending to drive blue LEDs, or long wires, or the gates of mosfet transistors, or even small relays & motors! The result for pretty much anything other than open collector protocols like I2C is often somewhere between poor performance and simply not working at all.
A lesser issue is the gate to source capacitance. It's another hidden "gotcha" in this circuit.
However, for hobbyists who aren't electrical engineers, language like "works great for ... any other digital interface" prompts them to adopt these products as a general purpose mixed-voltage interfacing strategy. The thinking often goes that it'll be a handy item to have laying around, whenever 2 digital things with different voltages need to talk to each other.
In reality, it's really only a good idea for a very limited class of signals, with I2C being the only very common case.
The more expensive TXB0108 and similar chips solve much of the slowness issue by implementing a one-shot timer that turns on a strong pullup or pulldown transistor briefly when the direction is detected as changing. But it's important to realize the output is still a very weak drive after the one-shot timer. It's poor at driving loads. It's also susceptible to noise falsely triggering a change of direction, which is a problem not present with the simple transistor circuit. Unintended direction changes can be really tough to diagnose, especially if connecting a scope or multimeter changes the nature of the noise problem!
So I don't like the idea of promoting bidirectional logic level conversion as a general purpose solution. Certainly the simple transistor circuit and fancy TXB0108 have their uses, but promoting them to makers and hobbyists as general purpose digital interfacing solutions is not something you'll see PJRC doing.
I know Adafruit, Sparkfun and everyone else does. I really wish they'd give their customers more realistic expectations.