
USB complete
by Jan Axelson · first published 1999
7mentions
6recommended by
7HN commenters
2018–2024first – last mentioned
86% recommend14% neutral
Why HN recommends it
Practical, readable guide to how USB works, from vocabulary and concepts through to the protocol details needed to build or debug a device or driver; suits embedded programmers and anyone writing a USB stack.
Summarised by Claude from recommending comments
This book is for developers who design and program devices that use the Universal Serial Bus (USB) interface. My goal is to introduce you to USB and to help you get your devices up and communicating as quickly and easily as possible.
Affiliate links. As an Amazon Associate I earn from qualifying purchases.
As a circuit designer/embedded programmer: - USB Complete 4th ed (Axelson) - Electromagnetic Compatibility (Ott) - Small Signal Audio Design (Self) - Roget's 21st Century Thesaurus - Verilog by Example (a.k.a. the Little Blue Book) (Readler) - Mouser Catalog
on “Ask HN: What books do you keep on your desk?” ↗…tutorial, but the API matches up really closely to the operations you'd expect to be able to do against a USB peripheral. For learning more about how USB itself works, I highly recommend Jan Axelson's USB Complete[1]. I used an older version of this book to build a from-scratch USB device (on an STM32F0 but not using the built-in USB example code) and libusb-based usermode driver for it. [1] http://janaxelson.com/usbc.htm
on “Writing userspace USB drivers for abandoned devices” ↗In a sense... everything he covers is also covered in the USB spec. I can also personally recommend the book USB Complete by Jan Axelson. Is there a transcript / blog post version of this 30 minute video? I don't think so.
on “How does USB device discovery work? [video]” ↗To understand the USB stack, I've used the following resources: - the spec itself (obviously) - USB Complete by Jan Axelson (quickly go through this one before reading the spec) - USB The Universal Serial Bus by Benjamin Lunt (https://www.fysnet.net/the_universal_serial_bus.htm) If you're writing your operating…
on “Writing a simple operating system from scratch (2010) [pdf]” ↗I've written a device and driver side USB stack, not even bare metal and it took several weeks of attempts and hundreds of pages of reading (mostly USB complete by Jan Axelson, this site is also good but just not as in-depth) to get right and there are still parts of it I don't fully understand. Call it 15 hours to get a "ping" signal across, and another 15…
on “USB in a Nutshell (2010)” ↗This looks fantastic! USB can seem intimidating at the beginning but one start getting the vocabulary and concepts it can actually be understood. I fully recommend the book USB Complete. It might not look like a approachable book but it is very readable! I once had to explore some code that talked to a usb device and I was quite surprised of how readable it actually was! https://github.com/OpenNuvoton/NUC970_NuWriter_CMD/blob/mast...
on “USB Made Simple (2008)” ↗I recently ran into this issue with ebooks.com [0] which is the only way outside of Amazon Kindle to get Jan Axelson's USB Complete and Serial Port Complete references. The only choices are proprietary Kindle format or PDF and EPUB with a very restrictive Adobe DRM scheme. [0]: https://www.ebooks.com/SearchApp/SearchResults.net?term=jan+...
on “Bookworm: A Simple, Focused eBook Reader” ↗