Hello,
I am unclear on the following instruction: "By soldering closed the address select jumpers, you can change the address from 0x20 to 0x27. This allows up to 8 bonnets for 128 total GPIO."
I have 4 bonnets daisy chained with the I2C STEMMA QT connection, should I solder closed ALL 3 address select jumpers on all 4 boards to open up the ability to change the addresses of each board?
Hoping this can be answered quickly / easily, thank you!
Address Select Jumpers on Adafruit GPIO Expander Bonnet (pro
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- NADERSHOKAIR
- Posts: 11
- Joined: Mon Jul 18, 2022 11:42 am
- adafruit_support_carter
- Posts: 29483
- Joined: Tue Nov 29, 2016 2:45 pm
Re: Address Select Jumpers on Adafruit GPIO Expander Bonnet
You would selectively solder individual pad(s). The resulting address would depend on the combination. What you are setting are the individual bits (A0, A1, and A2) of the address (fig from datasheet):
1 = solder pads closed
So the default is all pads open, giving A0=A1=A2=0 and the address is 0b0100000 = 0x20
Closing *just* A0 results in 0b0100001 = 0x21.
etc.
Running an I2C scan is a good way to sanity check things and verify addresses:
https://learn.adafruit.com/scanning-i2c ... s/overview
0 = solder pads open (default)1 = solder pads closed
So the default is all pads open, giving A0=A1=A2=0 and the address is 0b0100000 = 0x20
Closing *just* A0 results in 0b0100001 = 0x21.
etc.
Running an I2C scan is a good way to sanity check things and verify addresses:
https://learn.adafruit.com/scanning-i2c ... s/overview
- NADERSHOKAIR
- Posts: 11
- Joined: Mon Jul 18, 2022 11:42 am
Re: Address Select Jumpers on Adafruit GPIO Expander Bonnet
Thank you very much!
So just to be clear, if I have 4 boards connected together over I2C I would perform the following:
First expander board in series would be all open (A0=A1=A2=0, making the address 0b0100000 = 0x20)
Second expander board in series would have A0 solder pads closed (A0=1, A1=0, A2=0 making the address 0b0100001 = 0x21)
Third expander board in series would have A1 solder pads closed (A0=0, A1=1, A2=0 making the address 0b0100002 = 0x22)
Fourth expander board in series would have A2 solder pads closed (A0=0, A1=0, A2=1 making the address 0b0100003 = 0x23)
Is this correct? Thanks again!
So just to be clear, if I have 4 boards connected together over I2C I would perform the following:
First expander board in series would be all open (A0=A1=A2=0, making the address 0b0100000 = 0x20)
Second expander board in series would have A0 solder pads closed (A0=1, A1=0, A2=0 making the address 0b0100001 = 0x21)
Third expander board in series would have A1 solder pads closed (A0=0, A1=1, A2=0 making the address 0b0100002 = 0x22)
Fourth expander board in series would have A2 solder pads closed (A0=0, A1=0, A2=1 making the address 0b0100003 = 0x23)
Is this correct? Thanks again!
- adafruit_support_carter
- Posts: 29483
- Joined: Tue Nov 29, 2016 2:45 pm
Re: Address Select Jumpers on Adafruit GPIO Expander Bonnet
Close.
First board correct.
Second board correct.
Third board, semi-correct. The resulting address is 0b0100010 = 0x22. Since just the A1 bit is set.
Fourth board, yes/no. You could solder *just* the A2 bit, but the resulting address would be 0b0100100 = 0x24. If you want the address to be 0x23, then solder *both* the A0 and A1 pads and leave A2 unsoldered, so the address will be 0b0100011 = 0x23.
First board correct.
Second board correct.
Third board, semi-correct. The resulting address is 0b0100010 = 0x22. Since just the A1 bit is set.
Fourth board, yes/no. You could solder *just* the A2 bit, but the resulting address would be 0b0100100 = 0x24. If you want the address to be 0x23, then solder *both* the A0 and A1 pads and leave A2 unsoldered, so the address will be 0b0100011 = 0x23.
- NADERSHOKAIR
- Posts: 11
- Joined: Mon Jul 18, 2022 11:42 am
Re: Address Select Jumpers on Adafruit GPIO Expander Bonnet
Got it!
Just to lay it out for those that search this out in the future (but also to test my understanding) I'll reiterate your adjustments below... please call me out if incorrect :)
First expander board in series would be all open (A0=A1=A2=0, making the address 0b0100000 = 0x20)
Second expander board in series would have A0 solder pads closed (A0=1, A1=0, A2=0 making the address 0b0100001 = 0x21)
Third expander board in series would have A1 solder pads closed (A0=0, A1=1, A2=0 making the address 0b0100010 = 0x22)
Fourth expander board in series would have both A0 and A1 solder pads closed (A0=1, A1=1, A2=0 making the address 0b0100011 = 0x23)
Now I also understand the bit allocation from the image you posted earlier re the addresses. Endless thanks for your help!
Just to lay it out for those that search this out in the future (but also to test my understanding) I'll reiterate your adjustments below... please call me out if incorrect :)
First expander board in series would be all open (A0=A1=A2=0, making the address 0b0100000 = 0x20)
Second expander board in series would have A0 solder pads closed (A0=1, A1=0, A2=0 making the address 0b0100001 = 0x21)
Third expander board in series would have A1 solder pads closed (A0=0, A1=1, A2=0 making the address 0b0100010 = 0x22)
Fourth expander board in series would have both A0 and A1 solder pads closed (A0=1, A1=1, A2=0 making the address 0b0100011 = 0x23)
Now I also understand the bit allocation from the image you posted earlier re the addresses. Endless thanks for your help!
- adafruit_support_carter
- Posts: 29483
- Joined: Tue Nov 29, 2016 2:45 pm
Re: Address Select Jumpers on Adafruit GPIO Expander Bonnet
Added a reference table here which hopefully helps:
https://learn.adafruit.com/gpio-expande ... rs-3021420
https://learn.adafruit.com/gpio-expande ... rs-3021420
- NADERSHOKAIR
- Posts: 11
- Joined: Mon Jul 18, 2022 11:42 am
Re: Address Select Jumpers on Adafruit GPIO Expander Bonnet
Wonderful! Glad this question prompted the contribution :)
Please be positive and constructive with your questions and comments.