The rig pictured above works as an Internet connected temperature sensor which sends [Zaion] an email with a graph of the change over time. This in itself is interesting, but one part in particular caught our eye. He’s using an i2c temperature sensor , and we think the PCA9517 Level-Translating I2C Bus Repeater that makes it possible is a perfect match for the RPi.

This is a Texas Instruments part. You can find more about it from the company’s product page. The key words in the name of the chip are ‘Level-Translating’. This has two bus connections, each with variable voltage levels. On side A the bus can be 0.9V to 5.5V. On side B the bus range is 2.7V to 5.5V. Since the Raspberry Pi I/O pins operate at 3.3V this could connect to the B side, give you the ability to interface with i2c parts rated for lower or higher voltages. This is especially handy for folks who started with the Arduino and own mostly 5V compliant prototyping hardware.

The part comes in a SOIC package, which you can easily hand solder and will costs around $1 depending on the supplier.

The PCA9517 chip seems nice, but it’s not actually serving any function here.

No voltage translation is necessary, as the temperature sensor also operates at 3.3V.

As for the long bus length and high capacitance, I2C is inherently tolerant of that; all you have to do is clock the data slower. With one temperature sample every 20 seconds, a lower clock speed is hardly a limitation.

uh… although the PCA9517 can be used for level translation, the primary function is that of a repeater. for simple I2C level translation the PCA9306 is a much better choice, as it has a much wider range of voltage support, higher frequency support, AND it is widely available already mounted on breakout boards:

I haven’t tried it, but sounds reasonable. I’d expect it could require lower clock rates, as logic high would be near the top of the RC charge curve; where R is the pull-up resistor and C is the bus capacitance.

Maybe you have a power issue. Do you use a powered hub? I had to short the usb fuses and add a capacitor in order to get it work. Please check the voltage on the wifi dongle if it drop below 5V during connection/trasmission.