LUFA 091223 Released!

Another month, another LUFA release. So far, there’s been no (reported) issues with the BETA, so I thought I’d go ahead and release it to the public as an early Christmas present. I want to again publicly thank everyone who has contributed towards what should prove to be yet another popular LUFA package. This release incorporates the new AVRISP MKII clone project changes, giving it PDI programming capabilities for the XMEGAs, as well as a new RNDIS host demo and class driver, plus a bunch of other highlights – see below for the full changelog.

I’m still stoked about the big mention of LUFA in Elektor; the article’s interesting, and it’s pulling in a good number of hits/downloads to the LUFA page, which I’m hoping will convert to donations (please?). Actually, the editor of Elektor has put up a new news item about that article which apparently offers a good deal on USBKEY boards for those not in the US (since the US$ price is about on par with general US distributors). If you’re not in the mood for a USBKEY board, there are now plenty of alternatives which have cropped up over the last year, including the Bumble-b, Micropendous line, Teensy boards, and several other similar vendors. And no, apart from a few free boards for review, I don’t get any kickbacks from that, I really think they’re great products.

Merry Christmas to everyone! If you’re living in Melbourne, Victoria, Australia, see this AVRFreaks thread — we’re organizing for a get-together somewhere in the city after the new year. Looking forward to seeing some of you there.


Version 091223

New:

  • Added activity LED indicators to the AVRISP project to indicate when the device is busy processing a command
  • The USB target family and allowable USB mode tokens are now public and documented (USB_CAN_BE_*, USB_SERIES_*_AVR)
  • Added new XPLAIN USB to Serial Bridge project (thanks to John Steggall for initial proof-of-concept, David Prentice and Peter Danneger for revised software USART code)
  • Added new RNDIS Ethernet Host LowLevel demo
  • Added new RNDIS Ethernet Host Class Driver
  • Added new RNDIS Ethernet Host ClassDriver demo
  • Added CDC_Host_Flush() function to the CDC Host Class driver to flush sent data to the attached device
  • Added PDI programming support for XMEGA devices to the AVRISP programmer project (thanks to Justin Mattair)
  • Added support for the XPLAIN board Dataflash, with new XPLAIN_REV1 board target for the different dataflash used on the first revision boards compared to the one mounted on later revisions
  • Added new HID_ALIGN_DATA() macro to return the pre-retrieved value of a HID report item, left-aligned to a given datatype
  • Added new PreviousValue to the HID Report Parser report item structure, for easy monitoring of previous report item values
  • Added new EVK527 board target
  • Added new USB_Host_GetDeviceStringDescriptor() convenience function
  • Added new LEDNotification project to the library, to give a visual LED notification on new events from the host
  • Added new NO_DEVICE_REMOTE_WAKEUP and NO_DEVICE_SELF_POWER compile time options

Changed:

  • Removed code in the Keyboard demos to send zeroed reports between two reports with differing numbers of keycodes as this relied on non-standard OS driver behaviour to repeat key groups
  • The SCSI_Request_Sense_Response_t and SCSI_Inquiry_Response_t type defines are now part of the Mass Storage Class driver common defines, rather than being defined in the Host mode Class driver section only
  • The USB_MODE_HOST token is now defined even when host mode is not available
  • The CALLBACK_HID_Device_CreateHIDReport() HID Device Class driver callback now has a new ReportType parameter to indicate the report type to generate
  • All Class Drivers now return false or the “DeviceDisconnected” error code of their respective error enums when a function is called when no host/device is connected where possible
  • The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to HOST_SENDCONTROL_DeviceDisconnected to be in line with the rest of the library errorcodes
  • Make MIDI device demos also turn off the on board LEDs if MIDI Note On messages are sent with a velocity of zero, which some devices use instead of Note Off messages (thanks to Robin Green)
  • The CDC demos are now named “VirtualSerial” instead to indicate the demos’ function rather than its implemented USB class, to reduce confusion and to be in line with the rest of the LUFA demos
  • The SImage_Host_SendBlockHeader() and SImage_Host_ReceiveBlockHeader() Still Image Host Class driver functions are now public

Fixed:

  • Added missing CDC_Host_CreateBlockingStream() function code to the CDC Host Class driver
  • Fixed incorrect values for REPORT_ITEM_TYPE_* enum values causing corrupt data in the HID Host Parser
  • Fixed misnamed SI_Host_USBTask() and SI_Host_ConfigurePipes() functions
  • Fixed broken USB_GetNextDescriptor() function causing the descriptor to jump ahead double the expected amount
  • Fixed Pipe_IsEndpointBound() not masking the given Endpoint Address against PIPE_EPNUM_MASK
  • Fixed host state machine not enabling Auto VBUS mode when HOST_DEVICE_SETTLE_DELAY_MS is set to zero
  • Fixed misnamed Pipe_SetPipeToken() macro for setting a pipe’s direction
  • Fixed CDCHost failing on devices with bidirectional endpoints
  • Fixed USB driver failing to define the PLL prescaler mask for the ATMEGA8U2 and ATMEGA16U2
  • Fixed HID Parser not distributing the Usage Min and Usage Max values across an array of report items
  • Fixed Mass Storage Host Class driver and Low Level demo not clearing the error condition if an attached device returns a STALL to a GET MAX LUN request (thanks to Martin Luxen)
  • Fixed TeensyHID bootloader not properly shutting down the USB interface to trigger a disconnection on the host before resetting
  • Fixed MassStorageHost Class driver demo not having USB_STREAM_TIMEOUT_MS compile time option set properly to prevent slow devices from timing out the data pipes
  • Fixed the definition of the Endpoint_BytesInEndpoint() macro for the U4 series AVR parts
  • Fixed MIDI host Class driver MIDI_Host_SendEventPacket() routine not properly checking for Pipe ready before writing
  • Fixed use of deprecated struct initializers, removed library unused parameter warnings when compiled with -Wextra enabled
  • Fixed Still Image Host Class driver truncating the PIMA response code (thanks to Daniel Seibert)
  • Fixed USB_CurrentMode not being reset to USB_MODE_NONE when the USB interface is shut down and both Host and Device modes can be used (thanks to Daniel Levy)
  • Fixed TeensyHID bootloader not enumerating to the host correctly
  • Fixed AVRISP project timeouts not checking for the correct timeout period (thanks to Carl Ott)
 

Comments

No comments so far.

Leave a Reply

 
(will not be published)
 
 
Comment
 
 

 

Vital Stats

  • 35 Years Old
  • Australian
  • Lover of embedded systems
  • Firmware engineer
  • Self-Proclaimed Geek

Latest Blog Posts

RSS