I did USB from scratch on the 18F4550 and later ported to 18F67J50. I have nothing worth sharing, but like anything else: read the specs for the peripheral and the USB specifications (available for free from usb.org) and you can do it. A hardware USB protocol analyzer may be useful here. A protocol analyzer is more useful for USB than other protocols since (1) USB is fairly complex, (2) unlike something like asynchronous serial you can't just use a normal transceiver to hack up a sniffer, and (3) sniffing in the host computer is less useful because a lot of the low-level details you need to worry about (like data PIDs and handshake packets) are taken care of by the host controller and thus not visible in e.g. Wireshark. I got the Beagle 12 from TotalPhase because it wasn't too expensive, and I'm happy with it (particularly the official software being available for Linux), though others are probably good too. I definitely wish I'd bought it earlier than I did! Chris On Wed, 18 Jan 2012 19:45:00 +0000 David wrote: > A quick survey for anybody who has used USB on 18F parts. Is the=20 > Microchip USB library the only real solution? >=20 > From previous experience with Microchip libraries I prefer to simply=20 > start from scratch. However I assume that the USB module is more=20 > complex than the MSSP, ADC and the other 'basic' peripherals. >=20 > I'm off to read the datasheets & other documents now, but would=20 > appreciate a steer on the libraries. >=20 > David --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .