Everything old is new again

MyUSB Library, Projects, Website Add comments

The site’s back up on the new server, to hopefully fix the recent reliability problems — if you encounter any more problems using the new server, please drop me an email. Actually, the “new” server isn’t new at all; it’s the original server that Four Walled Cubicle was hosted on before it was moved some months ago to a (supposedly) better sever with no restrictions.

With the new server comes the new BETA of MyUSB 1.5.0, downloadable on the modified project page. I’ve changed the project page to include links to all the previous library releases (for archival purposes), as well as added downloads for the project documentation.

The site WIKI has been retired, in favor of a seperate documentation download generated from the new library source with the DoxyGen project. The new library is now fully documented, unlike the previous manual WIKI documentation, which should be a huge benefit to all the MyUSB library users. Unfortunately, that means that the documentation for older library versions are no longer accessible, however their interfaces are very close to the latest release.

The documentation is provided in HTML format, both online and as a ZIP download for convenience, and will be provided with each new release from 1.5.0 onwards. Users with DoxyGen already installed can forgo the documentation download, and instead build themselves by running a “make doxygen” in the root project folder.

MyUSB 1.5.0 is a BETA release for the moment, due to all the minor interface changes. I’ve taken this opportunity to rename some of the functions/events and remove unused API to make it more in line with the USB specification. Please send me an email if you encounter any problems with the BETA or mistakes in the documentation, however minor.

The changelog for MyUSB 1.5.0 BETA is:

  • Fixed MIDI demo, now correctly waits for the endpoint to be ready between multiple note messages
  • Added CDC Host demo application
  • Added KeyboardFullInt demo application
  • Endpoint and Pipe creation routines now mask endpoint/pipe size with the size mask, to remove transaction size bits not required for the routines (improves compatibility with devices)
  • Fixed AudioInput demo - now correctly sends sampled audio to the host PC
  • Shrunk round-robbin scheduler code slightly via the use of struct pointers rather than array indexes
  • Fixed off-by-one error when determining if the Usage Stack is full inside the HID Report parser
  • Renamed Magstripe.h to MagstripeHW.h and moved driver out of the library and into the MagStripe demo folder
  • Added preprocessor checks to enable C linkage on the library components when used with a C++ compiler
  • Added Still Image Host demo application
  • The USB device task now restores the previously selected endpoint, allowing control requests to be transparently handled via interrupts while other endpoints are serviced through polling
  • Fixed device signature being sent in reverse order in the CDC bootloader
  • Host demos now have a seperate ConfigDescriptor.c/.h file for configuration descriptor processing
  • HostWithParser demos now have a seperate HIDReport.c/.h file for HID report processing and dumping
  • Removed non-mandatory commands from MassStorage demo to save space, fixed SENSE ResponseCode value
  • CDC demos now send empty packets after sending a full one to prevent buffering issues on the host
  • Updated demo descriptors to use VID/PID values donated by Atmel
  • Added DoxyGen documentation to the source files
  • Fixed Serial_IsCharRecieved() definition, was previously reversed
  • Removed seperate USB_Descriptor_Language_t descriptor, USB_Descriptor_String_t is used instead
  • Changed USB_GetDescriptor() prototype to support multiple languages
  • Removed unused Device Qualifier descriptor structure
  • Renamed the USB_CreateEndpoints event to the more appropriate USB_ConfigurationChanged
  • Fixed MassStorageHost demo reading in the block data in reverse
  • Removed outdated typedefs in StdRequestType.h, superceeded by the macro masks
  • Corrected OTG.h is now included when the AVR supports both Host and Device modes, for creating OTG products
  • USB_DeviceEnumerationComplete event is now also fired when in device mode and the host has finished its enumeration
  • Interrupt driven demos now properly restore previously selected endpoint when ISR is complete
  • USB_HOST_TIMEOUT_MS is now overridable in the user project makefile to a custom fixed timeout value
  • Renamed USB_Host_SOFGeneration_* macros to more friendly USB_Host_SuspendBus(), USB_Host_ResumeBus() and USB_Host_IsBusSuspended()
  • Renamed *_*_Is* macros to *_Is* to make all flag checking macros consistant, Pipe_SetInterruptFreq() is now Pipe_SetInterruptPeriod() to use the correct terminology

Thank you to all those who sent in bug reports and feature requests since the last library release. I’ve also added links to the four projects that I know of which make use of the MyUSB library on the project page — if yours is omitted leave a comment or an email and I’ll add it in.

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in