Notes on USB 1.1 low-level protocol for FPGA implementation

Introduction These are the consideration and design decisions I took when designing a transparent hub for low- and full-speed USB (that is, all covered by USB 1.1, and not high-speed as required by USB 2.0). A transparent 1:1 hub is a device with one male USB plug, and one female plug. It basically substitutes an [...]

Linux: Where the USB related kernel files are

A few notes on where to find USB related kernel files on a Linux system (kernel 3.12.20 in my case) $ lsusb [ ... ] Bus 001 Device 059: ID 046d:c52b Logitech, Inc. Now find the position in the tree. It should be device 59 under bus number 1: $ lsusb -t [ ... ] [...]

USB 3.0 is a replacement, and not an extension of USB 2.0

USB 3.0 is slowly becoming increasingly common, and it’s a quiet revolution. These innocent-looking blue connectors don’t tell the little secret: They carry 4 new data pins (SSTX+, SSTX-, SSRX+, SSRX-), which will replace the existing D+/D- communication pins one day. Simply put, USB 3.0 is completely standalone; it doesn’t really need those D+/D- to [...]

Reading the firmware ROM from a Renesas uPD720202 USB 3.0 Host Controller using Linux

Pretty much as a side note, I should mention that the firmware should and can be loaded with a Windows utility named K2024FWUP1.exe. Get it from whereever you can, and verify it isn’t dirty with $ shasum K2024FWUP1.exe c9414cb825af79f5d87bd9772e10e87633fbf125  K2024FWUP1.exe If this isn’t done, Window’s Device Manager will say that the device can’t be started, [...]

Avoiding reboot: Resetting USB on a Linux machine

Every now and then, some USB device misbehaves badly enough to knock out the entire interface, to the extent that the system doesn’t detect any new USB devices. Or work so well with the existing ones, for that matter. The solution for me until now was to reboot the computer. But hey, I don’t like [...]

A udev rule for my USB stick (disk-on-key)

Writing udev rules is well-documented all over the web, but I still wrote down my own quick summary, so I have it handy for the next time. Update: On systemd-enabled system (that’s all of them by 2017?), the system’s udev rules reside in /lib/udev/. The rules in /etc/udev take precedence, and it’s still the correct [...]