Forum rules
Talk about Adafruit Raspberry Pi® accessories! Please do not ask for Linux support, this is for Adafruit products only! For Raspberry Pi help please visit: http://www.raspberrypi.org/phpBB3/

I have a Pi with the LCD module, the ultimate GPS, and the servo driver. I can see the LCD with i2cdetect at address 0x20 and I can successfully control it. So it appears the i2c bus is functional. I can also talk to the GPS even though I can't get a fix yet (indoors).

When I run i2cdetect, I expect to see the servo driver at address 0x40 but there is nothing there. The power LED on the PWM driver board comes on when the Pi is powered on. When I turn the external power supply on, the servo twitches once but of course without the device available on the bus, the python example fails to do anything. I have checked all the wiring multiple times and I don't see any problems.

At this point I suspect that I may have a faulty servo driver board. Please help.I will post pictures of my setup shortly.

Let's check one last thing before officially declaring that unit dead.. your solder joints look good, but much painful debugging has taught me never to trust anything I haven't verified instrumentally.

We know the connections between your RasPi and the LCD plate work, so let's check from there:

With the ribbon cable and power disconnected, do a continuity test between the SDA/SCK pins in the GPIO header and the corresponding pins on the MCP23017:

chipplace.jpg (70.64 KiB) Viewed 347 times

Once you're sure you have the right pins on the chip, plug in the ribbon cable and test continuity between those and the SDA/SCK pins on the breakout. If the connections are good, there's probably something wrong with the breakout. OTOH, if you find an open connection, you can spend five minutes with the soldering iron rather than a few days waiting on an RMA.

When you void a product warranty, you give up your right to sue the manufacturer if something goes wrong and accept full responsibility for whatever happens next. And then you truly own the product.

I followed your instructions and figured out I had a short between 3v3 and SDA on the perma PROTO board. Even after the meter indicated this, it was hard to see the short. I had a very fine line of solder jump the gap between these two lines.

Unfortunately it's still not working even after I removed the short. The question now is: did I damage the PWM board or the Pi or both? How do I tell? When I check impedance between the 3v3 pin and the SDA Pins on the Pi header, I get a reading of around 1800 ohms. Is that normal?

I don't think shorting to 3v3 will damage the I2C pins, but there's an easy up/down test: if your LCD still works, the RasPi is fine.

The ~1800 ohm resistance you saw is normal, and in fact necessary. I2C requires a pull-up resistor on the SDA and SCK lines. The devices themselves don't generate signals, they just have 'open drain' mosfets that pull the lines LOW when they need to send data. It's a technique that allows an arbitrary number of devices to use the same bus, and prevents nasty problems that can happen when one device wants to send a HIGH signal while another device wants to send a LOW signal.

Do you have any kind of instrument that can trace dynamic signals.. oscilloscope, logic analyzer, etc? Multimeters are great at measuring fixed signals, but debugging a data connection with one is about 95% luck.

When you void a product warranty, you give up your right to sue the manufacturer if something goes wrong and accept full responsibility for whatever happens next. And then you truly own the product.

The fact that your LCD worked even in spite of a short to VCC on the SDA line strikes me as odd. It suggests a weak connection through the ribbon cable.

Let's try bypassing the ribbo cable temporarily. Remove the LCD plate from your RasPi and run a couple of jumpers from the SDA/SCK pins on the main GPIO header to the corresponding rows on your protoboard. Let's see if the device shows up that way.

Does your multimeter have a frequency counter? If so, before pulling the LCD Plate, write a quick program that sends continuous text to the LCD. The goal is to keep the SCK pin active for long enough to get a reading. Connect the ribbon cable to your protoboard, then while the LCD is updating, touch the meter's leads to the GND rail on the protoboard and the breakout's SCK pin. You should see a fixed, high frequency on it.

When you void a product warranty, you give up your right to sue the manufacturer if something goes wrong and accept full responsibility for whatever happens next. And then you truly own the product.

May I join this Thread? I too am trying to link a pwm module witn a Pi trough I2C and not getting a reply.I do have an osciloscope, and can see the signal on SDA, but SCL is stuck on 3V. I do not have a cobbler and connected directly with jumper cables.also im readin 10KOhm between VCC and SDA SCL.

edit:Wiring fault, sudo python Servo_Example.py adafruit might be interested in these, very affordable scopes, ideal for thinkerers on a budgethttps://www.google.ca/#q=minidso