An I2C logic level converter/translator with integrated voltage regulator
When using I2C to interface devices operating at different voltages, for example an Arduino running at 5 Volts and a sensor running at 3.3 Volts, it's usually a best practice to use a logic level converter/translator to translate one logic signal from one voltage to the other and vice versa.
There are devices which will work without problems even without a logic level converter (for example I used the ADXL345, the ITG3200 and the HMC5843 without it) but once you want to get very good precision it may be worth using a logic level converter. Moreover there are many devices which could get damaged if used without one.
There are some ready to use solutions, for example Sparkfun Logic Level Converter but in my opinion they over complicate the problem.
So, I decided it was worth designing a very simple I2C specific logic level converter. For convenience I also included a voltage regulator and optional I2C pullups resistors. The idea is that with this device you will be able to simply connect a 3.3V device to a 5V with the I2C translator in the middle and forget about anything else.
So, here it is, fresh from KiCAD:
You should be able to etch this at home without problems, I'll get three copies of it in the next pcb order.
You can get the most updated designs of the I2C logic level converter from my personal Bazaar repository with the command: