user86486: I have an IMU sensor and a Bluerobotics temperature sensor, both have different I2C addresses.
I want to integrate both with an Arduino UNO, I know I can do this with an I2C multiplexer but I don't have access to one right now.
Is it possible to integrate them with arduino without a multiplexer, i.e., by just connecting them parallelly on the A4 and A5 pins of Arduino? (This didn't work though when I tried, the temperature sensor was giving values but the values of IMU sensor were only zeros on the Arduino Serial Monitor)
I've found some videos on it on YT, some have connected pull up resistors to the sensors, but this method doesn't seem to work.
So before delving deeper into it, I'd like to know if this is even possible to do without a multiplexer, because my time is precious since I have a project deadline.

user86482: first of all , you said they have different I2C addresses , so you don't need I2C
multiplexer , I2C multiplexer is only used when having more than one device having same I2C address , and refer to Adafruit I2C multiplexer as they say :

Finally, a way to get up to 8 same-address I2C devices hooked up to one microcontroller

which means it can handle 8 devices having the same address , but in your case , the addresses already are different , so why you need I2C multiplexer.
your problem needs to dig deep into debugging , you can get your self a cheap logic analyzer like this cheap 10$ saleae clone analyzer to see what data is actually put into the bus , the analyzer will make your debugging way more easy than you think , like the below picture obtained from saleae official website and also this cheap saleae clone works perfect with logic software offered from saleae:

but for your problem , I am guessing that it's due to pull resistors and the parasitic capacitance between the 2 buses , reading from I2C specification file, at section 7.1 , there is equation from minimum and maximum allowed pull up resistors according to nodes connected to the bus :

Rp(min) = (Vdd - Vol(max)) / Iol
Rp(max) = tr / (0.8473 * Cb)

where Vdd is 5V when using arduino , tr is the rise time maximum and it depends on MCU, Cb is  estimated bus capacitance and you can get that from datasheet of every component in your bus line as for arduino its capacitance is specified in datasheet at page 264 saying

Capacitance for each I/O pin Ci – 10 pF

other symbols , you can get from the I2C specifications mentioned above , but your problem is due to pull up resistors I guess and you can't really know without debugging. I recommend you using logic analyzers.

86486: <p>I have an IMU sensor and a Bluerobotics temperature sensor, both have different I2C addresses.</p>
<p>I want to integrate both with an Arduino UNO, I know I can do this with an I2C multiplexer but I don't have access to one right now.</p>
<p>Is it possible to integrate them with arduino without a multiplexer, i.e., by just connecting them parallelly on the A4 and A5 pins of Arduino? (This didn't work though when I tried, the temperature sensor was giving values but the values of IMU sensor were only zeros on the Arduino Serial Monitor)</p>
<p>I've found some videos on it on YT, some have connected pull up resistors to the sensors, but this method doesn't seem to work.</p>
<p>So before delving deeper into it, I'd like to know if this is even possible to do without a multiplexer, because my time is precious since I have a project deadline.</p>
 86482: <p>first of all , you said they have different I2C addresses , so you don't need <strong>I2C
multiplexer</strong> , I2C multiplexer is only used when having more than one device having same I2C address , and refer to <a href="https://www.adafruit.com/product/2717" rel="nofollow noreferrer">Adafruit I2C multiplexer</a> as they say :</p>
<blockquote>
<p>Finally, a way to get up to 8 same-address I2C devices hooked up to one microcontroller</p>
</blockquote>
<p>which means it can handle 8 devices having the same address , but in your case , the addresses already are different , so why you need I2C multiplexer.</p>
<p>your problem needs to dig deep into debugging , you can get your self a cheap logic analyzer like <a href="https://rads.stackoverflow.com/amzn/click/com/B077LSG5P2" rel="nofollow noreferrer" rel="nofollow noreferrer">this cheap 10$ saleae clone analyzer</a> to see what data is actually put into the bus , the analyzer will make your debugging way more easy than you think , like the below picture obtained from <a href="https://www.saleae.com/" rel="nofollow noreferrer">saleae official website</a> and also this cheap saleae clone works perfect with <em>logic</em> software offered from saleae:
<a href="https://i.stack.imgur.com/26n6R.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/26n6R.jpg" alt="enter image description here" /></a></p>
<p>but for your problem , I am guessing that it's due to pull resistors and the parasitic capacitance between the 2 buses , reading from <a href="https://www.nxp.com/docs/en/user-guide/UM10204.pdf" rel="nofollow noreferrer">I2C specification file</a>, at section 7.1 , there is equation from minimum and maximum allowed pull up resistors according to nodes connected to the bus :</p>
<blockquote>
<p>Rp(min) = (Vdd - Vol(max)) / Iol</p>
<p>Rp(max) = tr / (0.8473 * Cb)</p>
</blockquote>
<p>where <code>Vdd</code> is 5V when using arduino , <code>tr</code> is the rise time maximum and it depends on MCU, <code>Cb</code> is  estimated bus capacitance and you can get that from datasheet of every component in your bus line as for arduino its capacitance is specified in <a href="https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf" rel="nofollow noreferrer">datasheet</a> at page 264 saying</p>
<blockquote>
<p>Capacitance for each I/O pin Ci – 10 pF</p>
</blockquote>
<p>other symbols , you can get from the I2C specifications mentioned above , but your problem is due to pull up resistors I guess and you can't really know without debugging. I recommend you using logic analyzers.</p>
