[geeks] USB reference?
Jonathan Patschke
jp at celestrion.net
Sun Apr 5 21:55:50 UTC 2026
On Sun, 8 Mar 2026, Mouse via geeks wrote:
> I want to build host software to speak to a USB device.
Warning: This is a large project, especially if you're aiming for any
degree of USB 3 support. Implementing a USB 1.1 or 2.0 host stack is a
big project for one person, but USB 3 would be mountainous.
That said, USB, as specified, is a lovely I/O system. Most of the
nuisance comes from implementations cutting forners, but if you're only
planning to support one perihperal and only one host controller, you
only need deal with one set of idiosyncracies.
> Anyone got any pointers?
I've had very good luck with the series of books published by Mindshare
for learning recent PC buses at the register level. I've spent a lot of
time in their PCI and PCI Express books, but only skimmed the USB books,
although I expect that'll change soon as I have a device driver that
I've been putting off writing.
Their USB 2.0 book is called "Universal Serial Bus System Architecture,
2nd Edition" by Don Anderson, and its ISBN is 978-0201309751. It's
likely to be carried at a library in a large city, but if you can
tolerate buying an eBook, Mindshare will sell one to you without any
troublesome DRM.
There's also a lot of jargon that's specific to USB in a bothersome way,
which is the clearest indication that it's an Intel-designed protocol.
The specification is helpful in cutting through the jargon:
https://www.usb.org/document-library/usb-20-specification
The next best reference for that is, honestly, the Microsoft user-mode
driver documentation because of how closely their API mirrors the
specification, but Microsoft's documentation is prone to moving around,
so any link I could provide would be useless in little time.
--
Jonathan Patschke
Austin, TX
USA
More information about the geeks
mailing list