See the minimum needed for a USB device to list in Device Manager

Поділитися
Вставка
  • Опубліковано 28 тра 2024
  • See a demonstration of how little has to go right for a USB device to show up in Windows Device Manager or Linux dmesg and understand what that means for troubleshooting USB microcontroller/Arduino projects.
    The video I'd mentioned about beginning regarding wasting time looking for drivers: • Arduino not showing De...
    00:00 Intro
    00:15 Description
    00:42 Demoboard overview
    01:29 Demoboard circuit details
    02:20 USB device enumeration
    04:03 Speeds
    05:17 Testing In Windows
    07:03 Testing In Linux
    08:39 Troubleshooting
    08:57 Physical connections
    09:35 Enable/RESET signals
    10:27 A microcontroller seems to be trying to connect
    11:19 Designs that try to connect by default
  • Наука та технологія

КОМЕНТАРІ • 414

  • @TM-zs7ko
    @TM-zs7ko  Рік тому +508

    I don't have a hackaday account. But, I just wanted to clear up some confusion a poster over there seems to have, just in case you got some ideas about what this video was going to show you based on what you read there. Or you found this video yourself and also came to the same conclusions they did. Or were about to to come to these conclusions.
    They seem to have gotten the point of this thing backwards. So, it's strangely easier to clarify things in reverse order. Starting from the end:
    "He runs through a few other potentially useful scenarios, but really, the best use of something like this is to educate yourself on the lowest levels of USB connection negotiation".
    *_The whole point_** and really **_only point_** of the board shown **_is_** to demonstrate the first (low level) thing a USB device does to signal for attachment, which in turn causes it to list in the mentioned utilities, in the way shown.* That is, the minimum thing that a USB device has to do right to cause that to happen, namely USB device pull-ups. The point _is to educate yourself on that topic and hopefully have that inform your debugging of USB device problems._ Or you can just find it mildly interesting. The board you see in the video was put together to help demonstrate the device pull-ups and nothing more. That "best use" was the _only intended use_ for it.
    *_"[TM] points out, you could use this circuit to test that the physical port on the host at least minimally works."_*
    You could use it that way. But that's not what I'm explaining at all. What I'm showing is what you can expect to see on your computer (in both Windows and Linux), if something successfully creates these signals alone. These signals are the minimum needed to list in same way in both Device Manager and dmesg. That's what I'm showing in the video.
    *_"as this extremely minimal but functional USB device illustrates."_*
    Well, the board is somewhat minimal. But, as many people pointed that you don't really need an actual linear regulator IC on it (more on that below). However, this is definitely not anything _I_ call a "functional USB device." It quite literally reports with failures to read the device descriptor and has nothing on it capable of sending USB messages, which are both things mentioned in the video. What it _is_ is a demonstration of the "minimum needed for a USB device to list in Device Manager", hence the video title.
    So far as I can tell, the author thought the material at the end of the video was intended to describe ways to use the board shown, as though it were made to be a tool you could build and not what it is, a demonstration board. What's being talked about at the end of the video are ways you can use "this understanding"... understanding of USB pull-up resistors. These are the "something useful" I mentioned at the beginning of the video, the "something useful to use in your thinking when troubleshooting USB problems." Ways to use the under "understanding". *Not* ways to use the board.
    I hope I'm not coming off as mean in the above. I'm glad someone was thoughtful enough to mention it on a site about electronics. It's crazy to me than anyone is watching this. I thought like maybe 5 people would watch it, maybe 50. But so long as people are watching it, I do want to make really clear about what is being said in the video and what is not. It is just demonstration and description of a basic thing that USB devices do and how you might use the knowledge of that which is demonstrated to help you in troubleshooting.
    Regarding regulators and dividers:
    Mostly I used a regulator to be more or less in analogy with what you actually find in USB devices. They're typically already 3.3V devices powered by a regulator. Or they're 5V devices that have an internal 3.3V regulator specifically for this purpose. And it's probably the least distracting thing to put there when you're explaining something not-that on the board. I'd also briefly considered using what the Digispark uses, which is essentially a zener regulator and because it features later in the video. And because I also happened to know where some of my zener diodes were. But, I also just had a regulator. And yeah, you could also probably just make a divider from VUSB to GND. I didn't try it. I expect it works. But also I simply had a regulator and cap at hand.
    Could you use a divider? Yeah probably. If you wanted to rely on the 15k internal pulldown you won't wind up with 1.5K on the top. You'll need something more like 8K, I think. Which is not what is called for. Would it work? Probably, I think. If it worked for me would it work for you? I don't know. Maybe.
    If you put 1.5K on the top with only 15K on the bottom you'll wind up above the 3.3V nominal signal range. Is that a problem? Maybe not. If it wasn't a problem (perhaps damaging something) for me would in not be a problem for you? I don't know.
    So, you'd need a resistor in parallel with the 15K internal one, which is quite large compared to what you'd need externally. So you can more or less ignore the 15K and you don't necessarily need to run the parallel resistor calculation and just think of it as simple two resistor network. If you put a 3K resistor on the bottom of the divider that should be about right. With 1.5K on the top it divides 5V to about 3.3V. Would that work? Probably. However, the USB host is going to act on that divider when it tries to set a device address and ask for a device descriptor. Is that a problem? I don't know. If it worked for me, would.... Or you could just use a regulator. And then it will work and immediately be recognized as something that will work if you were trying to explain it someone else, say in a video for example. =)
    If you want to play with voltage dividers or the Digispark/V-USB/bitbanged style zener setup, go for it. If you have TL431 kicking around, I'm sure you could get that to work. Or if you have a simple 3.3V fixed output linear regulator kicking around, maybe just use that. If you're not worried about the repeatability of your setup you have a lot more freedom. Try stuff way out of spec. I did and found at least on hubs that I tried it on it worked fine to get similar results. But, you can get a 3.3V regulator like for under 1USD, in quantity one, at least if you're in the US ordering anything from a US parts distributor.
    Original Message:
    I'm really surprised to find this sort of support. Especially on a video like this. Had a little more to say about it in a community post. But mostly I just want to say thanks for letting me know you're getting anything out of watching this. It's just good to see.
    ua-cam.com/users/postUgkxvMno3tHF9bHJ4N3BiNBrIeZPUuBtQZWF

    • @ddieder
      @ddieder Рік тому +8

      Keep going, this is really great content!

    • @PoiSonSonic
      @PoiSonSonic Рік тому +5

      This is something I have always wondered, but never could put into words to make a question

    • @gtvwill
      @gtvwill Рік тому +3

      Rad video. Good to see this kind of slightly deeper/different content! Cheers!

    • @supermaster2012
      @supermaster2012 Рік тому +5

      I just got randomly introduced to your channel by the algorithm, which is kinda weird tbh since I intentionally never watch any tech channels (I find the "geek as a way of life" philosophy of most tech channels very cringeworthy, but I digress).
      Regardless, for a channel with 1k subs and sub-100k views on a week old video the content is pretty good, definitely good enough for me to gamble my time giving it a sub which is more than 99% of UA-cam channels can say.
      If I had to make a suggestion I'd say invest in a good microphone. Right now the voice track sounds crunchier than a a bag of Cheetos, to the point that for a while I thought you were using a voice modulator of some sort. Nowadays you can get amazing audio for less than $100 and such investment would improve the overall quality of the videos tremendously, specially because the other elements are already pretty good.

    • @alexportier97
      @alexportier97 Рік тому +2

      I am glad I came across your channel. I hope to see more uploads from you soon. Great work!

  • @der.Schtefan
    @der.Schtefan Рік тому +1316

    Plot twist: there was a tiny microcontroller hidden inside the electrolytic capacitor package.

    • @miigon9117
      @miigon9117 Рік тому +256

      Plot twist: those jumpers on board are actually antennas and there's a strong radio emitter nearby to inject the signal wirelessly.

    • @CATech1138
      @CATech1138 Рік тому +14

      an ATTiny10 would work with ease

    • @Xiefux
      @Xiefux Рік тому

      its well known that chinese capacitors (which this probably was) have microcontrollers built in to send all your data to the CCP

    • @gustavgnoettgen
      @gustavgnoettgen Рік тому +1

      It also has wifi

    • @IvanDorozhkin
      @IvanDorozhkin Рік тому +8

      In the cable

  • @theothergameygamer
    @theothergameygamer Рік тому +887

    The internet needs more videos like these that help to demystify what have become everyday technologies an help the folks trying to utilize it to develop some basic debugging \ troubleshooting skills.

    • @TheManWithTheFlan
      @TheManWithTheFlan Рік тому +16

      Especially considering how much manufacturers and developers have been broadly trying to obfuscate the underlying parts of their products in the hope of being able to maintain planned obsolescence, keep their platforms as closed as possible, and squeeze a little extra money out of end users.

    • @theothergameygamer
      @theothergameygamer Рік тому +3

      @@zg-it I used to watch it on a science cable channel back when I had a TV - great stuff!

    • @chrisakaschulbus4903
      @chrisakaschulbus4903 Рік тому +1

      Well at some point in the past you had the whole schematic delivered with your pc.
      People drive cars without having the slightest clue about what a combustion is or how gears work.
      I wish this stuff was more common knowledge since a good percent of people are driving cars and are using computers.

    • @zg-it
      @zg-it Рік тому +2

      @@theothergameygamer hey, turns out the host has a UA-cam channel called The secret Life of components. Still making content now!

  • @Jonaspatzl
    @Jonaspatzl Рік тому +319

    This video is incredibly helpful to quickly narrow down on some USB problems, thanks for condensing all this information down!

    • @TM-zs7ko
      @TM-zs7ko  Рік тому +14

      Did you find this while you were troubleshooting something?

    • @Graham_Wideman
      @Graham_Wideman Рік тому

      @@laughing5559 I think you meant to post this reply on the "Plot twist" thread, not this one?

    • @laughing5559
      @laughing5559 Рік тому

      @@Graham_Wideman To be honest I don't remember making the post or why so I will delete it.

  • @Destructificial
    @Destructificial Рік тому +315

    Great video!
    One small thing I caught: at 4:20 you say that SuperSpeed also pull up D+ to initiate the connection, but this is not strictly necessary. A SuperSpeed connection solely uses the SuperSpeed wires, so it'll even work with D+/D- completely disconnected. This allows for fun stuff like attaching a SuperSpeed-only and a *different* Low/Full/High-Speed device to the *same* USB port!

    • @TM-zs7ko
      @TM-zs7ko  Рік тому +87

      Interesting. I did have it in my head that the negotiation up to superspeed would require an initial enumerate and exchange of a few messages at full speed first. I'll have to look at that again when I'm back to reading about USB.

    • @kreuner11
      @kreuner11 Рік тому +5

      That's weird they didn't use the extra wires for the connection

    • @user-th3jl8mz7y
      @user-th3jl8mz7y Рік тому +17

      @@TM-zs7ko I have a "fiber extender" device which, when opened up, doesn't have soldered D+ and D-, but only has the two pairs of "USB 3+" connections. Hence, it doesn't work for your average keyboards and mice. Which for me was a waste of 400 bucks(I mean, yeah, I can probably solder that in, if I had enough practice and time, because the chip would support it). Because, well, reasonably you don't expect something produced in 2020s to NOT be backwards-compatible.
      On the side note, what did you do to this video so that it came up on yt recommended? 190k views on this one, but almost none on your other videos?
      This is a good explanation for basic USB. Thank you.

    • @adamh1478
      @adamh1478 Рік тому +3

      ​@@kreuner11 I'm guessing that the synchronization overhead would be too large, and that it's more efficient to just leave the lower speed pins alone.

    • @ComDenox
      @ComDenox Рік тому +6

      ​​@@user-th3jl8mz7y the algorithm™ is weird. Sometimes random videos become popular for no reason.
      My theory is that for channels with low numbers the algorithm™ suggests it to only few people, then bases how "worthy" the video is based on that. Basically, it seems to think that it's not worth to show videos of channels with few subs to many people to try to "push" them.
      This means that if the first few people don't watch it, the video does bad. But every once in a while a video like that will be lucky and be suggested to people that actually watch it. This makes the algorithm™ think it's very good, and "worth" its time to show it to more people, which creates a snowball effect.

  • @pascallj
    @pascallj Рік тому +54

    Got this video recommended to me in my feed. I wasn't looking for this, nor do I have a particular use case for it at the moment. But watching these well explained videos of small creators always reminds of UA-cam in it's early days where you got recommended all sorts of random videos because the algorithm wasn't that specific.
    Keep up the good work!

  • @narayanbandodker5482
    @narayanbandodker5482 Рік тому +8

    USB C specs also support the “Audio Accessory Mode” so you can make a mic input and speaker output without even using adc or dac via USB

    • @savagesarethebest7251
      @savagesarethebest7251 Рік тому +1

      This makes sense to why some USB-C to headphones adapters don't want to work on some phones then!? 🤔

    • @narayanbandodker5482
      @narayanbandodker5482 Рік тому +1

      @@savagesarethebest7251 yeah your device needs to support it else it won’t even detect it. Many smartphones support it, but not all

    • @memediatek
      @memediatek Рік тому +3

      @@savagesarethebest7251 you can thank Apple and Google for starting the trend of not supporting it

  • @LFTRnow
    @LFTRnow Рік тому +9

    Next, grab the D+ and D- switches and manipulate them so they are on or off for roughly 570 ns with the following pattern...

  • @hernancoronel
    @hernancoronel Рік тому +61

    At around 7:00 when you say the “system sees the pull up resistor” I would change that to the “the USB controller sees the pull up resistor and reports to the system”. Minor semantic change but it would maintain the different layers appropriately separate. Thank you for the great video!

    • @TM-zs7ko
      @TM-zs7ko  Рік тому +30

      Heh. I'll go nuts if tracked all of that down. I think I get what you're saying though. There's it can be helpful to have that extra specificity. Not much I can do about it now. I see stuff in it like effect glitches, I can hear myself pronouncing things like an idiot, but... yeah. It's done. I've had to transcribe my own unscripted speech before and it's painful listen to how incoherent I sound. So, I'm happy to be understood enough that anyone's getting anything useful out of it.

    • @thewhitefalcon8539
      @thewhitefalcon8539 Рік тому +1

      Is the USB controller not part of the system?

    • @sixstringedthing
      @sixstringedthing Рік тому +2

      @@TM-zs7ko You did a fine job here mate, an impressive lack of ums and ahs for unscripted speech regarding technical concepts.
      As a small-time youtuber myself, I always think I sound way more articulate in my head and then I cringe when I hear the actual unscripted audio track. :)

    • @TM-zs7ko
      @TM-zs7ko  Рік тому +2

      Oh this is definitely scripted or effectively the same with a detailed outline and then speaking naturally as I can but only in short bursts. On good days when I'm awake and talking about something really familiar I can minimize them. But this video probably has a ridiculous number of cuts in it. Less in the parts where I'm switching. I made a somewhat stupid video about mounting single ws2811 leds on headers and that's less edited and I think unscripted, just like a bullet list. And there are lots on ums and ahs in that. The ble sense watchdog one probably is like that as well. I'm not sure how much cutting was done there. I think to the extent that I had a script it was the code itself. But that video is kind of discursive also. It's good if this one sounds natural. But that's not really because I speak like that. Not in general anyway.

    • @NorthLaker
      @NorthLaker Рік тому +1

      @@thewhitefalcon8539 "System" is an arbitrary term, it can mean whatever you want. But I think in this case it might have been better to specifically separate the usb controller from the rest of the 'system' because if you're having problems with usb it might actually be the usb controller that's bugged or broken in some way, and not the device you're trying to connect.

  • @Graham_Wideman
    @Graham_Wideman Рік тому +59

    TM -- I have to commend you on a meticulously conscientious lesson in basic USB. A great job on focusing on the essentials that implement the basic functionality. And lovely attention to details that help everyone keep up, like having all the connections on the Veroboard on one side, and pointing out the number code on the resistors. Well done!

  • @jensschroder8214
    @jensschroder8214 Рік тому +58

    11:31 instead of being pulled to 3.3 volts, it's pulled to 5V across a 1500Ω resistor. The whole 5V to 3.3V conversion is based on resistors and zener diodes. The necessary code for USB is controlled by bit bang software.

    • @TM-zs7ko
      @TM-zs7ko  Рік тому +20

      tinyurl.com/2ev6yq3y A reasonably simulated approximation of the Digispark-style bit-banging circuit if anyone wants to dig into it. I just tossed it together on seeing this. So, I may have done something wrong. Real Zeners are a bit more fiddly than the TL431 I think. But it captures the basic idea.

  • @octothorpian_nightmare
    @octothorpian_nightmare Рік тому +43

    Good stuff all the way through. I'm really impressed with the illustration quality and thought that went into this video, I know that's a lot of work!

    • @TM-zs7ko
      @TM-zs7ko  Рік тому +8

      Heh. It's surprising much time you can sink into this sort of thing. I'm glad you like it.

  • @ferna2294
    @ferna2294 Рік тому +12

    Subscribed. You explain stuff flawlessly. Full of details, visual references and without overcomplicating it. I work as a technician and these type of videos are gold.

  • @LuminousWatcher
    @LuminousWatcher Рік тому +13

    Comprehensive, detailed, simple and informative. Thank you for taking time to explain this. It will undoubtedly help in troubleshooting USB related issues for me.

  • @gnif
    @gnif Рік тому +8

    Extremely good content, I had no idea it was so simple to have the OS see the device. Subscribed!

  • @oscarlupton
    @oscarlupton Рік тому +3

    This is a wonderfully digestible video, yet also very comprehensive. Great job, and this is going to help a lot of people

  • @theninjascientist689
    @theninjascientist689 Рік тому +6

    This was an amazingly explained concept and a joy to watch!

  • @yeetyeet7070
    @yeetyeet7070 Рік тому +40

    For screenrecording (preferably with OBS) you have to choose the option "indistinguishable quality (very large files)" to get crisp recordings. (the files arent _that_ big)

    • @Sestain
      @Sestain Рік тому +1

      Why not just use advanced mode and then choose an encoder that supports hardware encoding like nvenc or quicksync? Hevc has pretty small file size but x264 (software) should be fine too if there isn't much happening.

    • @yeetyeet7070
      @yeetyeet7070 Рік тому +3

      @@Sestain that sounds good. But too complicated for me. Tho nvenc (hardware) is the default encoder anyways

    • @lionkor98
      @lionkor98 Рік тому

      No, you just turn the bitrate up, thats the same result

    • @dieSpinnt
      @dieSpinnt Рік тому

      We need more than 3 totally distinct but "bulletproof" solutions, guys.
      Really!
      **facepalm**

  • @MrStevensarns
    @MrStevensarns Рік тому

    Not only is the content very well presented, but the production quality is exceptional. Thank you TM.

  • @neut1121
    @neut1121 Рік тому +4

    thanks for this video! I didn't know the first level of USB detection was that simple.

  • @tttuberc
    @tttuberc Рік тому +1

    Very nice demonstration of how the USB device detection works.

  • @RobotsEverywhereVideos
    @RobotsEverywhereVideos Рік тому +9

    This is an insanely well made video showcasing a clever thing. Kudos to you!

    • @kinbolluck476
      @kinbolluck476 Рік тому

      EVETHING SHOULD BURN IN VLEANSING FIRE

  • @apaskiewicz
    @apaskiewicz Рік тому

    Wow this is incredible! Thanks for taking the time to make this video!

  • @jensknudsen4222
    @jensknudsen4222 Рік тому

    That was very useful, thank you.
    Let me also take a moment to appreciate the beautiful weathered wood background!
    I used to keep old siding boards around just for that special look.

  • @CarthagoMike
    @CarthagoMike Рік тому

    What an amazing in-dept explanation. Thank you!

  • @raul_jocson_
    @raul_jocson_ Рік тому +1

    What a great video! Thanks! Your explanation is clear, to the point, and well explained. Love to see it. Gonna check out your other vids.

  • @Sniperboy5551
    @Sniperboy5551 Рік тому

    This is very neat, it’s cool to see a video like this become so popular despite a low number of subscribers

  • @LiveOverflow
    @LiveOverflow Рік тому

    This is such a great educational video! Love the idea, explanation and video style!

  • @LordDecapo
    @LordDecapo Рік тому +1

    Love this kinda stuff. Learned so much, will help with my development in the future 1000%
    Thanks for making this!

  • @ian_b
    @ian_b 11 місяців тому

    This video is excellent. Very clear. A video that paints a thousand words kind of thing.

  • @Heeby-Jeebies
    @Heeby-Jeebies Рік тому

    This is such a great demo!
    I absolutely have a better understanding of how USB works now.
    Thank you!

  • @itskevscott
    @itskevscott Рік тому

    Ah, never thought of that before, I always thought it was digital devices talking to each other - very useful and informative! And I did read your channel description by the way!

  • @cyndicorinne
    @cyndicorinne Рік тому

    This is helpful in so many ways: Linux & Windows device debugging, electronic circuit for USB connection, and more. Thanks 🙏

  • @SteveJones172pilot
    @SteveJones172pilot Рік тому

    Great video! I love to see how the low level stuff works. It always helps in obscure diagnostic scenarios.. Thanks!

  • @ZeddZeeee
    @ZeddZeeee Рік тому

    great video explaining something i hardly thought about! excited to see what else you make! keep up the hard work ! :)

  • @electrosssnake1036
    @electrosssnake1036 Рік тому

    Very good video about the lowest-levels of usb connections.

  • @hakkysnak7021
    @hakkysnak7021 Рік тому

    Great video and great explanation of the USB signals

  • @TheCatherineCC
    @TheCatherineCC Рік тому +1

    This rocks and helps remind us that sometimes we overthink things.

  • @techrazor3280
    @techrazor3280 Рік тому +1

    Very nice and to the point video. Really helpful. Thanks a lot.

  • @BerndSchmitt-Martinique
    @BerndSchmitt-Martinique Рік тому

    Thanks. I appreciate people, who know,what they are talking about. I learned a lot from this video.
    Greetings from Germany.

  • @ipaqmaster
    @ipaqmaster Рік тому +1

    Great video. Love knowing how pulling high or low on the data line hints the capabilities of a USB device and that it wants to communicate but also how the address is handled next by USB controller drivers.
    I often see "Device not responding to setup address" with flimsy USBSATA adapters or bays and eventually they figure it out. As if the USB chipset is quick to wake up but the storage controller isn't. If not some other issue involving the cheap design of those ones.

  • @BigA1
    @BigA1 Рік тому

    Thanks for this video on USB. You've helped to lift the lid on the 'Dark Arts' of USB. Looking forward to more interesting videos from you.

  • @Mr-Electronist
    @Mr-Electronist Рік тому +1

    The video is amazing, my mind is blown away. Maybe in the future i will make a usb sound card. I never knew how a usb is conected, now i do !

  • @scarletevans4474
    @scarletevans4474 Рік тому

    So amazingly explained and in a simple way! Especially 2:20 - 4:00 ! Thank you!

  • @ergosteur
    @ergosteur Рік тому

    I don’t do much work with microcontrollers but this video was very informative and easy to understand, definitely will be a bit more aware next time I have to troubleshoot.

  • @GermanTutorials
    @GermanTutorials Рік тому

    Awesome! Please do more USB hardware and software videos like that!

  • @paulfrischknecht3999
    @paulfrischknecht3999 Рік тому

    Thanks for making this. I love it when people show how much magical/cargocult/misunderstanding in thinking there is in common online advice for computer problems...

  • @yeetyeet7070
    @yeetyeet7070 Рік тому +1

    The thumbnail + naming of the video are perfect

  • @estrusherd
    @estrusherd Рік тому

    This video is a masterpiece of clear and cogent explanation. Thank-you.

  • @Suzuki_Hiakura
    @Suzuki_Hiakura Рік тому

    Didn't have any reason to click on the video other than to learn, and I wasn't disappointed. I think it will come in handy if I ever get around to making my breadboard computer. Subscribed and look forward to learning more from you :)

  • @Debraj1978
    @Debraj1978 Рік тому

    I wanted to do this experiment for sometime. Thank you.

  • @johnburgess2084
    @johnburgess2084 Рік тому +1

    Thank you for this informative video. I've been wanting to learn some of the USB fundamentals, starting from the ground up. This definitely started at the ground! I'd love to see something similar to this that shows the minimum messaging needed to send a minimum Device Descriptor in order to clear the Unknown Device error.

  • @supul32
    @supul32 Рік тому

    This is absolutely helpful and great video! It would have taken days to google and learn these information by myself. You have just explained everything in minutes. Subscribed for more videos. Thank you!

  • @victorianomas89
    @victorianomas89 Рік тому +1

    Glad this showed up in my recommended. As a computer nerd with 0 knowledge about electronics, this will come in handy when troubleshooting usb devices. That process can become frustrating very easily when stuff like this is perceived as "magic" by a noob like me. Great explanation :)

  • @overand
    @overand Рік тому

    Today I learned about "new messages" and "time delta" in dmesg, too!

  • @supermaster2012
    @supermaster2012 Рік тому +2

    The algorithm has blessed me in this sacred night with a gift from the internet gods.
    1k subs? Sir, let me up that by 1 right now.

  • @Steven-mv4bb
    @Steven-mv4bb Рік тому

    Thanks for the info! It's amazing to me that I can have BSEE and never have learned this.

  • @hendrikkokulinsky8531
    @hendrikkokulinsky8531 Рік тому

    Sir, you got style! Realy good presentation. Thanks a lot for this video!

  • @vicmac3513
    @vicmac3513 Рік тому +1

    In my dreams you now start a video series, where you build any simple usb device on a breadboard level. It is not everyday when you love YT algorithm for showing a top notch of the top notch-quality video. I had to watch this 3 times to make sure I learnt every piece of details given in this video.
    The outcome was to find just one reason more to hate Windows, lol.

  • @CNC-Time-Lapse
    @CNC-Time-Lapse Рік тому

    Extremely insightful! Thank you

  • @Scyth3934
    @Scyth3934 Рік тому

    God what a great video! Please continue making videos- they're great!

  • @yurkshirelad
    @yurkshirelad Рік тому

    I always wondered about this, so this was interesting. Thanks!

  • @_creare_2742
    @_creare_2742 Рік тому

    Wow thanks, I had no idea a connection could be that simple.

  • @HypherNet
    @HypherNet Рік тому +13

    This video is very clear and answers some questions I've had while tinkering. Thanks so much, excellent work. I would watch anything else you put up that covers the basics of how USB and microcontrollers works. Or really any other low-level computer engineering topics that don't assume a BS in computer engineering :)

  • @smudgerdave1141
    @smudgerdave1141 Рік тому +1

    Great video. I was holding my breath waiting for you to explain what happens if switch both the D+ and D- resistors into circuit...

    • @TM-zs7ko
      @TM-zs7ko  Рік тому +1

      Somewhere in Alaska a railroad crossing signal turns on. =)
      In all seriousness, my understanding was just that you're not supposed to that. So, I wasn't particularly worried covering it. I didn't dig deeply for proscribed behaviour for that situation or warnings against it. However, I was curious enough to turn both switches on and plug the device in and I got inconsistent behaviour in dmesg. Often it seems to detect as low-speed. Sometimes after having detected as low speed if I pull the plug and reinsert it, it doesn't show anything in dmesg. And I'll that repeated and still nothing shows. So, I switch ports on the hub and it shows again as low-speed. Re-insert, nothing. And there seems to be some memory of this event per-port. I'm not sure how much time I want to put into characterizing it though. Because it's possible that it won't be repeatable by anyone not using the same setup. Some of the random element I think I'm seeing may come down to just how I'm physically connecting the cable, it may be matter of which pin touches first. And the weird memory exhibited may be down to something about how my particular hub handles a non-standard situation. And the reason for that might ultimately just come back to "yeah, you're not supposed to do that." But I may look again at the standard if I get bored. They're all PDFs that you can freely download. So, if you're curious you might have a look.

    • @smudgerdave1141
      @smudgerdave1141 Рік тому

      @@TM-zs7ko Interesting you say that the PC remembers what is going on with USB ports. I have noticed this behaviour when I have been struggling with a dodgy USB cable. If you change the cable and it still doesn't work, try a different port. This is particularly noticable with printers. If you plug the same printer into a different USB port, often it assumes a different printer and creates an new instantiation of the driver. Anyhoo, thanks for your comprehensive reply. It was a genuine question - I've never read up on the USB protocol. And "Yeah, don't do that" seems like a good an answer as any. 😊

  • @th1rte3ndb49
    @th1rte3ndb49 Рік тому

    this is brilliant! and the video presentation is outstanding. bravo!

  • @notajetplane
    @notajetplane Рік тому

    great video. clear, concise, and informative.

  • @megacrab
    @megacrab Рік тому

    This video has blown up - can't wait to see more! USB is still a black box to most of us Arduino developers. I learned something.

  • @MuckingFedic
    @MuckingFedic Рік тому

    Thank you for an amazing and interesting video!

  • @notarealname4741
    @notarealname4741 Рік тому

    now this is quality content. thanks for making the internet a better place!

  • @TeezyThaKidd
    @TeezyThaKidd Рік тому

    TIL Wireshark can be used to monitor USB traffic. This is frickin cool. Thanks for sharing!

  • @Darkshadows9776
    @Darkshadows9776 Рік тому

    Just wanna let you know that I think this is super cool and I'm gonna finish it tomorrow, since it's late as heck.
    It's always nice to see some low level stuff like this, and without a formal education in all of it, it's hard to find good resources.

  • @berndeckenfels
    @berndeckenfels Рік тому

    Thanks, interesting that DM shows it that early, but I guess it makes sense to allow the diagnostics you have described.

  • @jayantbhanse7756
    @jayantbhanse7756 Рік тому

    really informative video i might try to make this myself more fun that way

  • @barrylee2001
    @barrylee2001 Рік тому

    that is honestly actually really interesting

  • @ohaya1
    @ohaya1 Рік тому

    Both useful and entertaining, thank you!

  • @LordHonkInc
    @LordHonkInc Рік тому

    Well heck, learned something new today. Thanks for that 👍

  • @GibsnRage
    @GibsnRage Рік тому

    Yes, very useful information! I'm not in IT but everyone at my work knows I'm technical so... well, you get it.. This is new information for me and I am positive it will help me out on more than one occasion to come!

  • @TradieTrev
    @TradieTrev Рік тому +1

    This is an awesome video explaining it simple detail! Hat's off mate! I think I'd waffle on too much explaining the same thing.

    • @TM-zs7ko
      @TM-zs7ko  Рік тому +1

      Oh, I do. It's crazy unnatural for me to not use guarded language and not try to explain everything... and qualify my degree of confidence in it and... it's exhausting. I tend to just drop stuff or telegraph that I'm oversimplifying rather than listen to myself speaking in an overly assertive way about it. People have actually found this one and are asking about or saying all the stuff I'd left out. Just can't win. =)

    • @TradieTrev
      @TradieTrev Рік тому

      @@TM-zs7ko I've been trying to get that sweet spot on my own vids. You can nerd out as one's desires; But most retro blokes are agnostic enough that I couldn't go free range fixing old dead chips.

    • @larssjodahl7660
      @larssjodahl7660 Рік тому

      That restraint was worth the effort. I wish more creators would do the same, so many don't "kill their darlings" and stick to the point. That will distinguish you from the masses that say you left things out. Of COURSE you did. The difficult part was (and usually is, when you explain fundamentals) figuring out WHICH PARTS to leave out.

  • @davidevennou1551
    @davidevennou1551 Рік тому

    Excellent video and very interesting! Thanks!

  • @rambox11
    @rambox11 Рік тому

    Please release your next one as soon as possible. This stuff is fascinating ! (and I'm not being sarcastic)

  • @KunjaBihariKrishna
    @KunjaBihariKrishna Рік тому

    This kind of increased my respect for windows. The diagnostic message in the device manager is cool

  • @AiMR
    @AiMR Рік тому

    You somehow managed to explain in a way that my Aspy brain understands completely 👍

  • @leosh9026
    @leosh9026 Рік тому

    Underrated! Keep this up!

  • @nutzeeer
    @nutzeeer Рік тому

    Truly one of the divices of all time

  • @user-fh2fm7vr4m
    @user-fh2fm7vr4m Рік тому

    Wonderful video! Thank you very much!

  • @wixic111
    @wixic111 Рік тому

    This is very interesting stuff. Had no idea USB device detection was so simple.

    • @TM-zs7ko
      @TM-zs7ko  Рік тому

      The very first stage of it, the minimum to get to list somehow in these utilities. I find it odd to display that way in Device Manager because I would normally tend to think of what's in there as fully detected devices. Really this kind of more like "I've detected a USB attachment request, but I've failed to complete the entire device detection process." Where a full detection would include at least getting as far as reading a device descriptor containing those hardware ids I'd mentioned aren't there.

  • @TheBarretNL
    @TheBarretNL 11 місяців тому

    Very cool, thanks for sharing your video! (subbed)

  • @pkre707
    @pkre707 Рік тому

    Excellent explanation!

  • @fredbcruz
    @fredbcruz Рік тому

    No idea how I landed here but thank you for the amazing content

  • @daveys
    @daveys Рік тому

    Brilliant video! I learned a lot of new stuff :-)

  • @abdultairu
    @abdultairu 3 місяці тому

    This video helped me to have an idea what happened to my CH340C yesterday when I finish populating my board components and tried to plug it into Windows 11. Got exactly the message shown in this video. The message was not very helpful to me until I watched this video. I resolved the issue though and the serial chip was recognized but this was a eye opener. Thanks.

    • @TM-zs7ko
      @TM-zs7ko  3 місяці тому

      Good deal. Yeah, the message itself doesn't tell you a lot. What did it end up being? A break in D-? No decoupling?
      Coincidentally I have a board with a CH340G that I broke that might show up in a video if anything good or at least interesting comes from me trying to fix it.

    • @abdultairu
      @abdultairu 3 місяці тому

      @@TM-zs7ko , All I did was to simply resoldered all of the pins of the passive components that has anything to do with the CH340C, so I am guessing maybe one of the IC pin (D+ or D-) was not properly connected and when it got connected it started working. So, when I saw your video, it sure confirms this for me.

    • @TM-zs7ko
      @TM-zs7ko  3 місяці тому

      @@abdultairu Hard to tell sometimes after the fact. I'm glad someone got some analytical use out of seeing the demo.

  • @VorpalForceField
    @VorpalForceField Рік тому

    Outstanding info .. Very good to know .. Thank You for sharing ... Cheers :)

  • @hopelessnerd6677
    @hopelessnerd6677 Рік тому

    Very useful info. Thanks!

  • @michaeledwardharris
    @michaeledwardharris Рік тому

    Damn dude, that was awesome!

  • @matthewmiller6068
    @matthewmiller6068 Рік тому

    Not sure about personally useful, but VERY interesting! Thanks!

  • @zachleblanc3476
    @zachleblanc3476 Рік тому

    Thanks for the upload.

  • @theclerk3163
    @theclerk3163 Рік тому

    Dude this video is sick

  • @alexmace6134
    @alexmace6134 Рік тому

    This is really helpful! Thanks!

  • @honestlocksmith5428
    @honestlocksmith5428 Рік тому

    I learned a lot. Thanks.