I'm not sure if this is the correct area for this issue, but it is the most applicable that I 've found.
History: I have some 3.3V I2C peripherals which are not 5V tollerant. I2C friendly,Bidirectional Level Translators would seem to be the common solution. I have a real hard time hand soldering mini SMD's and do not like reflow. Plus, "Keep It Simple Stupid" works really well for me.... Mike Cook (Grumpy Mike) posted a response to another thread in the general electronics section which indicated that: 1) if you could 'HACK' thw Wire library to turn off internal pull ups ( on A04 & A05), and 2) (i think that this is what he meant) connected the Analog Ref in to 3.3V, and 3) ran your pull ups to 3.3V bus, you could do I2C with these types of devices without the need of level translators (again, this is what I think he was getting at. Have'nt been able to get him to respond to the thread to confirm or deny).
My Objective: If my assumptions are correct, why can'nt someone add a function to (NOT the Wire lib, but to:) twi.c in /libraries/Wire/utility/... to turn off the pull ups used by I2C? "twi_init(void)" in twi.c (arduino 0022, I haven't had a chance to check 1.0 yet) sets the port bits to enable the pull ups, based upon the type of controller. Is there a simple way to add parameter checking to stop this process, or, a function to reverse it? Or is there a way to do it in the user's (my) code?
I'm old and senile, but I aint stupid (though many others have disputed that issue), but I don't have enough smarts to put this one together....
Thanks for any help and consideration.