Yes - exactly! The 3.3V devices on the Source-side of the FETs, pullup with 'R' to 3.3V; The 5.0V devices on the Drain-side, pullup with 'R' to 5V; FET gates tied to 3.3V Whole thing is bi-directional. That way, I can be assured, without changing the Arduino Wire.h source, or, more probably - re-installing / updating / moving to another machine where the 'comment-out' in twi.c hasn't been done - none of these will harm the Si570. So you can feel comfortable, a year later, re-programming or updating the code without thinking: "Hmm... now did I comment out those pullups in twi.c?" (or, if you're using a Mega - no dismembering pullup resistors from the board... It's two FETs, 4 resistors - I don't even think you need 10k resistors, values not critical. FETs aren't critical BS170 (identical to 2N7000). Mike Y ------------ From: Dan Reynolds <on30ng@xxxxxxxxx> Date: Wed, 29 Jan 2014 16:54:21 -0600 Subject: [minima] Re: Wire.h library modifications Michael, is it like this circuit: http://www.nxp.com/documents/application_note/AN10441.pdf I saw one application and they used 10K resistors. Seems like this would be handy too when changing the code on the Arduino chip while it is in circuit. A good "just in case" handy thing to have in place (like a diode in the power supply line...). -- .. Mike Yancey Dallas, Texas http://www.mikeyancey.com ............................................................................ "The problem with Internet quotations is that many are not genuine." - Abraham Lincoln