Hey all, looking for some help here. I’m pretty newbie and looking for a video (visual learner here) on how the heck to change the I2C address on the Alphanumeric Display.
I have a redboard connected via qwiic to a alphanumerical display, daisy chained to a adafruit SHTC3 humidity and temp sensor.
I at first misunderstood what they meant by open and closed on this, and soldered the A0 section together. Def not it, device stopped acknowledging. After spending quite a while (like, literally a couple hours last night), I understand now that I’m supposed to literally cut it with a knife. So I’ve desoldered it and then cut through the A0 section, but I don’t think this actually changed the address, as it’s still having a conflict with the Adafruit SHTC3 (which is the same 0x70 address).
I’ve never done this kind of modification to a board before and can’t seem to find any good videos or picture based advice on how to do this properly and make sure I’m doing it right. Anything you can point me towards that would be a primer on making these (and jumper changes) to the boards would be hugely appreciated!
Thanks in advance!
(Also, I did use the search on this forum, but almost all the posts that came up for what I searched seemed like people who already knew what they were doing, not like the actual 101 class I’m hoping is out there)
I did find the tutorial article, but I feel like it left me with more questions than it answered.
So, I’ve used a fiskers detail knife (the kind that has replaceable razors), and cut every way I could think with no avail
On the first Alphanumeric Display breakout board, I cut it in so many ways that it now doesn’t work at all - even using I2C Scan script, it doesn’t show up anymore.
On the second of the same board, I’ve very delicately cut between the pads multiple times, but it’s still showing 0x70. I’m completely bamboozled. I honestly cannot for the life of me figure out what is right and what is wrong in what I’m doing.
Here’s a pic of the second one that is still reading 0x70
The silver pads on that board don’t have a trace running between them so there’s nothing to cut. The way those jumpers work is if you leave them completely alone they are “open” or in a zero state.
Connecting the pads together with a solder blob closes them and puts them in a one state.
If both pads are open, (left alone) the board will have an address of 0x70.
If A0 is closed and A1 is open, the board will have an address of 0x71.
If A0 is open and A1 is closed the board will have an address of 0x72.
If both A0 and A1 are closed then the board will have an address of 0x73.
Closed would look like this:
while open would look like this:
No cutting is needed for this type of jumper. If you ever need to open one of these, you just use a bit of solder wick to remove the solder connecting both pads.
Okay, I’ve soldered it, and now it’s actually at 0x72!!
Funny part was that my first instinct was the solder it, but when I did, the sample code for the Alphanumeric Display said it couldn’t find it (“Device did not acknowledge! Freezing.”).
I did it this time and instead I ran the I2C Scanner script, and see that it did indeed change! WOO! But now, if I could ask a follow up: nvm, figured it out!
OK, so what you’ve done is change the address on the display but your code is looking for the display on the default address of 0x70. Try changing this line:
if (display.begin() == false)
to:
if (display.begin(0x72) == false)
That will inform the library that you’re not using the default address and should get things rolling for you.