Problem with pull-up resistor using SX1509

Hello! First time posting here, hoping I have this in the right place.

I have 5 boards that someone else built for me (who is sadly no longer available to consult with), each with two SX1509 breakouts on them. I’m trying to control them all from a Pi Zero. I have each board’s I2C pins hooked up to different pins on the Pi, with custom I2C busses configured for each.

Four of the 5 boards work fine in this configuration; i2cdetect finds both SX1509s configured at each address no problem. But board #5 is having problems; the i2cdetect command just times out trying to query each address, and it doesn’t find either chip.

Testing with the voltmeter I found that the 4 working boards correctly have SDA and SCL pulled up to 3.3V. However, for the non-working board, SDA floats around 2.5V and SCL at 50mV.

I did a bunch of reading online about pull-up resistors and the like, and from the sounds of it, the SX1509 is supposed to have internal pull-up resistors for SDA and SCL, but it’s possible the guy that built these boards for me cut (intentionally or otherwise) the pull-up resistors on this one board? At least, that’s how I interpret the resulting voltage.

So I figured: no problem, just need an external pair of pull-ups, right? So I got some 4k7 resistors and put them on.

Now, SDA reads 3.3V and SCL…still at 50mV. ?!

I’ve quadruple-checked my work, figuring I must’ve screwed up the pull-up for SCL somehow, and I’ve tried both larger and smaller resistors just in case, but nothing changes, it just sits at 50mV the entire time.

Now, I’m not a hardware guy, I’m a software guy; the ins and outs of actual electrical circuits baffle me (I’m trying!) So I don’t know even where to go from here to troubleshoot, so I’m hoping someone on these forums can help? I don’t think I can remove either SX1509 from their breakout board (they’re both soldered on as far as I can tell), and I don’t know based on what I’m seeing if one or both of those chips are just bad or what? (I’ve checked voltage on the exposed tops of the pins on the 1509s themselves; 3.3V reads correctly, SDA and SCL give me the same values as the connectors on the board).

Any help, tips, or even just general steerage in the right direction would be greatly appreciated!

Share a photo of the backside/pads of the non-working board (and maybe also one of a working board)

If you happen to have a schematic showing how everything is connected together, that might be helpful with troubleshooting what might be causing the problem.

I don’t have a schematic, not that I can think of. I can look.

I did take pictures of fronts and backs of one working and the non-working boards though.

Here’s a working one from the front. Looks like since I’m a new user I’ll have to make it separate posts:

The back of that same board:

And now for the front of the non-working board (The extra blue and green wire on the front are running to pull-up resistors on a breadboard for experimentation purposes).

And finally, the back of the non-working board.

Hopefully this gives at least some hints. The bigger mystery I’m hoping to get an answer to is “why wouldn’t a pull-up resistor actually work”? Every search I found online just tells me what pull-up resistors are. :frowning:

So, the non-working one has ~2x as much oxidation or burn marks, can’t tell…that might cause problems…
You can attempt to clean them up or de/re-solder if the below doesn’t help

It also looks like the i2c lines aren’t well soldered @ the resistors on the top side

And also push that jumper right below those down to become fully seated too…any luck?

First, thank you for helping!

So the SCL resistor, when I touch the voltmeter in conductivity-testing mode to either side, shows a connection; the SDA resistor doesn’t show connectivity. The SCL pin is the one not pulling up; is that the problem? Does the voltmeter showing connectivity across the resistor a bad thing?

I pushed both jumpers farther down but I think they were as seated as they could go (the pins on that one are just not at a perfect right angle to the board). However, trying to push them both farther down now has the SDA pin pulling up without the external resistor, so I guess that helped at least for one of the pins?

Also, you are talking about oxidation or burn marks…are you talking on the front or back? I’m a software guy, my attempts to solder have…not gone well :~)

The front…the back looks awesome

Having continuity is usually not the problem lol…it’s the opposite that is a jerk

Test all of this without the added blue/green wires/resistors

Oh I disconnected them before testing.

Continuity isn’t usually a problem, true, but I didn’t know if that applied across a resistor (again: software guy, not hardware guy :~)

Let me approach this another way: after unhooking the added blue wires/resistors, just with a bare board, how do I test those two resistors with my voltmeter to see if they’re working as expected?

(And also: am I right in assuming those are supposed to be pull-up resistors for SDA and SCL, and the jumpers underneath connect/disconnect them?)

You set the multimeter to continuity/noisy mode and touch one probe to either the scl/sda pin on the sx1509 and the other probe to the far side of the resistor (and subsequently the jumper)

It might be simpler to take it to a phone/laptop repair, a maker space, or similar and just throw someone a few bucks to test it (and perhaps repair)

You can also test the resistor’s approximate value using the MM, but that is unlikely to be the problem

OK, I feel like I have answers now, but I don’t know how to interpret them.

Here’s a picture of the results, but I’ll describe them too.

map

SDA to top of the left resistor: Yes
SDA to anywhere else (Bottom of left resistor, either side of right resistor): No
SCL to top of left resistor: No
SCL to bottom of LEFT resistor: Yes
SCL to either side of the RIGHT resistor: Yes

I also took the jumpers off and checked all four pins of the jumpers:

SDA to any of the 4 jumper pins: No
SCL to either top jumper pin: No
SCL to either bottom jumper pin: YES

Seems like SCL shouldn’t be registering on both the left and the right sides…

1 Like

Update: was pondering this some more so I did some more testing.

I was able to mostly I think confirm my understanding on one of the “good” boards that I am indeed looking at a pair of pull-up resistors next to a pair of jumpers (3.3v on the far side of the jumpers, near side against the resistors, other side of the resistors go to SDA/SCL). Feel free to correct me if I’m wrong please!

Based on that, I re-checked the bad board without the jumpers: SDA and its pull-up resistor seem fine. But SCL gives me continuity to 3.3v directly (like, one side to 3.3v on the SX1509 and the other to SCL on the 1509 gives me tone). That certainly doesn’t seem like it should be doing that, right?

The thing that is puzzling me further about that, though: why don’t I just always get a 3.3v reading off of SCL then? Like, if SDA is accidentally connected all the time to 3.3v (hence why I get tone there) then why isn’t it always reading 3.3v when powered on? I would think it would suffer the opposite problem of what I am seeing (always at 3.3v and refusing to get pulled down by the 1509, not never even getting to 3.3v like it is now)?

Yep, I think that board is wonky…I’d recommend having some reflow it or just getting a replacement if possible

OK so I took it to 3 different cell phone repair places locally. Every one of them looked at me like I was crazy (one just flat out told me bluntly “you might as well be speaking gibberish, I have no idea how to do any of that”). I tried looking up a maker group but either I have no idea how to find them or the closest one is 2 hours away :frowning:

So: anybody have any suggestions on someone I could just flat-rate-priority-mail this board to and send some money via PayPal or whatnot and have them fix it and send it back? I am completely in the dark on this one (to be honest, I’m not even sure how I found the original guy that built the boards to begin with now that I think about it, but it was…omg it was 4 years ago. I’m gonna go grouse about time being a PITA and how old I am now…)

Eh, I can’t for legal reasons…check for a local Vo-Tech, Appliance Repair, RC store/groups…maybe a car Audio/alarm place. You just need to find someone decent at soldering to rework that board (and specifically those 2 resistors)

Oh I understand you can’t for legal reasons, wasn’t trying to say that. Was kinda hoping someone else would chime in with an offer lol.

I tried a few other places locally and no dice, but I’m still looking. In the meantime though, I figured, if the board is dead, how much worse could I really break it, right? So I did what my first thought was and tried to pry off the two SX1509s from what looked like sockets but seemed very tight at first try. Turns out, they were sockets, just very very tight!

And sure enough, if I pry off the right-side 1509, the SDA and SCL pins on the rest of the board go back to registering exactly as expected! So, progress: I’ve isolated the problem to one of the breakout boards!

Anything obvious in these pictures?

And here’s the top closer up…

The address pins look like they might be bad to me