If you need to connect more devices but the resistance becomes too low, just desolder the resistor from the breakout boards which lower the resistance too much.. With I2C you want about ~2K Ohms so that you can transmit data much faster :D I see a bunch of comments where people think this video is "useless" but he explains this at the end, Resistance in parrallel is divided! Hope this helps
He said you can measure the resistance of the whole bus by measuring between VCC and SCL or SDA, but I tried that on a little screen and it read overload, and I tried that on a single gyroscope and it reads 3 megaohms (even though the pull-ups are 22 kiloohms). Am I measuring something wrong or do I have to use his equation near the end?
Very well explained with a lot of detail that many others simply omit. The diagrams showing how a pull up resister works, and how to calculate its value, are so simple to understand. Great job!
Fabulous awesome.... this kind of explanations can even make a child understand about arduino no matter how much he is able to understand anything else... he he
Awesome I have 4 i2c devices and when I connect the fourth the sketch freezed randomly now after seeing this video I will definetly check the total I2C bus resistance since all are breakout boards
Great insights - but depending on what you are doing, the limit is even lower ;) Break-Out Boards usually give you the option to configure the used I2C-Adress by connecting a pin to GND, VCC, SLA or SLC. And that's another hard limit: You can only use 4 addresses for these kind of boards. If you want a fifth, you'll need to find another vendor who has preloaded his device with a different address or even offers some way to freely configure it beside the classic way of using 4 different voltage levels through an extra pin.
I tried to like this video while watching it on my 'smart' tv. wasn't fast enough, so here I am to both like this video and subscribe because THIS was an awesome video and I learned something I hadn't even known I needed to know. Thank you.
bluedot, you are awesome man! very nice presentation. the solution must be "TO SOMEHOW ATTAIN A EFFECTIVE RESISTANCE OF 1.5K OHM" you could try removing the pull up resistors in the slave(s) and adding a 1.5k resistor seperately
excellent presentation , I have only one question because I was thinking about this very question of how many devices can I put on the I2C bus or more specifically I want to know how many arduino nanos I can put on the I2C bus ? I am thinking to use a raspberry pi as the master I2C bus and have nanos looking after individual sensors with their own isolated I2C busses or sensors directly connected to nanos with out using the isolated I2C bus. Nanos don't as far as I know have any resistors on the SDA or SCL . If what I'm thinking is correct then you could have an unlimited number of sensors connected to a main I2C bus of a master Pi or Arduino and just isolate the sensors with arduino nanos which are so cheap to buy.
great video thanks!!! why do these breakout boards even have he pull up resistors already build inside? Wouldn't be a big deal to plug them in yourself and spare all the trouble...
Published in 2016 and it's still providing great information. Nice video. I do have a question. How would you power 11 or more sensors all at once if I wanted to use battery as a backup and not as a main source of power?
Hello! Do you know if it is possible to connect two displays, but SH1106 and with another library (I use Adafruit's)? The solution I have at the moment is to use 2 arduinos, but the expense would be higher.
This really helped in my understanding, but I was wondering (hopefully this is not a stupid question) but would this be considered analog multiplexing? And would this allow the arduino to communicate with 2 devices with the same MAC address at the same time?
Adding any resistor in parallel will always reduce the overall resistance. To solve this I2C pull-up resistor problem, desolder all the built-in pull-up resistors on every device and place your own.
This was a really good presentation, but you left out the most important part - what do we do about it? It seems to me, we need to remove the pull up resistors from all but one of the devices. There probably comes a point where that isn't enough, so we would need to remove ALL of the pull up resistors, and fit the appropriate size for that number of devices - those would be bigger value resistors, to get a good logic low level, surely? There is also this video, which may be helpul: ua-cam.com/video/sGZe0aJsqBQ/v-deo.html
I found a comment lower that said "If you need to connect more devices but the resistance becomes too low, just desolder the resistor from the breakout boards which lower the resistance too much.. With I2C you want about ~2K Ohms so that you can transmit data much faster" If you want a more thought-out approach, near the end of the vid it explains using the parallel resistor equation, which you can use if you can see the values on your pull-up resistors. It didn't work for me to measure the resistance between VCC and SCL because I tried it on a little screen and it reads overload, I tried it on a single gyroscope and it reads 3 Megaohms which seems high.
Well, yes, the resistors usually have the same value. 10k, 4.7k or 2.2k are very common values. But of course, you need one resistor for the SDA and for the SCL line.
@@tanoryjakaperdana1419 but it is wrong. It is even officially written I2C (Inter-Integrated Circuit, eye-squared-C), where the 2 is written as squarered web.archive.org/web/20210813122132if_/www.nxp.com/docs/en/user-guide/UM10204.pdf When teaching things to people i think it is important to be technically correct even in the terms used. I know these videos are not paid training videos - but instead of arguing for something being okey being mislabeled it's better to just say oops - i did not pay attention to that
@@jesperkped lol im not saying you are wrong or i am on the right side.. you ask why do people say i2c instead "i square c".. im just answering your qestion.. coz im one of those people.. 😅
If you need to connect more devices but the resistance becomes too low, just desolder the resistor from the breakout boards which lower the resistance too much.. With I2C you want about ~2K Ohms so that you can transmit data much faster :D
I see a bunch of comments where people think this video is "useless" but he explains this at the end, Resistance in parrallel is divided! Hope this helps
He said you can measure the resistance of the whole bus by measuring between VCC and SCL or SDA, but I tried that on a little screen and it read overload, and I tried that on a single gyroscope and it reads 3 megaohms (even though the pull-ups are 22 kiloohms). Am I measuring something wrong or do I have to use his equation near the end?
The best explanation of I2C in the least amount of time with great clarity - thanks Sir and kudos for such a presentation.
Very well explained with a lot of detail that many others simply omit. The diagrams showing how a pull up resister works, and how to calculate its value, are so simple to understand. Great job!
This was a fantastic video and I say that as a former educator and amateur cinematographer! Great job buddy.
The best material about I2C I've found in 3 days of search! Looking in blogs, videos and articles.
bloody amazing - now that's what I call an explanation
Just measured an Adafruit BNO055 sensor and got 10K ohms on clock and data lines. THANKS for excellent short video. Really interesting.
Man, you should be making more Videos. Very nice explanation.
So.. How do I increase the resistance above the minimum value if I've got (too) many I2C devices connected?
Best i2c vid ive ever seen.
You should make more videos man! You're good on it
Excellent explained pull up resistors in I2C applications.
Fabulous awesome.... this kind of explanations can even make a child understand about arduino no matter how much he is able to understand anything else... he he
Awesome I have 4 i2c devices and when I connect the fourth the sketch freezed randomly now after seeing this video I will definetly check the total I2C bus resistance since all are breakout boards
Great insights - but depending on what you are doing, the limit is even lower ;)
Break-Out Boards usually give you the option to configure the used I2C-Adress by connecting a pin to GND, VCC, SLA or SLC.
And that's another hard limit: You can only use 4 addresses for these kind of boards.
If you want a fifth, you'll need to find another vendor who has preloaded his device with a different address or even offers some way
to freely configure it beside the classic way of using 4 different voltage levels through an extra pin.
Most excellent! Love your graphics and animation, they add so much to the learning experience.
omg what an amazing channel!! thanks for the video, helped tons!
Great article, making a home made weather station and it helps clarify things a lot
Great explanation, thanks a lot. I was facing problem with loadout resistors
You deserve more views
I tried to like this video while watching it on my 'smart' tv. wasn't fast enough, so here I am to both like this video and subscribe because THIS was an awesome video and I learned something I hadn't even known I needed to know. Thank you.
Excellent video. I was hoping for something to do with the addresses as well though...
bluedot, you are awesome man! very nice presentation.
the solution must be "TO SOMEHOW ATTAIN A EFFECTIVE RESISTANCE OF 1.5K OHM"
you could try removing the pull up resistors in the slave(s) and adding a 1.5k resistor seperately
if could maintain effective resistance @1.5k, then theoretically you can connect upto 128 devices
Very precisely and accurately explained!!
one of the best explanations I have seen
fantastic, thanks.
I never thought about the parallel resistors
how many mpu6050 sensors we can connect with ardiuno uno??
i have the same question
excellent presentation , I have only one question because I was thinking about this very question of how many devices can I put on the I2C bus or more specifically I want to know how many arduino nanos I can put on the I2C bus ? I am thinking to use a raspberry pi as the master I2C bus and have nanos looking after individual sensors with their own isolated I2C busses or sensors directly connected to nanos with out using the isolated I2C bus. Nanos don't as far as I know have any resistors on the SDA or SCL . If what I'm thinking is correct then you could have an unlimited number of sensors connected to a main I2C bus of a master Pi or Arduino and just isolate the sensors with arduino nanos which are so cheap to buy.
Hi, I need to make an I2C communication between an Esp 32 and Esp8266, where can I find info about?
best video on this topic.........make another please on spi and other topics......
very informative ,never realised all these,untill now
thanks
I enjoy your presentation and flow. Make more if possible. Hope all is well with you.
Perfecet explanation..with lot of details..thx
great video thanks!!!
why do these breakout boards even have he pull up resistors already build inside? Wouldn't be a big deal to plug them in yourself and spare all the trouble...
Great job! Can you make more videos?
Extremely clear presentation, thank you for sharing!
great job you just helped me understand a problem I had been having. subscribed.
Can you effectively connect 7 i2c devices to a nano? Will it work?
Great information - How about more of the same type ? Keep up the good work - I like the way you make it short and to the subject. Thank you.
But what is the solution?
Very nicely explained. Subscribed
Great job. Perfect pace right amount of detail. Thanks!
Nice tutorial! we want more like that pleasee
Thanks, have been trying to understand this for a while, perfect explaination ;-)
More video please. Very well explained (Y)
Great tutorial. Lots of good knowledge!
Published in 2016 and it's still providing great information. Nice video. I do have a question. How would you power 11 or more sensors all at once if I wanted to use battery as a backup and not as a main source of power?
Hello! Do you know if it is possible to connect two displays, but SH1106 and with another library (I use Adafruit's)? The solution I have at the moment is to use 2 arduinos, but the expense would be higher.
This really helped in my understanding, but I was wondering (hopefully this is not a stupid question) but would this be considered analog multiplexing? And would this allow the arduino to communicate with 2 devices with the same MAC address at the same time?
I don’t think two devices with the same MAC address would work. I think the thumbnail for this video is misleading.
could this be the reason why my SPI LCD shows artifacts right at the moment when the SPI communicates to another SPI device such as SD card?
Then add a really big resistor in parallel, will solve the issue right?
Adding any resistor in parallel will always reduce the overall resistance. To solve this I2C pull-up resistor problem, desolder all the built-in pull-up resistors on every device and place your own.
Can you disconnect the pullup resistors to make the logic low voltage drop?
Have you ever used the TCA9548 i2c multiplexor?
How do you handle the addressing if 2 devices have the same I2C address?
so all i have to do to connect multiple I2C devices on arduino is to connect resistors between Vcc-SDA and Vcc-SCL the pull-ups right?
Very interesting, hope to see more videos!
couldn't the 'low-voltage' be reduced further by adding an extra resistor to the clock-line?
I am in a situation where I need 68 temperature sensors that use I2C comms and only 1 SDA and SCL line, how would I know if it will work?
Just try it from 2x sensor prototype, then 3, then 68...
Excellent explanations!
Excellent info
Really cleared a lot of my doubts!
Plz make videos on this topic
GREAT explanation!
Really Well explained 😎👍🏾
its been 2 years i dont think hes coming back.
You are a Craack! I dont speak english, but I inderstood this
This was a really good presentation, but you left out the most important part - what do we do about it?
It seems to me, we need to remove the pull up resistors from all but one of the devices. There probably comes a point where that isn't enough, so we would need to remove ALL of the pull up resistors, and fit the appropriate size for that number of devices - those would be bigger value resistors, to get a good logic low level, surely?
There is also this video, which may be helpul:
ua-cam.com/video/sGZe0aJsqBQ/v-deo.html
I found a comment lower that said "If you need to connect more devices but the resistance becomes too low, just desolder the resistor from the breakout boards which lower the resistance too much.. With I2C you want about ~2K Ohms so that you can transmit data much faster"
If you want a more thought-out approach, near the end of the vid it explains using the parallel resistor equation, which you can use if you can see the values on your pull-up resistors. It didn't work for me to measure the resistance between VCC and SCL because I tried it on a little screen and it reads overload, I tried it on a single gyroscope and it reads 3 Megaohms which seems high.
Brilliant content...
So the resistor for both ( SDA and SCL) Is the same? Thanks
Well, yes, the resistors usually have the same value. 10k, 4.7k or 2.2k are very common values.
But of course, you need one resistor for the SDA and for the SCL line.
very well done...😀 i learned a little bit more... 😀 great info... 👍👍👍
it is possible to connect with two TSL 2561 sensor ?
Very well done! Thank you.
This video is awesome, THANK YOU!
hate to tell you this, but this is his only video! in fact their is nobody home. i suspect he returned home to his other planet.
How do i connect 10 Arduino togather. Is that any possibility to do this ?
GREAT VIDEO SIR
How long distance maximum sir?
This was an excellent video!!!! Thx
Talking should to be a bit slowly , on the end no one running from behind!
Yes a little slower
Informative, just subbed, thankyou!
Video explains much easiers.Thanks for nice thing
Awesome!! Very clear presentation of great information.
Great video, thanks.
Great explanation, thanks
GREAT material by the way, subscribed (Y)
How many device can control
Great video kindly do more videos
While this was definitely an informative video, it didn't explain me how do I connect Arduino with multiple I2C devices....
Thank you, Sir! Great Video
Plenty explanation as to what is wrong but no explanation as to how to correct it!!!
Thank you. Great job.
which software did you use to make this video man??
good video for me, thank you!
This is amazing information, thanks
great video
Very good video!
Why do people say i two c when it is "i square c" ?
Coz its "inter intregated circuit" or some says IIC.. as you can see there are 2 pieces of I.. so its like 2 x I or I x 2 or I2, but not I square
@@tanoryjakaperdana1419 but it is wrong. It is even officially written
I2C (Inter-Integrated Circuit, eye-squared-C), where the 2 is written as squarered
web.archive.org/web/20210813122132if_/www.nxp.com/docs/en/user-guide/UM10204.pdf
When teaching things to people i think it is important to be technically correct even in the terms used.
I know these videos are not paid training videos - but instead of arguing for something being okey being mislabeled it's better to just say oops - i did not pay attention to that
@@jesperkped lol im not saying you are wrong or i am on the right side.. you ask why do people say i2c instead "i square c".. im just answering your qestion.. coz im one of those people.. 😅
@@tanoryjakaperdana1419 ah okey. Well... Stop doing that 😂
@@jesperkped hahaha.. anyway, thanks for the information.. 👍
Great video!
Wow. Pls post more video.
Thank you for video.