[geeks] USB reference?

Mouse mouse at Rodents-Montreal.ORG
Sun Mar 8 15:08:20 UTC 2026


I'm looking for ground-up documentation on USB (reasons below in case
anyone cares).  At the moment I'm most interested in conceptual
protocol-level documentation (what is an endpoint, how do transfers
work, that kind of thing), but I've found that understanding a thing at
every level usually turns out to be valuable eventually.  I want to
build host software to speak to a USB device.

I've been noodling around the Web this morning (I'm not much good at
it; it's difficult and unpleasant for me) and have found pretty close
to nothing: everything is either descriptions designed for the sort of
person who doesn't know what an ohm or a byte really is or
documentation on close to the very lowest level (connector pinouts and
such), nothing in between.  Anyone got any pointers?

As for why I care:

A friend just gave me a (relatively) open smartphone.  I of course want
to replace the software on it (especially as the existing software is
an Android variant which refuses to complete its setup without making
me agree to some Google ToS even when I tell it to turn off all the
Google `features' it offers).

There is a magic startup gesture which allows dropping into the
bootloader.  But the bootloader then just tells me to connect USB and
run a particular tool on the host.  That tool requires a whole pile of
prerequisites to build and appears to be Linux-only.

I've found a document which speaks in terms such as "requires two bulk
endpoints, one in and one out; max packet size is 64 bytes; packet
content in this direction is such-and-such".  I obviously am lacking
details of important concepts - an endpoint is a simple concept, but
the devil is, as always, in the details; I can't write software for
using this without knowing what, for example, it means to send a packet
to an endpoint, how to set up endpoints, etc.  I may be able to use
some existing software, but first I need to know enough to figure out
whether existing software does anything useful for what I want.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse at rodents-montreal.org
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


More information about the geeks mailing list