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 Device Manager? It's N...
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
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 Device Manager? It's N...
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
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.
https://www.youtube.com/post/UgkxvMno3tHF9bHJ4N3BiNBrIeZPUuBtQZWF