# I2C Protocol question

**URL:** <https://forum.arduino.cc/t/i2c-protocol-question/1033849>\
**Category:** Hardware Development\
**Created:** [September 20, 2022, 7:00pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849 "2022-09-20T19:00:53Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![oxygen02](https://avatars.discourse-cdn.com/v4/letter/o/ce73a5/32.png) [@oxygen02](https://forum.arduino.cc/u/oxygen02)\
**Post date:** [September 20, 2022, 7:00pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/1 "2022-09-20T19:00:53Z")

</div>

Is there a way to program an I2C sensors without an address?

I am familiar with the protocol, and I know that the address is imperative to controlling an I2C device. However, I have 2 I2C devices with the same address, and I know I need 2 unique addresses in order for both devices to work. I want to know if there's a way to control them without addresses.

Thank you

---

<div class="post-metadata">

**Author:** ![DrDiettrich](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/drdiettrich/32/219048_2.png) [@DrDiettrich](https://forum.arduino.cc/u/DrDiettrich)\
**Post date:** [September 20, 2022, 7:07pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/2 "2022-09-20T19:07:57Z")

</div>

There exist I2C multiplexers that allow to separate devices of the same address. Many I2C devices allow for multiple addresses, check for such sensors.

---

<div class="post-metadata">

**Author:** ![Koepel](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/koepel/32/637546_2.png) [@Koepel](https://forum.arduino.cc/u/Koepel)\
**Post date:** [September 20, 2022, 7:22pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/3 "2022-09-20T19:22:00Z")

</div>

Which Arduino board do you use and which sensor ? Please give a link to where you bought the sensor module.

The I2C protocol uses a I2C address, there is no way around it.  
There are options to fix the problem. Hardware [multiplexers](https://www.adafruit.com/product/2717) (as already mentioned by DrDiettrich) and multiple I2C buses via a software I2C library are the two most common solutions, but there are more.

---

<div class="post-metadata">

**Author:** ![anon94801460](https://avatars.discourse-cdn.com/v4/letter/a/278dde/32.png) [@anon94801460](https://forum.arduino.cc/u/anon94801460)\
**Post date:** [September 20, 2022, 7:23pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/4 "2022-09-20T19:23:18Z")

</div>

> [@oxygen02](#):
>
> I have 2 I2C devices with the same address

Post a link to the devices. Most of them have an address selection input.

---

<div class="post-metadata">

**Author:** ![oxygen02](https://avatars.discourse-cdn.com/v4/letter/o/ce73a5/32.png) [@oxygen02](https://forum.arduino.cc/u/oxygen02)\
**Post date:** [September 20, 2022, 7:43pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/5 "2022-09-20T19:43:25Z")

</div>

Here is a link to the sensors: https://sps.honeywell.com/us/en/products/advanced-sensing-technologies/healthcare-sensing/board-mount-pressure-sensors/trustability-ssc-series

The datasheet will provide the info.

PN: HSCDANN150PG2A5

---

<div class="post-metadata">

**Author:** ![DrDiettrich](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/drdiettrich/32/219048_2.png) [@DrDiettrich](https://forum.arduino.cc/u/DrDiettrich)\
**Post date:** [September 20, 2022, 8:07pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/6 "2022-09-20T20:07:43Z")

</div>

> [@oxygen02](#):
>
> Here is a link to the sensors

For multiple sensors you should use the SPI interface.

---

<div class="post-metadata">

**Author:** ![markd833](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/markd833/32/1186928_2.png) [@markd833](https://forum.arduino.cc/u/markd833)\
**Post date:** [September 20, 2022, 8:50pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/7 "2022-09-20T20:50:20Z")

</div>

> [@oxygen02](#):
>
> PN: HSCDANN150PG2A5

That part number indicates that the device is an I2C device with 1 fixed address. The SPI variant would have been the way to go if using several of the same device. As it's I2C then an I2C multiplexer as already suggested would be a solution.

---

<div class="post-metadata">

**Author:** ![camsysca](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/camsysca/32/1015228_2.png) [@camsysca](https://forum.arduino.cc/u/camsysca)\
**Post date:** [September 20, 2022, 9:13pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/8 "2022-09-20T21:13:34Z")

</div>

But, if you look at figure 4 on page 13, there are 6 I2C variants with different addresses. So, the OP could order up a second device with a different address.  
C

---

<div class="post-metadata">

**Author:** ![markd833](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/markd833/32/1186928_2.png) [@markd833](https://forum.arduino.cc/u/markd833)\
**Post date:** [September 20, 2022, 9:22pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/9 "2022-09-20T21:22:37Z")

</div>

Correct. I assumed, rightly or wrongly, that @oxygen02 had already purchased 2 devices with the same part number (that was given in post #5), and was seeking a way around the problem.

But, as you say, if @oxygen02 hasn't already purchased a second device, then clearly a slightly different part number would give them a second unique address.

---

<div class="post-metadata">

**Author:** ![camsysca](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/camsysca/32/1015228_2.png) [@camsysca](https://forum.arduino.cc/u/camsysca)\
**Post date:** [September 20, 2022, 9:43pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/10 "2022-09-20T21:43:56Z")

</div>

Don't know about you, but I almost never have "just one" of something. At a minimum, I order two. In this case, I'd have two of each of at least two addresses. Probably just me, but nothing kills a project like a simple whoopsie that fries your unique component. And it will be the unique one...  
C

---

<div class="post-metadata">

**Author:** ![markd833](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/markd833/32/1186928_2.png) [@markd833](https://forum.arduino.cc/u/markd833)\
**Post date:** [September 20, 2022, 10:00pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/11 "2022-09-20T22:00:17Z")

</div>

> [@camsysca](#):
>
> At a minimum, I order two.

Most of my components are dirt cheap so I usually end up with a pack of 5 or so. Although i'm wondering what to do with the other 45 SMD pushbuttons from my 50pk that I got via Aliexpress.

> [@camsysca](#):
>
> And it will be the unique one...

Definitely. Or, the expensive device that will destroy itself in order to protect the cheap one!

---

<div class="post-metadata">

**Author:** ![camsysca](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/camsysca/32/1015228_2.png) [@camsysca](https://forum.arduino.cc/u/camsysca)\
**Post date:** [September 20, 2022, 10:32pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/12 "2022-09-20T22:32:48Z")

</div>

But, I feel for the OP, I just saw the price for the device this thread is about. Ouch!

---

<div class="post-metadata">

**Author:** ![oxygen02](https://avatars.discourse-cdn.com/v4/letter/o/ce73a5/32.png) [@oxygen02](https://forum.arduino.cc/u/oxygen02)\
**Post date:** [September 21, 2022, 12:30pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/13 "2022-09-21T12:30:32Z")

</div>

Uno

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [March 20, 2023, 12:30pm UTC](https://forum.arduino.cc/t/i2c-protocol-question/1033849/14 "2023-03-20T12:30:37Z")

</div>

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
