"perfect" logic level shifting

Use the Sparkfun circuit... and use 2N7000's I've done it twice and BOTH worked perfectly. The 2N7000's can plug into an IC socket... Too. Not SMD. CHEAP and easy to do. See the NXP10441 App Note that I included with this post. It gooes through... with great detail what is necesssary. The IC's (the true Bi-Directional level shifters) are similar to the App note concept, just in a single package, SMD and difficult to deal with. The devices were designed to eliminate the necessity of placing all the parts required for the Mosfet idea. A GREAT idea for reduced production cost's BUT hardly an initial requirement here. When your device is debugged and you haave your first order for 1K pieces... Then BY ALL means use the IC's. The Logic gates, transmission gates (CD4066) and other ideas either are one way or they aren't capable of any current (@ 3V3 a CD4066 has about 500 ohms of series resistance... with that and a few hundred pF of board capacity... you have a great first order low pass filter... Not so great for I2C or SPI... As those signal bus's operate at a speed high enough to be crippled by a filter with a 100 KHz corner frequency. I modeled both the Mosfet and a Bi-Polar variant in MultiSim 11 before I choose the 2N700'0s. Both simulated perfectly and the Mosfet version looked real good when I looked at it with my O'scope... In Circuit between a BMP085 and an Uno Nice "Crispy Sharp" edges on both clock and data. It only takes 2 Mosfets (in TO-92 packages and the same pin lineup as a 2N3904 except gate for base, source for emitter and drain for collector) because you will already have or need the 3V3 and 5V pull-ups... So just 2 cheap parts. I've got about 20 of them... PM me If I can Help. AND READ the App note... Too.
{Edit Doc}

Doc

AN10441.pdf (52.4 KB)