Has anyone actually gotten the SparkFun LSM303 board to talk to the Arduino?
Can it be done without level shifters?
The two I2C pins are analog pins, after all. Can't the code be modified to interpret 1.8V as a one? Darned if I can find where, though!
The Wire I2C library is written for a 5V I2C system, as far as I can tell, not a 3.3V or (why?) a 1.8V one. The pullups on the SparkFun board are just to 1.8V, though, and the chip is only rated for a maximum 2.1V input.
Barring a solution to this, if you're looking for an LSM303 breakout board, go with the Pololu one, with built-in 5V level shifters!
The analog pins in the arduino are in fact digital pins that also have the capabilitie of being connected to the internall adc, but you can use then as digital pins, and well i2c is a digital interface and not an analogue one, so when using i2c you are using the pins in digital mode, if you disable the internal pull-ups and use external ones you can interface directly with a 3.3v i2c bus, but thats on the limit of what the arduino can interpret as distinct logic levels, the HIGH must be a signal with more than 3v and 3.3v is right in the water mark, to talk with an 1.8v bus you must use a logic level converter, like the one posted above.