CAN Bus: Serial Communication - How It Works?

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 207

  • @ELECTRONOOBS
    @ELECTRONOOBS  Год назад +2

    Join my Arduino Course (Spanish): bit.ly/2JY8icE
    My Tools: bit.ly/3uv8bc3
    Help me on Patreon: www.patreon.com/ELECTRONOOBS

  • @HowtoElectronics
    @HowtoElectronics Год назад +60

    Absolutely fantastic video! Your clear and concise explanation of the CANBUS protocol has made it so much easier to understand. You did a great job of breaking down this complex topic into digestible chunks, and I truly appreciate your effort to educate us. I was struggling with some concepts, but your video cleared up many of my doubts. Thank you for sharing your knowledge and helping others like me to understand this better.

  • @alexnewton3376
    @alexnewton3376 Год назад +7

    6 months ago, during my masters studies, I had a little knowledge of CANBUS.
    Now this video has cleared all my doubts. Perfect animations and great explanations.

  • @BitSmythe
    @BitSmythe Год назад +3

    *FABULOUS video.* This will get me started. My Hyundai has two or three buttons that must be pressed EVERY time I start the car. The forums complain of this issue, but the dealer claims they “can’t” change the settings, it’s just that they won’t. So I expect I will be able to read the button presses, and then copy the bits that I need. _And with a little Arduino code, then be able to make my car save the settings _*_I_*_ (WE) want it to have._

    • @bigmon9186
      @bigmon9186 4 месяца назад

      Did u end up getting it done

    • @BitSmythe
      @BitSmythe 4 месяца назад

      @@bigmon9186 Not yet. But did get Arduinos, OBD adapters and started learning the hardware…

    • @bigmon9186
      @bigmon9186 3 месяца назад

      @@BitSmythe Okok Cus I’m a car mechanic and I wanna get into being able to tamper with canbus on cars Cus modern 2024 use it heavy With all the dash buttons these days

  • @matinobrajkovic4876
    @matinobrajkovic4876 Год назад +17

    Nice video but I must add that at 3:18 message ID is not based on the address of the node/device, they do not have address, but rather on the priority of the message itself. The message with lower ID will be sent sooner on the CAN bus in process called arbitration. The message as you mentioned is received by all node but more nodes can respond to the message. Also messages sent by one node should have unique IDs otherwise Bus Errors could occure

    • @kylejewiss659
      @kylejewiss659 Год назад +2

      And this is another reason it is used in the automobile industry, more important systems like air bags, sensors etc will have priority over other things like seat warmers.

    • @conorstewart2214
      @conorstewart2214 Год назад +5

      It was a big point he missed. Multiple devices can read the same message and process it. A device can have a list of messages it is listening for.

  • @mohamedabdelrehem7698
    @mohamedabdelrehem7698 Год назад +2

    i was looking for this exact video 2 days ago and you are here now to save me ♥♥

  • @cookedaudio
    @cookedaudio 4 месяца назад +1

    6:30 - That is pretty ingenious. Thx for pointing out why differential voltage works so well in an automotive situation.

  • @ginamar6218
    @ginamar6218 Год назад +54

    One thing not mentioned in this video is CAN bus termination. Where both ends of the bus has 120 ohm termination resistor. Creating a 60 ohm resistance on the bus. Also in a can network each module on the bus has an in and an out so it goes through that module to another. And if you lose a module on the middle of the bus you may lose all modules or just the ones on the other side of the missing module.

    • @ragohy
      @ragohy Год назад +8

      .... It does NOT go through the module!!! By any means!!! BS🧐.
      If a module is missing, the can bus still works!!!

    • @ginamar6218
      @ginamar6218 Год назад +2

      @ragohy it depends on the network. And in automotive it 100 percent has in and out through the module. If a module is disconnected you 100 percent lose the ability to talk to modules beyond them.

    • @ragohy
      @ragohy Год назад +4

      @@ginamar6218... since there is no car "module" discussed in the video, instead a can bus transceiver and a controller and a mcu, which forms a "node" : can bus will work, if a node leaving the bus (as long as there are two working nodes left!!
      He showed the principals and not how some manufacturer might build it: i. e. two wires in and two wires out. OK??

    • @kashif8704
      @kashif8704 Год назад +6

      That's not true, if you lose one module the other will work properly without any problems. It's a must have safety feature. You are saying that if one temperature sensor is faulty in a car or some other node then airbags will not open because our can bus is down now.

    • @noahw4623
      @noahw4623 Год назад

      ​@@ginamar6218
      That would depend on the bus structure, but it seems highly unlikely IMO as ISO26262 has redundancy requirements that would make it absurd to have that as a failure mode

  • @Aragorn450
    @Aragorn450 Год назад +3

    That was a good explanation of CANBUS! I knew that the ESP32 had pins for CAN but had never looked into how to actually use it, so that was helpful too.
    One thing to also include about CAN is it's best to use a twisted pair wire for the hi and lo pins. For a short test like you were doing, no need, but for using in an actual vehicle, it's needed so that any interference is equally experienced by both wires and it reduces the electromagnetic radiation from the wires as well.

  • @sollykhan2385
    @sollykhan2385 8 месяцев назад +1

    Absolutely fantastic explanation of the CAN system, accurate and very concise,THANK YOU for the time and trouble to produce the great content and for sharing knowledge, it is well appreciated, please post more,and please share a 'Can' of soft drink as a goodwill gesture 🥤🙂👍

  • @grottyboots
    @grottyboots Год назад +2

    Excellent explanation of differential signaling. Keep up the great work!

  • @lebasson
    @lebasson Год назад +2

    Fantastich how you break down the communication protocol this way, I finally feel I understand it at a "material" level. Would love a followup video demonstrating how to interface an arduino/esp32 with CAN bus module with an actual car. Like, say, controlling the windows?

  • @hoctrimededebutry8655
    @hoctrimededebutry8655 Год назад +1

    Hello (Ola !!) from France !! Thanks a lot for these videos about "How it works 😀Muchas gracias

  • @devadasanvarier9814
    @devadasanvarier9814 5 месяцев назад

    Very nicely explained to understand how CANBUS signal works and difference from other BUS forms. Thank you 👍

  • @jclm8049
    @jclm8049 Год назад +1

    Bonjour à tous !!!! Vraiment au top !!!!
    Hello everyone !!!! Really on top !!!!

  • @diegocassinera
    @diegocassinera Год назад +2

    Good video. One note do, there is no reverse computation of crc. Rather the receiver revives the packet with data and crc. The receiver computes the crc on the received data, and then compare the value it generated to the value received. If they do not match, the data is not trusted.

  • @Zombull73
    @Zombull73 10 месяцев назад +1

    I...understood all this. Amazing! Good job!

  • @electronic7979
    @electronic7979 Год назад +1

    It's a nice video with useful information. Thank you

  • @ChrisWilliams-pu8pj
    @ChrisWilliams-pu8pj 9 месяцев назад

    Great video! Good job of explaining CAN function which I had never heard. Thank you!

  • @andreiasimas2984
    @andreiasimas2984 10 месяцев назад

    Achei muito didático o vídeo. As palavras recortadas ajudaram muito.

  • @TechnopolisDotTV
    @TechnopolisDotTV Год назад

    Awesome! I've been waiting for a CAN bus video from you for so long. I had big issues with Arduino Uno and ESP32 CAN communication when using IC SN65HVD230. I will try TJA1050 💪 Thanks.

  • @AbhishekKalyani
    @AbhishekKalyani Год назад +1

    Simple and effective explanation! Thanks!

  • @TheEmbeddedHobbyist
    @TheEmbeddedHobbyist Год назад

    The hardest part of the CAN bus is knowing what the data format is. getting the signals is about 0.5% of the effort, finding out what data format is and getting the information off the bus is the remaining 99.5%.
    getting your head around J1939 is a good way to spend a few weeks.

    • @tyrelllaszlo6024
      @tyrelllaszlo6024 Год назад +1

      Do you have any good resources for reading up on J1939?

    • @TheEmbeddedHobbyist
      @TheEmbeddedHobbyist Год назад +1

      @@tyrelllaszlo6024 sorry, all my data had to stay with the project when I left.

  • @ninadtaralekar
    @ninadtaralekar 8 месяцев назад

    Great explanation of the concepts with briefing pointers and making it more simple 👍👍

  • @nikhilgautam1007
    @nikhilgautam1007 Год назад

    you are really doing fantastic job.your all videos were really helpfull to me thankyou so much your effort.🙌🙌🙌❤

  • @AugustineAriola
    @AugustineAriola Год назад

    This video is great. You never disappoint in providing in depth explanation. By and large, I'm still far away from using this communication protocol because of it complexity.

  • @martyb3783
    @martyb3783 Год назад

    Very good explanation of CAN. Thanks for making this video.

  • @dennisfahey2379
    @dennisfahey2379 Год назад +4

    Excellent tutorial. I have to wonder if anyone has "sniffed" the CANBUS on various car models and built a database of the devices, commands and response codes. It always annoys me that for each car manufacturer you need their ODBII/CANBUS reader. The retail universal ones are just insanely expensive for what they are.
    I recall decades ago someone did this for IR remotes and made a fantastic Universal Remote Control (with macros) that was not available retail.

    • @revealingfacts4all
      @revealingfacts4all Год назад +5

      There is an open source project aimed at reverse engineering these databases. I'm in automotive professionally and everything is going CAN-FD with encrypted buses now. This video is about legacy CAN 2.0B. In legacy CAN you can still have encrypted buses however due to the low data rate it's generally not done except for certain CAN frames like unlocking to tune an engine.

    • @dennisfahey2379
      @dennisfahey2379 Год назад +3

      Thank you for the comment. I have to wonder how strong the encryption is since it has to be low cost. For example when WIFI came out it had no encryption (dumb really). Then they added WEP. That was cracked in a couple weeks. Then they added WPA2 etc. Its the nature of CANBUS to be very cheap in production so I am betting the encrypted standard is hacked in no time. Especially since the commands cannot change without a full software rewrite!

    • @revealingfacts4all
      @revealingfacts4all Год назад +4

      @@dennisfahey2379 well WiFi encryption is at the transport layer. CAN 2.0 has no encryption at transport and is all done at the application layer so the encryption can be as strong as you like really. But many CAN 2.0 devices are designed around lower end processors that usually don't have the processing capabilities to run a full cipher suite so they often just don't. With CAN-FD's higher data rates, things are changing. CAN and CAN-FD have something called ISO-TP which, fundamentally, is just a protocol on top of CAN frames and still pushes the encryption logic up into the application layer. ISO-TP is where things are interesting. You can think of the russian doll analogy or html inside a tcp payload. Like these examples, ISO-TP is just multiple CAN frames that are reassembled to make a complete & larger message. ISO-TP doesn't change the max payload size (8 bytes with CAN 2.0) but allows multiple frames of 8 bytes to be assembled as a complete message so the encryption overhead starts to make sense. It's hard to justify on a CAN bus the overhead associated with encryption for just 8 bytes and so other lesser encryption or security protocols are used which would require a dedicated video/blog post on...

    • @DANEMSPRINGER
      @DANEMSPRINGER Год назад

      Torque Pro with BLUETOOTH OBDII

    • @Oneshot8242
      @Oneshot8242 Месяц назад

      ​@@revealingfacts4allA CAR needs encrypted data? Nah, it's just so the manufacturer/dealer/service department can have exclusivity, and thus, a "digital monopoly". God, I'm so sick of this scam. Thankfully, someone with an oscilloscope and a data analyzer will figger a way around it using a $3 Esp32 and some chewing gum.
      As if a car wasn't expensive enough already.
      And while I'm ranting, how the hell did the engineers who come from an historical heritage as the Me-262, Mg-42, Bf-109, V-1 and V-2, Flak+88, the Saturn 5, and just about ANY car op into the 70s, come up with a design for a high-performance car that requires you to REMOVE NEARLY THE ENTIRE FRONT END TO CHANGE A HEADLIGHT BULB? Are you kidding me?

  • @lancelotsinkuu4347
    @lancelotsinkuu4347 Год назад

    Best video ever, you're a life saver

  • @karanchunawala4662
    @karanchunawala4662 4 месяца назад

    Very nicely explained in a simple language🤟

  • @ecurepair
    @ecurepair Год назад

    Easily explained. Thanks.

  • @bd1982
    @bd1982 5 месяцев назад

    thanks for sharing, with so much depth and clarity!

  • @johncloar1692
    @johncloar1692 Год назад

    Thanks a really neat project. I have a better understanding of CANBUS Thanks for the video.

  • @arunkosare4371
    @arunkosare4371 5 месяцев назад

    Thank you so much this is very useful explanation and simple way

  • @luisjosesalazarserrano264
    @luisjosesalazarserrano264 Год назад

    Brilliant! Thanks for sharing. Can you explain what is the physical limitation in distance between transmitter and receiver? What is the maximum data rate? Why is the shape of the signals on the oscilloscope not square?

  • @SunnieSnell
    @SunnieSnell Год назад

    Lovely rabbit hole to go down, ta.

  • @RoboCNCnl
    @RoboCNCnl 5 месяцев назад

    Super cool video, amazing informative ! And may i please ask how you make such video's? Is there a tool for this? of is every movement a transition in the video editing software?

  • @DANEMSPRINGER
    @DANEMSPRINGER Год назад

    Awesome video man! I'd love to see this expanded to showing different inputs such as potentiometers, sensors, triggers etc. And possibly display the data to Torque Pro (Android CAN BUS Reader Apk.).

  • @suhaskasute9353
    @suhaskasute9353 Год назад

    pure knowledge and informative video

  • @MrFKD
    @MrFKD Месяц назад

    best expalanatio ever, thanks bro!

  • @iuhere
    @iuhere Год назад

    what are your plans or what way would you use a can bus reader to accomplish what tasks/goals? please share some insight on what you would do with can bus access to devices available near you. that will be veyr interesting to hear what you oculd do with it.

  • @dinismaia
    @dinismaia Год назад

    Fantastic explanation. Thanks for sharing your knowledge 😃👏👏👏

  • @aco7992
    @aco7992 Год назад

    Excellent clear explanations thanks for the video!

  • @mrwayne8018
    @mrwayne8018 Год назад

    This is what I’m getting to unlock some features on my car 😀

  • @thexht7927
    @thexht7927 Год назад

    I think 1 thing to clarify is that you don’t calculate the original data from CRC bit, but you use the received data to calculate the expected CRC then compared with the received CRC. If data is > 4bytes long then reversible calculation from CRC is impossible

  • @liquidusblue
    @liquidusblue 4 месяца назад

    I finally understand BUS!

  • @jordannzokou1750
    @jordannzokou1750 Год назад +1

    Thank you for this video it is amazing !!! Can you make and other video to talk about Modbus communication? It will be very nice…

  • @prathameshmore4739
    @prathameshmore4739 7 месяцев назад

    Very smooth to understand. KUDOS!!

  • @pashko90
    @pashko90 Год назад +2

    I wish to see more practical implementation, let's say listening and emulating a CAN module, such as ECU and play with a data frames to see how changing parameters can change things on a cluster for example

    • @affieuk
      @affieuk Год назад +1

      This would be amazing, I find most videos are very academic.

  • @ddmmgg1
    @ddmmgg1 4 месяца назад

    @ELECTRONOOBS : @3:30 its said that the ID part of the message that the device is sending is the ID of a device whom the message is intended for, whereas ID is a number associated to a message and its used to determine bus arbitration.

  • @shenfernando386
    @shenfernando386 2 месяца назад

    Thank you was a really great video and well explained

  • @ami6packs
    @ami6packs Год назад

    Awesome video. Looking for more advanced projects based on can bus.

  • @viktoreidrien7110
    @viktoreidrien7110 Год назад

    excelent video man, superb !! thanks for the knowledge.

  • @Yulian.Mladenov
    @Yulian.Mladenov Год назад

    very good explanation for beginners!

  • @nathanielmelchor6177
    @nathanielmelchor6177 Год назад

    Such a fantastic video @Electronoobs. I'm just wondering about GND connection between Arduino and ESP32, I didn't see it in you diagram. Best!!

  • @telsonlancycrasta
    @telsonlancycrasta Год назад

    Thanks for making video on this topic ❤

  • @turkialshehri9762
    @turkialshehri9762 Год назад

    My brother , I need your help. I am currently working on a graduate project to operate a water pump through direct solar panels, and you know that the voltage will change a lot. My design is to build a DC to DC converter. The voltage range between 100 volts in the morning and evening to 350 volts at noon. can it works in this large range of wide range of voltage without getting core saturated or losing his job ,Do u think by changing switching freq and duty cycle can it work fine?.Arduino nano as switching frequency will be

  • @BitSmythe
    @BitSmythe 3 месяца назад

    *NO NEED to say “What’s up guys” it just sounds dopey. Otherwise, great video - very nicely explained!*

  • @HowardZ-k3g
    @HowardZ-k3g Год назад

    Great video, really well explained and detailed. Can you please make a video or explain how CANopen is different? Since they share the same physical layers, can you read CANopen the same way?

  • @inventorkr1
    @inventorkr1 Год назад

    ❤❤❤❤❤❤

  • @habtamusium8646
    @habtamusium8646 4 месяца назад

    I am new for this topic and had interest to know further w/c help my project to do fward . many thanks !

  • @tyrelllaszlo6024
    @tyrelllaszlo6024 Год назад

    Great video! Did you connect the the grounds of the esp and arduino ?

  • @kinkdaka1
    @kinkdaka1 Месяц назад

    Very good video. Thanks for that.

  • @bobmantheawesome
    @bobmantheawesome Год назад +1

    CAN is also used on spacecraft as well as automobiles

  • @Jose-tw9bl
    @Jose-tw9bl Год назад

    Great topic! I would love to see how to use libraries on the msp430

  • @PsychoPod
    @PsychoPod 8 месяцев назад

    Great video, really enjoyed it. Could you do a similar one with Modbus?

  • @padmanabhanrajesh2366
    @padmanabhanrajesh2366 Год назад

    Really good explanation bro

  • @shivasingh7879
    @shivasingh7879 Год назад

    such a good explanation

  • @araz1977
    @araz1977 Год назад

    Great video, thank you for making this...

  • @leehewitt9559
    @leehewitt9559 11 месяцев назад

    Great description. 👌👌👌

  • @amaechichristopheribeme184
    @amaechichristopheribeme184 2 месяца назад

    Thank you very much for this video. However, I can’t find the ESP code you mentioned is in the description. Could you please send me the link to the code and the CAN.h library you added?

  • @sachinchoudhary0487
    @sachinchoudhary0487 Год назад

    Excellent video👍👍 keep going

  • @ElabIndustrial
    @ElabIndustrial Год назад

    Thank you sir

  • @udy2530
    @udy2530 5 месяцев назад

    Hi there, correct me if I am wrong but when he explained on the CAN data message with the ID, I understood it as each device has unique ID, and only the device with the given/matching ID will act on that data message. Meaning that the ID refers to the address of the device(the animation show it like that). However, when I did some research the ID actually represents the type of data message for prioritization purpose and not the device address. It is to make sure only one message is sent every time CAN bus is not idle. Again correct me if I am wrong tho. Its a good video tho, thanks.

    • @udy2530
      @udy2530 5 месяцев назад

      Ouh nevermind... I just found a comment with similar opinion with mine. Took me multiple website and videos to confirm this. Thanks tho!

  • @bekomcar554
    @bekomcar554 3 месяца назад

    This is it, Big thanks.

  • @marktompkins3180
    @marktompkins3180 Год назад

    Excellent instruction!!! *****

  • @peterf983
    @peterf983 Год назад

    Nice! Connect to CAN in your car and show us what we can do about this...

  • @mohibullah6215
    @mohibullah6215 3 месяца назад

    Please RS485 modbus protocol video. Thanks for this great video.

  • @NicleT
    @NicleT Год назад +2

    It reminds me how XLR audio signal works to prevent noise.

    • @CookieTube
      @CookieTube Год назад +1

      That is called a *'balanced'* audio signal, in contrast to an *'unbalanced'* audio signal.
      As such, a single mono audio signal needs 3 wires. And a stereo signal (effectively 2 mono signals) uses 6 wires (or 5, as you can share the 'common/ground' if you use it in the same cable... though usually in the audio industry dedicated single stereo cables are very rarely used, if at all).
      *But do note that it will not reduce all types of noise!!* Audio is an *analog* signal, not a *digital* signal like CAN-bus. As such it can not eliminate all types of noise.
      Also note: 'XLR' is just a type of plug! It has absolutely nothing to do with the type of signal! Eg: you can just as well use a 'stereo jack' for a balanced mono signal (which is indeed also used in the industry for connections to an audio mixer for example, along side 3 pin XLR plugs)
      So, a far better comparison would be the lighting protocol 'DMX' (to keep it in the same 'entertainment industry' as audio). Which IS a digital signal and also uses a bus topology, just like CAN-bus (and also uses XLR style plugs). Though, it does use master-slave topology, unlike CAN-bus. In the DMX protocol the High and Low (or Plus and Minus) ARE used as a differential signal to eliminate noise.
      And just as with CAN-bus, with DMX you need proper *termination* or you WILL have reflections on the signal which WILL screw up your signal! (although many hobbiests will tell you it doesn't matter. But they often don't use long lengths of cable so they wouldn't notice it, as for short lengths the termination doesn't matter THAT much).
      Either way, this video emitted even to mention the 'termination' requirements. it is an EXTREMELY CRUCIAL and HIGHLY IMPORTANT fact! He should have mentioned that at least.

    • @NicleT
      @NicleT Год назад

      @@CookieTube thanks for the precision, I was effectively talking about balanced signals. I do know the difference between connectors and signal protocols, but choose the term "XLR" for accessibility and understanding. But hey! You have great informations there, many thanks.

    • @CookieTube
      @CookieTube Год назад +1

      @@NicleT Thanks.
      And no worries, in practice, at the work floor, we also use just the term 'XLR' to refer to an balanced audio cable...
      eg: _"Do ya have a XLR 2m?"_ or _"Do you have a 2m mic cable?"_. ... instead of _"Do you have a balanced audio signal cable of 2m, with 3 pin XLR plugs?"_ .
      And for DMX it's: _"Do you have a DMX cable 5 pin?"_ , instead of _"Do you have a DMX cable with 5 pin XLR plug?"_ .
      But on the internet, I see a lot of people confusing those things... hence my 'overlong' pet peeve explanation. hehehe...

  • @BitSmythe
    @BitSmythe 3 месяца назад +1

    1:45 *VIDEO STARTS HERE!*

  • @PhG1961
    @PhG1961 Год назад

    Awesome video! What about a video on ModBus and Arduino/RPi?

  • @billytalentrocks345
    @billytalentrocks345 5 месяцев назад

    Thanks! How do the devices avoid talking over each other for the half duplex? Just wait til the line is low and hope no one else starts at the same time? Or do you have a master that starts requests and the slaves only respond?

  • @tomtac820
    @tomtac820 Год назад +1

    Can you make a video on how to read a embedded c code with multiple registers, bits and .h .c files and understand code written by someone else

  • @FranciscoJavierGracia
    @FranciscoJavierGracia 10 месяцев назад

    I'm measuring with the oscilloscope the signal, and it's not the same you're getting. Both of the lines are lowering their voltages.

  • @moulayediag3873
    @moulayediag3873 Год назад

    Very great work

  • @omarmejri8360
    @omarmejri8360 8 месяцев назад

    think you it's a good lesson

  • @wtfucrazy
    @wtfucrazy Год назад

    Great video!

  • @Antz_411
    @Antz_411 3 месяца назад

    So do all CAN trancievers come with a predefined baud rate, or is it mostly configurable?

  • @SusanAmberBruce
    @SusanAmberBruce Год назад

    Are you going to do a video about the UNO R4, I hope you do.

  • @shoumikahmed6373
    @shoumikahmed6373 Год назад

    Hello,Thanks for these informative videos.I have learned a lot from them. I have been eagerly waiting for the Lithium battery charger discharger project. Any update about that?

  • @philljustphill1656
    @philljustphill1656 6 месяцев назад

    Can I splice a twisted pair in the can bus wires from one module so it can send the signal directly to another module? bypassing a gayeway module...

  • @dsbohra
    @dsbohra 8 месяцев назад

    Can you put the link for the complete tutorial please, thanks.

  • @qzorn4440
    @qzorn4440 Год назад

    CAN 🤩 you provide a working example using the newer Orange Pi5 GPIO? The OPi5 does not have a step-by-step CAN example. 😎 Thank you.

  • @ceciliochavezaquino5051
    @ceciliochavezaquino5051 8 месяцев назад

    Fantastic!!!

  • @sudheerkumar5966
    @sudheerkumar5966 Год назад

    Very good sir

  • @eemtech1606
    @eemtech1606 8 месяцев назад

    CAN protocol has similarity with MODBUS protocol. Maybe you can make the comparison between the two.

  • @Poult100
    @Poult100 Год назад

    Thank you! Now I know.

  • @supremeleader5516
    @supremeleader5516 11 месяцев назад

    amazing video

  • @ranganatennakoon
    @ranganatennakoon Год назад

    great explain !

  • @regueraguiessabbar2103
    @regueraguiessabbar2103 11 месяцев назад

    thank you man