That was a nice explanation! However, I want to mention few things 1. I2C is Half-Duplex (not Simplex) 2. SPI is Full Duplex 3. In I2C, we can configure the peripheral to both the modes - Acknowledge and No Acknowledge
@@elhoward7440 no, ACK and NAK are both part of the I2C addressing protocol. When you write to a slave, the slave needs to pull down the SDA line to ACKnowledge that it is ready to receive communications.
fuck schools man schools never teach you shit. of the 100% of content I learnt from college(in which my major MATSE is top 10 in US) probably 15% of the shit is actually useful. rest they just make you jump through hoops and run in circles and chase your own tail. I talked to professors and very smart people(well, smarter than me for sure) and they all tell me they purposefully make this shit difficult. I picked up more programming stuff in a month with my flipper zero than an entire semester worth of programming courses in college/. by the end I finished my college programming class i still have trouble fucking printing hello world but with interest and a bit of self learning I'm writing sql now.
I m not of this theme. Even dont know what that chips are for.... i m cab driver . Wanted just watch some fun on utube before sleep. And even I understood how these guys communicate😊 Really good lesson. I wish i could see that 50 years ago. Maybe that could change my life
@electronoobs, just a little correction needed in the table at 10:27. I2C does have an acknowledge system. The slave will pull the SDA line low when it has successfully received the transmission from the master. This will show up as the last pulse that appears after all the data bits are transmitted. This last pulse will be a high if the master does not receive an acknowledge from the slave. This way, you can clearly get a confirmation of the handshake.
You just have made me understand one of my most confusing Topic. so glad to have you in my subscription list. You are amazing. realmente te aprecio hermano
Very clear explanation. If I may suggest--It may be worthwhile to draw the vertical sides of the pulses slightly slanted to remind us that the pulses are not ever square, but it takes time to climb from low to high and likewise to fall from high to low. I believe that the counting actually takes place at the middle of the slope (zero crossing) of the leading and trailing edges. Thanks for taking the time to produce this video.
Thanks for simplifying these seemingly complex protocols for us. Up until now I kinda treated them as black boxes in my head to keep the complexity away but now it feels great to have a fundamental understanding of how they work. Although Id love to see a bit more explanation on SPI.
Please hook us up with the JTAG and CAN most definitely. USB and debug would be helpful as well. I’ve had a lot of trouble finding good videos for these, but this one on serial communications was superb!! Well done!
This is a really great video. I teach this in my intro to engineering class and this video is going to be a must watch addition to that lecture. Cheers.
Really concise summary. I had next to no idea of each of these implementations, or even much of an idea of their spec beyond a communication vector, so this becomes a very welcoming introduction and comparison
Very nice video, just a few things to note - UART can work in both half/full duplex modes - There can be more than 1 stop bit in UART in some cases - I2C is a half-duplex protocol - SPI is a full-duplex protocol - The concept of acknowledgement in I2C is based on whether the slave is ready to receive data or not, so it's not applicable to generalize the term over I2C.
You make it much easier to understand using your Scope. It is nice to see someone knows what a Oscope to display what you are describing. Keep up the good work. UP SCOPE !
hi Mohammed Arbaz, I am a part of the open-source Arduino simulator development team. It will be great if you can have a look and share your feedback🙏😃 Some of the examples are here wokwi.com/arduino/libraries and here www.wokwi.com as well if it is interesting kindly let me know
I respect and really appreciate the effort it would have taken for you to make such nice animations for explaining. Its a delight to see your work . I'm a fan, really helped me to understand concepts better. I will appreciate if you show more of oscilloscope result with a simple example data. Otherwise i love the work. Its just A1 class
Since long time, I was searching for such an explanation and today by your video my concept got clear about bauds transmission. I'm really thankful to you for that.
Oh my God !!! i am so thankful to you. I mean u did so much effort on one video for explaining each and everything and that too for free❤️❤️❤️❤️❤️❤️u r legend
Speaking of "bauds per second" is actually not very useful in this context, because the term "baud" itself actually means "state changes per second"! (Thus bauds/sec would technically be the _change_ in the rate of communication.) A change in state of a communication line may also - and often does - represent more than one bit, although for I2C and RS-232 it does indeed represent only 1 bit per (potential) state change, so its baudrate equals the bitrate or bps (bits per second).
In most digital communications baudrate is bitrate. The difference applies to analog communication, where phase shift and multiple amplitudes can encode bits. And yes, all sync communication can lack the bit rate information since the clock establishes the bitrate. It is however usual to establish some margins for each device, and if master is outside those margins errors can occur (usually due to hardware timing restrictions of some other kind).
@@hansdegroot652 i think you could develop a program on the sending and receiving device. That'd send a signal to the receiving device to change its baud rate (on the receiving device). On the uart communication system as well, although it'd take its sweet time for the changes to take effect. As for the i2c, itd be just about instantaneous. Soo, yes.. theoretically you could have adaptive baud rate on the i2c, although I think a predetermined, static rate should probably be more efficient and stable.
Well, this sums it up greatly. I work a lot with digital signaling via I2C which usually come in a 4 pin layout, GND, VCC, SDA and SCL since active devices need an additional power source. Anyway, great content, subbed
Serial is slower in theory, but in practice, it's very hard to match the different bits up when using parallel communication. The faster your clock, the harder parallel communication becomes. With the clock speeds we have today, serial communication is without a doubt the most stable and fastest way. You can also double a serial link by doubling the wires. But unlike in parallel communicating, you don't have to synchronize the bits, you only have to synchronize after large portions of data have arrived. The fastest serial links (like gigabit ethernet, and USB C) , now use multiple wire pairs for serial communication.
we have a youtube channel that deals with Arduino,ATmega328P,Java,Serial programming ,robotics. So if you like these stuff do Subscribe. Sorry for annoying
This video was extremely attainable and helpful. As a CS grad, I have little EE knowledge but was able to understand the concepts in this video. I'm looking forward to a more thorough understanding now.
Thank you sir I have been using these protocols for quite a few years now. This video explained it to me better then I've ever understood. I would just hook it up as it said and not realize the difference.
I have worked a lot with MIDI protocol, it uses mostly three 8 bit bytes in a row with a low going start bit.. started in the 80s for communication between synthesis and still used today even professionally.
we have a youtube channel that deals with Arduino,ATmega328P,Java,Serial programming ,robotics. So if you like these stuff do Subscribe. Sorry for annoying
Nice video man You inpired me to start youtube and making videous I love how much work you put on videos You are awesome! I love some day to be one of my subscribers.
This is awesome amazing superior mesmerizing unbelievable overwhelmingly beautiful and breathtaking This is super important, and when you make a video about it, it becomes demystified, understandable by humans 😁 thanks a ton a ton, keep it up, love your work. I am sure most of your audience agree with me
This was a concise and well-defined explanation. It is the first time that I see such a great video in this subject here on youtube. I'm inclined to be your subscriber now, thank you.
Thank you. As I am learning how to make things for myself, these come up a lot and have been wondering exactly why a certain protocol might be more useful in certain situations. This helped me a lot to continue my learning. Thank you
The way you explain and show with examples is really great to understand. Special thanks for this splendid video. Keep doing this and spread knowledge💯📖📚📝. I have seen a lot of videos online and have to say you nailed it in this session. Wish you all the best and would love to see the rest of the protocol details
we have a youtube channel that deals with Arduino,ATmega328P,Java,Serial programming ,robotics. So if you like these stuff do Subscribe. Sorry for annoying
Very nice video, thank you very much. It is possible to have two-way communication using simple RX and TX also known as UART. You could use mosfets as a gate and activate them using a digital pin on an Arduino to initiate send or receive. This would also allow you to have several devices connected using the digital pin and mosfets as a selection mechanism. You could pass the signal directly through the mosfet as if it were a switch. A 2n7000 would be a good choice for this. The Arduino would activate the mosfet gate capacitor, then the signal would pass through the drain and source of the mosfet.
Thanks for making this video! You clearly explain how these forms of communication works for beginners (or me at least). A lot of things regarding computer and signal communication makes complete sense now. Keep up the great work!
Nice video, but I must point out something important. I think that UART starts communication with Least Significant Bit (LSB) first, not MSB. So the number 198 in binary is 0b11000110, but on video you showed picture where MSB, which is 1, starts first, but it should be 0. On oscilloscope it shold be START_BIT(HIGH)-0-1-1-0-0-0-1-1-STOP_BIT(HIGH).
I believe at 5:10 the start bit is the once which leaves the transmitter first and also reaches the receiver first. So the positioning of start bit in the video should be away from Tx and towards Rx.
That was a nice explanation! However, I want to mention few things
1. I2C is Half-Duplex (not Simplex)
2. SPI is Full Duplex
3. In I2C, we can configure the peripheral to both the modes - Acknowledge and No Acknowledge
SMBus and I2C are slightly different protocols using the same hardware. Isn't No Acknowledge actually SMBus?
what is I2C Protocol in Arduino Nano ?
@@elhoward7440 no, ACK and NAK are both part of the I2C addressing protocol. When you write to a slave, the slave needs to pull down the SDA line to ACKnowledge that it is ready to receive communications.
@@AMG-gc4io Its the Wire.h library and the same pinout as the uno (A4,A5)
Also, I don't think you say Bauds/second, as 1 Baud = 1 bit/second
This is honestly one of the most helpful videos I've ever watched. I wish I saw this in school a few years ago.
fuck schools man schools never teach you shit. of the 100% of content I learnt from college(in which my major MATSE is top 10 in US) probably 15% of the shit is actually useful. rest they just make you jump through hoops and run in circles and chase your own tail. I talked to professors and very smart people(well, smarter than me for sure) and they all tell me they purposefully make this shit difficult. I picked up more programming stuff in a month with my flipper zero than an entire semester worth of programming courses in college/. by the end I finished my college programming class i still have trouble fucking printing hello world but with interest and a bit of self learning I'm writing sql now.
I m not of this theme. Even dont know what that chips are for.... i m cab driver . Wanted just watch some fun on utube before sleep.
And even I understood how these guys communicate😊
Really good lesson.
I wish i could see that 50 years ago. Maybe that could change my life
Finally I understand how timing of serial communication works. Thank you.
This is something I was really planning to study and the fact that you made a video on this at the perfect time is just awesomeee thanks😄
@electronoobs, just a little correction needed in the table at 10:27. I2C does have an acknowledge system. The slave will pull the SDA line low when it has successfully received the transmission from the master. This will show up as the last pulse that appears after all the data bits are transmitted. This last pulse will be a high if the master does not receive an acknowledge from the slave. This way, you can clearly get a confirmation of the handshake.
The most simplified video in the field of telecommunication ever, thanks a lot
CAN and JTAG would be interesting.
+1
JTAG, CAN, RS-232 & MIDI
CAN is also very commonly used in protocols. Please make a video.
Yes I would love to see a deep dive in to can
Absolutely agree. CAN bus would be great.
this is the only video on the youtube which is very clean about protocols
In every video your animations are a pleasure for the eyes!
I wish I would have paid more attention in school. But I'm glad ppl like you are around to whip me into shape.
You just have made me understand one of my most confusing Topic. so glad to have you in my subscription list. You are amazing. realmente te aprecio hermano
Very clear explanation. If I may suggest--It may be worthwhile to draw the vertical sides of the pulses slightly slanted to remind us that the pulses are not ever square, but it takes time to climb from low to high and likewise to fall from high to low. I believe that the counting actually takes place at the middle of the slope (zero crossing) of the leading and trailing edges.
Thanks for taking the time to produce this video.
Thanks for simplifying these seemingly complex protocols for us. Up until now I kinda treated them as black boxes in my head to keep the complexity away but now it feels great to have a fundamental understanding of how they work. Although Id love to see a bit more explanation on SPI.
Wow, it's really rare to find videos that are explained so clearly !
You removed all the doubts which I had since 30 years in my mind
Thanks alot
O sotaque não engana. TUGAS NO PODER!
I so appreciate you elaborating these concepts on the circuit boards. That literally saved me hours of hustle. Very well explained! Thank you
Very good and, I'd say, 'honest' presentation, quick enough not to be boring and without any unnecessary talk to make video purposely longer.
Please hook us up with the JTAG and CAN most definitely. USB and debug would be helpful as well. I’ve had a lot of trouble finding good videos for these, but this one on serial communications was superb!! Well done!
Masterclass, I studied a bit of this decades ago but much better explained. Now I want to create an MBUS CDC emulator for 30 years old car stereos.
This is a really great video. I teach this in my intro to engineering class and this video is going to be a must watch addition to that lecture. Cheers.
Really concise summary. I had next to no idea of each of these implementations, or even much of an idea of their spec beyond a communication vector, so this becomes a very welcoming introduction and comparison
We need a video on CAN protocols too, thank you so much for this video.
Very nice video, just a few things to note
- UART can work in both half/full duplex modes
- There can be more than 1 stop bit in UART in some cases
- I2C is a half-duplex protocol
- SPI is a full-duplex protocol
- The concept of acknowledgement in I2C is based on whether the slave is ready to receive data or not, so it's not applicable to generalize the term over I2C.
You make it much easier to understand using your Scope. It is nice to see someone knows what a Oscope to display what you are describing. Keep up the good work. UP SCOPE !
Yes sir we want more videos on this topic thank you, you are awesome
Love from india
hi Mohammed Arbaz,
I am a part of the open-source Arduino simulator development team. It will be great if you can have a look and share your feedback🙏😃
Some of the examples are here
wokwi.com/arduino/libraries
and here
www.wokwi.com as well
if it is interesting kindly let me know
I respect and really appreciate the effort it would have taken for you to make such nice animations for explaining. Its a delight to see your work . I'm a fan, really helped me to understand concepts better. I will appreciate if you show more of oscilloscope result with a simple example data. Otherwise i love the work. Its just A1 class
Since long time, I was searching for such an explanation and today by your video my concept got clear about bauds transmission. I'm really thankful to you for that.
This is a really awesome video! I've rewatched it 3 or 4 times over the years to prepare for interviews
They actually asked you stuff about this?
This presentation was one of the best I've seen in a while. Simple and very easy to understand. thanks🙂
Please make for other serial communication protocols. I am waiting along with other thousands of people. Your explanation is excellent.
This is the first video that explains this in a way that makes perfect sense to me. Thanks!
"The first low is a start bit." sounds awfully similar to "The first step is the hardest."
👏 👏 👏
Thank you for this video.
Best thing about you, is that you keep it very simple yet effective.
Please make a video on CAN communication.
Easy understand videos. Its Better than the IOT class lectures that i attended in my college.
You explained serial communication better than anyone else
Oh my God !!! i am so thankful to you. I mean u did so much effort on one video for explaining each and everything and that too for free❤️❤️❤️❤️❤️❤️u r legend
Please do more on CAN communication and the others. You are such a great help in education and simplifying such difficult subjects many thanks
Dude I couldn’t explain this any better. Well done
what a tutorial! wow thank you my friend!
The best explanation I have ever heard!!! Hats off ;) This video just solved a great mystery in my mind on serial communication.
Thank you bro, you have explained the concept confused me for a longtime in a way that even a beginner can understand
Speaking of "bauds per second" is actually not very useful in this context, because the term "baud" itself actually means "state changes per second"! (Thus bauds/sec would technically be the _change_ in the rate of communication.) A change in state of a communication line may also - and often does - represent more than one bit, although for I2C and RS-232 it does indeed represent only 1 bit per (potential) state change, so its baudrate equals the bitrate or bps (bits per second).
And also, I2C does not need to know the baud-rate beforehand, that's why we have a wire for a clock.
yeeep
In most digital communications baudrate is bitrate. The difference applies to analog communication, where phase shift and multiple amplitudes can encode bits.
And yes, all sync communication can lack the bit rate information since the clock establishes the bitrate. It is however usual to establish some margins for each device, and if master is outside those margins errors can occur (usually due to hardware timing restrictions of some other kind).
So i2c could do adaptive baud rate? In theory at least
@@hansdegroot652 i think you could develop a program on the sending and receiving device. That'd send a signal to the receiving device to change its baud rate (on the receiving device). On the uart communication system as well, although it'd take its sweet time for the changes to take effect.
As for the i2c, itd be just about instantaneous. Soo, yes.. theoretically you could have adaptive baud rate on the i2c, although I think a predetermined, static rate should probably be more efficient and stable.
Why not you should surely post more.I really admire and thank you for these videos.Keep it up.
Well, this sums it up greatly. I work a lot with digital signaling via I2C which usually come in a 4 pin layout, GND, VCC, SDA and SCL since active devices need an additional power source.
Anyway, great content, subbed
Serial is slower in theory, but in practice, it's very hard to match the different bits up when using parallel communication. The faster your clock, the harder parallel communication becomes. With the clock speeds we have today, serial communication is without a doubt the most stable and fastest way. You can also double a serial link by doubling the wires. But unlike in parallel communicating, you don't have to synchronize the bits, you only have to synchronize after large portions of data have arrived. The fastest serial links (like gigabit ethernet, and USB C) , now use multiple wire pairs for serial communication.
Its really a clear explanation with all the variations among communication protocols. Expecting vedios on CAN and JTAG. thanks for the vedio..
Great video! Technically, the I2C bus is half-duplex (not simplex) and the SPI is full-duplex.
we have a youtube channel that deals with Arduino,ATmega328P,Java,Serial programming ,robotics. So if you like these stuff do Subscribe. Sorry for annoying
So far the Best Video i have seen on Communication Protocols! Amazing explanation bro!
This video was extremely attainable and helpful. As a CS grad, I have little EE knowledge but was able to understand the concepts in this video. I'm looking forward to a more thorough understanding now.
Thank you sir I have been using these protocols for quite a few years now. This video explained it to me better then I've ever understood. I would just hook it up as it said and not realize the difference.
u saved me from my orals . thank you sir
WOW Amazing video and explanation. Bunch of things that have perplexed me for years solved in 12 minutes... JEEZ where were you in university.
Great.
Please make video on protocols like CAN and USB.
I have worked a lot with MIDI protocol, it uses mostly three 8 bit bytes in a row with a low going start bit.. started in the 80s for communication between synthesis and still used today even professionally.
Well done, nice explanation. It's worth noticing that I2C is bi directional too. A master can read values from its slave devices.
Thanks sir I am lucky that I have found this video. This is the best explanation about digital protocols that I have ever seen.
Thanks a lot for this.
This is great, hope this series continues
amazing clarity.......................keep up the good work brother
I enjoyed a lot this video,showing the oscilloscope waveforms. Awesome. Congratulations.
we have a youtube channel that deals with Arduino,ATmega328P,Java,Serial programming ,robotics. So if you like these stuff do Subscribe. Sorry for annoying
The best explanation out there.
Btw in the uart explanation . Shouldn't be the data order from rx to TX
Very simplified explanation of such complex concept.
This was so helpful. I wish my digital electronics professor explained it like this. Thank You!
Nice video man You inpired me to start youtube and making
videous I love how much work you put on videos You are awesome! I love some day to be one of my subscribers.
I agree! Well done videos! Mine are unedited and nothing even close to these!
Very very nice explaination with practical! We need such brilliant teacher for the world!
best video so far explaining protocols in a simple way! thanks for doing it!
Me encanta como el tío se toma la molestia de hacer el vídeo en inglés y en español por el puro amor a la electrónica.
Está en español? jajaja
Awesome Video tutorial on Serial Communication with very clear explanation.
Kudos Electronoobs!!!
With each new video, quality of content is increasing. This channel is next eevblog.
Very nice informative. Short and sweet. No wharra wharra. Just straight talk, how technical people like it 😋👍🏻 Thanks
This is awesome amazing superior mesmerizing unbelievable overwhelmingly beautiful and breathtaking
This is super important, and when you make a video about it, it becomes demystified, understandable by humans 😁 thanks a ton a ton, keep it up, love your work.
I am sure most of your audience agree with me
Really nice illustrations, loved the voice over too. Perfect video 📸 🤩
The best explanation I have come across thus far...thanks!
This was a concise and well-defined explanation. It is the first time that I see such a great video in this subject here on youtube. I'm inclined to be your subscriber now, thank you.
In one great video I learned so much about the serial connection I use every day on my arduino. Thank you
Thank you. As I am learning how to make things for myself, these come up a lot and have been wondering exactly why a certain protocol might be more useful in certain situations. This helped me a lot to continue my learning. Thank you
Great, this video is more helpful for everyone. your way to teach is totally awesome.
Nice and clear explanation of baud and reading process of a bit in a bit train.
Great video buddy cant be more simplified than this
The way you explain and show with examples is really great to understand. Special thanks for this splendid video. Keep doing this and spread knowledge💯📖📚📝. I have seen a lot of videos online and have to say you nailed it in this session. Wish you all the best and would love to see the rest of the protocol details
Thanks for this video! Best explanation for a hardware guy like me I’ve seen. Getting into UART for BLE radios here.
Nicely summarized. It would be interesting to see how JTAG compares with these protocols.
sir continue the videos with other protocols to
we have a youtube channel that deals with Arduino,ATmega328P,Java,Serial programming ,robotics. So if you like these stuff do Subscribe. Sorry for annoying
This was explained so well and clear that no "Dr." from my fairly highly regarded UK university would be able to in much longer time. Kind thx! [SUB}
Eres un grande amigo! gracias por renovar mi amor por la eléctronica. Sigue asi... tu eres digno que te llamen Maestro.
Amazing video. I was always wondering about different types of communication! Thank you!
Very nice video, thank you very much. It is possible to have two-way communication using simple RX and TX also known as UART. You could use mosfets as a gate and activate them using a digital pin on an Arduino to initiate send or receive. This would also allow you to have several devices connected using the digital pin and mosfets as a selection mechanism. You could pass the signal directly through the mosfet as if it were a switch. A 2n7000 would be a good choice for this. The Arduino would activate the mosfet gate capacitor, then the signal would pass through the drain and source of the mosfet.
You are making grate videos which are very useful for us
Keep making such videos: )
Thank's I was searching this explanation to build my 3d printer, now i kinda know what portocol to use with my step driver, i chose SPI, gain of speed
So revealing, I've always been curious about serial communication
I would like to have a series of videos like this teaching everything about serial communication. Please consider.🙏
Man! Very clean and simple explanation. Thanks. Please explore other protocols also in more videos.
just superb learnt a lot today. very important for a drone guy
Thanks for making this video! You clearly explain how these forms of communication works for beginners (or me at least). A lot of things regarding computer and signal communication makes complete sense now. Keep up the great work!
Brief and to the point. Very useful video .
Thank You Sir. My concept cleared about UART, I2C and SPI communication through this video
The explanation is very good..pls continue making more videos
Nice video, but I must point out something important. I think that UART starts communication with Least Significant Bit (LSB) first, not MSB. So the number 198 in binary is 0b11000110, but on video you showed picture where MSB, which is 1, starts first, but it should be 0. On oscilloscope it shold be START_BIT(HIGH)-0-1-1-0-0-0-1-1-STOP_BIT(HIGH).
CAN, JTAG, USB, MQTT would be interesting to learn from your video
I believe at 5:10 the start bit is the once which leaves the transmitter first and also reaches the receiver first. So the positioning of start bit in the video should be away from Tx and towards Rx.