Every instance of the word "TRANSMIT" is misspelled as "TRANSIMIT" in usb_desc.h (and presumably elsewhere). I needed to add an ENDPOINTx_CONFIG line and got a compile error because I typed "TRANSMIT" correctly. Otherwise, the code and comments are beautiful and I had no trouble getting my project working. Thank you so much!