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

Поділитися
Вставка
  • Опубліковано 8 лют 2025

КОМЕНТАРІ • 516

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

    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 Рік тому +10

      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 Рік тому +4

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

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

      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!

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

    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 Рік тому +35

      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 Рік тому +3

      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 Рік тому +4

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

    • @jnharton
      @jnharton 7 місяців тому

      @@TheManWithTheFlan Most of the time that's really about preventing someone else from cloning the product and selling it for less.

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

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

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

      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.

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

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

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

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

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

      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 Рік тому +4

      It also has wifi

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

      In the cable

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

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

    • @OldManBOMBIN
      @OldManBOMBIN 7 місяців тому +52

      For God's sake, man, what's the pattern?? I can't hold much longer!

    • @HenryB6568
      @HenryB6568 6 місяців тому +6

      @@OldManBOMBIN same, i need to know

    • @FracturedPixels
      @FracturedPixels 6 місяців тому +24

      @@OldManBOMBIN up up down down left right left right B A Start

    • @OldManBOMBIN
      @OldManBOMBIN 6 місяців тому +4

      @@FracturedPixels good ole Konami!

    • @Geolaminar
      @Geolaminar 3 місяці тому +2

      @@OldManBOMBIN Uh, yes. That is how timeouts work.

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

    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  Рік тому +116

      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 Рік тому +7

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

    • @АбракадабраКобра259
      @АбракадабраКобра259 Рік тому +31

      @@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 Рік тому +5

      ​@@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 Рік тому +14

      ​​@@АбракадабраКобра259 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.

  • @v8pilot
    @v8pilot 3 місяці тому +3

    Years ago I could debug RS232 connections and tell you anything you wanted to know about it. Today USB is a mystery - I plug it in and (usually) it works. Very interesting to learn about the most basic aspect of how USB works. Thanks for taking the time to post this.

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

    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!

    • @calansmith655
      @calansmith655 5 місяців тому +1

      Same situation for me, although I love messing with electronics so I *may* use this one day. But for me I saw it and was like “ooooh, that would be interesting to learn! Lemme watch that.”

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

    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.

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

    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!

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

    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  Рік тому +13

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

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

    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  Рік тому +39

      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 Рік тому +2

      Is the USB controller not part of the system?

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

      @@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  Рік тому +6

      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 Рік тому +4

      @@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.

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

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

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

    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 Рік тому +3

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

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

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

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

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

    • @jnharton
      @jnharton 7 місяців тому +1

      Which wouldn't be all that useful without the computer providing an internal adc or dac or at least some sort of input/output that software can work with.

    • @cookiejarseattle
      @cookiejarseattle 6 місяців тому

      Kinda similar to the alt-dp mode for transferring video signals.

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

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

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

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

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

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

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

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

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

      EVETHING SHOULD BURN IN VLEANSING FIRE

  • @bgable7707
    @bgable7707 6 місяців тому +1

    OMG, wish I would have found your channels years ago. I'm a Coder from VMS days. Sometimes, the obvious is not always obvious. Pull up's/down wasn't clear in the beginning. And, you even give us a beautiful Wireshark screenshot, no less, an explaination of descriptors. The wonderful world of "record' data structures, aka, descriptors, and OOP. VERY Clear and "descriptive explanations!!! Add another subscriber!

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

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

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

    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  Рік тому +23

      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.

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

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

  • @calansmith655
    @calansmith655 5 місяців тому

    This video is amazing. I love the editing style, and the explanation is really crisp. You put a lot of thought into this!
    I especially love the way you explained each component and how it was connected. I understood perfectly without getting bogged down time-wise.

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

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

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

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

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

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

  • @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.

  • @user-eq2fp6jw4g
    @user-eq2fp6jw4g 7 місяців тому +1

    These type of videos are the reason why youtube exists.

  • @metanim1
    @metanim1 4 місяці тому

    I really appreciate this, this has helped me understand how USB handshakes start, without needing to read documentation

  • @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 :)

  • @awesomecat9470
    @awesomecat9470 4 місяці тому +1

    This is great starter info. Now I feel motivated to learn a little more. I hope u have more follow up videoes to this to get to the next step to making USB devices

  • @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.

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

    Very nice demonstration of how the USB device detection works.

  • @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 :)

  • @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.

  • @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  Рік тому +3

      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. 😊

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

    0:48: demo board: _"although somewhat less conventional"_ ― Oh, it is better than my creations! And it is good enough for teaching purposes.

  • @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.

  • @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.

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

    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.

  • @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...

  • @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 :)

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

    The thumbnail + naming of the video are perfect

  • @abdultairu
    @abdultairu 11 місяців тому +1

    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  11 місяців тому

      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 11 місяців тому

      @@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  11 місяців тому

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

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

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

  • @we-are-electric1445
    @we-are-electric1445 6 місяців тому

    You learn something new every day - at least I didn't know this when I got up this morning !

  • @johnpenner5182
    @johnpenner5182 6 місяців тому

    this is an excellent demonstration and description of the USB recognition protocol. thank you, and well done. 👾

  • @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.

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

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

  • @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.

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

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

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

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

  • @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 !

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

    What an amazing in-dept explanation. Thank you!

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

    This video makes me want to make a USB device. Great video, I like how you explained things!

  • @BaeBox
    @BaeBox 4 місяці тому

    wow this is SUCH high quality content, thank you so much :)

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

    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 Рік тому +4

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

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

      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**

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

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

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

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

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

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

  • @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.

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

    Nice video. Something I found useful when I examined the USB specifications is that if you want to make your own USB power supply/charger, and the charger can supply the maximum current (at 5V) which any USB device will draw, you only need to connect D+ to D- inside the power supply in order to signal any connected USB device that this is a dedicated charger. Without that connection between the two data pins, the device will assume that the USB charger can only supply a maximum of 1A of current, but with it the device will attempt to take the maximum current which it can use. Or to put it another way, without the link between the two data lines, the device will charge slowly and with it the device will charge as fast as it's capable of doing.
    Care has to be taken not to connect the two data lines together when the charger cannot supply more than 1A, as doing so will allow any connected USB device to overload the charger, probably causing damage to the charger and possibly also to the device.

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

      What about other amps like 12A or 3A?
      Should you use resistors?

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

      @@naingtheawperc3817 I've never heard of a charger which can supply 12A. Unless I'm misinformed, something like 3A is the maximum under USB specifications, which the direct linkage between D+ and D- would cover. If 12A is actually allowed (which sounds sus due to the heating it would cause in thin wiring) then I don't know what would be used to signal that.
      Note: If you meant to say 12V instead of 12A, the link between D+ and D- conveys no information relating to voltage.

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

      Not linking them will actually limit charge to 500mA - USB3 spec of 900mA requires negotiating as a USB-3 device.
      Most USB ports these days can support enough in excess over 1A that you don't really need to worry about it. Think non-compliant devices like DVD drives, which only need USB-2 speed but can draw more than 500mA spinning up. The charging controller in your phone will also detect the voltage drop when trying to draw more current than the port can provide, and limit itself to what's available.
      I have some "USB condom" adapters which essentially just bridge the data pins while only providing power to the device, so I can charge my phone at a reasonable speed from normal USB ports (My old Thinkpad could even provide a full 2.4A without dropping voltage, according to my USB load tester)

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

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

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

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

  • @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.

  • @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!

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

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

  • @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!

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

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

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

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

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

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

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

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

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

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

  • @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.

    • @supermaster2012
      @supermaster2012 7 місяців тому

      One year later and OP has 5k subs more.
      My right ear still enjoys the video.

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

    An impressively clear and concise explanation of some essential basic concepts, very interesting/useful content.
    Subscribed, and I'll definitely be saving this one to share with colleagues and fellow enthusiasts. Great job, thanks!

  • @elisha.schiff
    @elisha.schiff 8 місяців тому +20

    Exist (optional)

  • @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.

  • @TheRealPlato
    @TheRealPlato 6 місяців тому

    Thanks for the clear demonstration and discussion

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

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

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

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

  • @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.

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

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

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

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

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

    This is great! Really helps demistify USB a bit.
    Now I'm curisou of whats the minimum for the device to acknowledge its bus address, and maybe show up with a name 😄

  • @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!

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

    This is at least a nifty little doohickey for when I need to know whether my USB port just died or something else is going on.

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

    Great video and great explanation of the USB signals

  • @DFX2KX
    @DFX2KX Рік тому +17

    this seems like the makings of an utterly *infuriating* prank device, seeing as both of those data lines can be switched on and off in an IC at random intervals, but you still have power the whole time. Hook that up to a buddy's internal header and just wait for him to loose his mind at the random device connect jingles.

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

    So I need to drive low the data pins of my digispark attiny85's when I am not using ubs to preven them from clogging my device manager and system notifications?
    I am glad I watched the video till the end. This is a life changer.
    Thanks man!

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

      I'm not completely sure I understand. Mostly what I'm getting at is the board's inherent behavior is to pull up on D-. So, if the processor is in reset, or removed, or just does not have any code on it at all to fiddle with D-, it will still try to attach. I'm probably over explaining here, but the only way it can become anything other than 3.3V with respect to whatever you're doing on the ATtiny85 itself is to set it OUTPUT and LOW. I think the normal behaviour in Windows 10 for a digispark that has an empty or blink sketch on it is that it enumerates as the micronucleus bootloader, it does the upload (if any) and then it transfers control to the sketch with the D+ and D- related GPIOs as input (I think), with D- being pulled high again, but already attached. And that is tends to leave it listed in Device Manager as though it's still properly connected even though it really isn't anymore; I mean nothing is expecting an inbound message. It seems to stay there that way indefinitely. Though, If anything were to try to send a USB message to it it would get an error. If Windows were to spontaneously ask it for a descriptor again (for whatever reason) or any other USB message it would time out, and then perhaps it would unlisted it from Device Manger and then relist as failure to read device descriptor. I'm not sure. But at least with my laptop with whatever few situations I've used it in it seems to stay listed indefinitely provided it's firmly seated in the USB port. With a PCB-trace plug often depending on which port is used as soon as I let go the connections are poor enough that it disconnects. And of course if your code is playing with D+ and D- you can probably cause all kinds of errors and connection/disconnection messages.

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

      @@TM-zs7ko Thanks for the clarification!
      In my experience too the device stays indefinitely in the Device Manager with an yellow warning (I can't remember the exact error). That's kinda annoying by itself but one time I was also getting multiple plug/unplug device notifications. I didn't know what caused it at the time but now I now at least I have some clue. Either it was the noise in the long cable that I was using or the switching of neighboring pin was coupled capacitively to the D-. Either way, writing D- pin low would probably solve all these problems.

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

    Extremely insightful! Thank you

  • @user-rs8zg8ey2b
    @user-rs8zg8ey2b Рік тому +4

    You could replace the regulator and cap with a pair of 9K (or 10K) resistors, this will divide the 5v down to ~3.3v, save money and space in your project.

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

      It's always better to use a capacitor to filter out noise and act as a decoupling capacitor. Sure, it might be coming from the USB port of the computer which is a well filtered source but it might pick up noise over the length of the USB cable coming from the USB port.

    • @user-rs8zg8ey2b
      @user-rs8zg8ey2b Рік тому +1

      @@hrishivenkiteshm7659 couple issues. There is zero switching, just a simple single transition low to high. Zero need for a large cap, a 0.1uF is standard decoupling for a switching ic, your large cap is for supplying current to many IC's, but we don't have a single ic in this circuit that your large cap feeds. The simple, smaller and lower cost voltage divider that I presented is a simple level translator from 5v to 3.3v, no need for the regulator and cap. Please try it.

    • @user-rs8zg8ey2b
      @user-rs8zg8ey2b Рік тому +1

      @@hrishivenkiteshm7659 I have used this simple voltage divider as a sensor level translator in many projects going from 5v to 3.3v. most times using a resistor divider of 1k on top and 1.5k on the bottom. 5v in, 3.3v out, super simple.

    • @user-rs8zg8ey2b
      @user-rs8zg8ey2b Рік тому +1

      @@hrishivenkiteshm7659 maybe you don't understand how the logic level works. Vol and Voh are threshold levels for low and high values, so once past this value if there is ripple or noise at that level it makes no difference. And beyond that this circuit is not transferring data, besides two high or low status bits. Again zero need for the regulator and capacitor.

  • @prenumenume7498
    @prenumenume7498 4 місяці тому

    Thank you for sharing your knowledge with us. It was very interesting and informative :D

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

    This is super interesting and really informative but its just thrown an old issue i had and that im still trying to solve up into the air and shot all the pieces of a solution i had assembled
    I have a microcontroller in two different versions with two different usb to serial chips inside. One will work on linux and is detected on windows but returns errors when trying to connect, the other will work on windows and does not show up AT ALL in linux. Not even an „unknown device“ error. I thought it had to be either driver issues or some weird esoteric problem with the linux usb stack, but this video proves that even if the device is completely dysfunctional it should still have showed _something_ , and the fact that it doesnt makes absolutely no sense

  • @aiyabanana2849
    @aiyabanana2849 5 місяців тому +5

    Someone in China be like: Hmmm maybe I can put all of this into a small package and slap on a 128 TB USB 3.0 sticker on it and sell it for 10 dollars on Amazon.

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

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

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

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

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

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

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

    You could start a series about building something "simple" usb device. Make an overal view about how usb devices, and communication, drivers, etc. works(If you have the knowledge for it). Lot of people don't even bother getting information about this topic(Including me), thinking "This probably too complicated and difficult to learn for me", But this type of tutorial can open some peoples eyes. Even this video made me thinking about it. I would watch it and with it, you will win my lifetime subcribing :D.

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

    Wow cool! When it comes to plugging a circuit that I've made into a modern machine, I would've thought it be much harder to get the OS to acknowledge its existence.

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

    Truly one of the divices of all time