Had to read the USB1 spec in 1998 to make a HID Device using a small micro, took me over 3 weeks to get it working and was debugging shit for months afterwards. Would never go there again and for future projects I decided ignorance was bliss and just used whatever stack the chip designers supplied, I suspect that covers 99% of all devices out there.