How to break things and irritate people
Yes, I broke Class Driver Host mode in the last release. My bad. Unfortunately, it’s far too late to fix it now in the download package – so I’ll leave it until the next release (which will be much sooner than people probably expect, now that I can work on it all the time). Thankfully the issue is quite simple to fix – just open up LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h and change this line in USB_GetNextDescriptor():
*((uint8_t**)CurrConfigLoc) += CurrDescriptorSize;
To this:
*CurrConfigLoc += CurrDescriptorSize;
And it’ll all work magically oncemore. Yes, I tried to be too clever and add explicit casting where none was needed, causing the code to jump ahead twice as much as expected each time. Damn.
On the flipside, I’ve alreaded finished off the LowLevel RNDISEthernetHost demo, and I’m putting the finishing touches on a RNDIS Host class driver now for the next release. Yesterday I also added in a new “XPLAINBridge” project (thanks to John Steggall from AVRFreaks) which restored the USB-to-XMEGA UART functionality of the XPLAIN boards from Atmel which people have been having trouble with. Apparently the LUFA code actually works *better* than the official Atmel code (i.e. it doesn’t drop characters randomly) on those who managed to get Atmel’s code working at all — so score one for LUFA!