LUFA 151115 Released!

Yes, it’s finally time for another LUFA release, since it’s been over a year since the last.

As everyone can tell from the low Git activity, I haven’t found much motivation for any concrete development for a long time now; I’m still waiting to get back the spark of passion that used to fuel me into working on side projects all the time in my spare time. My recent change of employment has raised my personal happiness levels by leaps and bounds, but still there’s something missing that’s preventing me from extracting enjoyment from coding outside of my job. Playing games and watching TV has a big appeal now that I have long commutes and do embedded development all day. The recent news of Atmel’s sale and the realization that I need to re-do the entire thing from scratch at some point to implement what I missed in my original design doesn’t help, either.

But still, enough wallowing in self-pity. As I said, there’s been some fantastic community contributions, and my friend Morten even managed to resurrect the Rube-Goldberg system I jury-rigged up while I was living in Norway to generate native integrated Atmel Studio help, so it’s all systems go. The builds all succeed (even though I had to set up a new Linux VM to build *anything*, since I’ve hit this show-stopper bug on my system after upgrading Windows 10 to the latest build yesterday) and everything’s all packaged up.

The Atmel Gallery extension will be made available in the next few days, as soon as it’s approved by the Atmel staff. The latest extension is compatible with Atmel Studio 7 only – this is due to the changes in the Visual Studio shell, preventing me from making a universal extension easily. Sorry for that; the older extension versions will still install in Atmel Studio 6.x, and both AS6 and AS7 can be installed concurrently, so it’s not all bad news.

Grab the latest release here. The changelog, as small as it is, is located here.


Comments: 14

Leave a reply »


Dear Dean.

I try to make mouse host program.
I can get sample of mouse host program and I can run success.And I can get data about button, X, Y.
But I want to know mouse wheel data.
Do you have update plan about Mouse Host Program.



Hi Fumio,

You should be using the MouseHostWithParser class driver demo (rather than the plain MouseHost class driver demo, or any of the low level demos). The MouseHostWithParser class driver demo already contains code to extract the wheel data:

The plain demos that do not use the HID report parser could also be extended to use wheel information, however they would be very brittle and would only work with specific mice. Using the full HID report parser code allows you to extract out the data from the report (if it exists) semantically, rather than by blindly using specific bits in the report.

– Dean


Dear Dean,

Thank you kindness reply. I know that your mean.
It seems easy to install at first.
But unfortunately i am using different cpu LPC1769 device.
So i try to modify LPCUSBlib library now.



This project is a simple example how one man can do revolution.

I want simple programming 32u4 leonardo pro micro directly via USB by Atmel FLIP software, and need the version DFU bootloader which can work on leonardo, where HWB is still connected to GND (I don’t know C). So it should be work myguess after one reset down…

I’d check the forums and don’t find tutorial solution of course, maybe I seek wrong 🙂

Regards – wegi

fumio yoshizawa

Hi Dean,

Actuary I can’t understand real mean the HID report parser. But I was lucky it run well and I get mouse wheel data. But this times I can’t get mouse button data.
If I click the right or left mouse button,I always same data
‘1’. Is it impossible to get different data?


Check the `ReportItem->Attributes.Usage.Usage` value of the report items; the different buttons should have different usages, with button 1 being the left-most button. If you want to check what the parsed report descriptor looks like, try the HIDReportViewer project included in each LUFA release.

– Dean


Thank you so much,
‘ReportItem->Attributes.Usage.Usage ‘ value is different.
‘1’ is left button, ‘2’ is right button, ‘3’ is wheel button.

Thank’s again.


The hid_bootloader_cli from the git doesn’t seem to work on Mac OSX 10.11. It states “Error reading Intel HEX file”. Though I know the hex file is fine, I can flash it on Windows using a version of the cli that someone compiled.


Hi Darrel,

I don’t own an Apple device and my previous attempts at setting up an OSX VM were met with failure, so unfortunately I haven’t got a clue what could be going wrong on that platform. The `hid_bootloader_cli` app is essentially just Paul’s PJRC teensy loader CLI app with the VID and PID changed to match the bootloader, so perhaps he will know what is breaking on it, or will have an OSX device around to debug.

Can you please raise a GitHub issue for this on the LUFA project? Perhaps someone else will have the required hardware and debugging expertise to figure it out.

– Dean


Hi Dean,

During my work on my personal MIDI project using your great LUFA library I’ve extended USB-host functionality to work on MAX3421E using LUFA stack. It works using SPI and using interrupts. I don’t know if it works beyond my MIDI needs, but don’t see any reason why it shouldn’t. If you would be interested to include this into official LUFA package, please let me know. Code will need some polishing to your standards, and bit of documentation to be done which unfortunately I don’t have time to do for now.



to Thomas:
Hi Thomas,
It’s very interesting, can you send me the source codes of LUFA library for MAX3421?


Hi Dean,

Can’t find post about latest 170418 LUFA release, so I do hope to reach you here. I would like to ask how far or if anything has been done on the USB Hub support on the host side of LUFA. Facing need of this and prior to break things down I had to ask.


2 Valery: Code is not publishable in current state, the best would be to somehow incorporate it into official release, but this is beyond my possibilities. Meanwhile I have ported LUFA to STM32F103 micro on the device side. So now I’m using LUFA on two different chips than intended.


Hi Tomas,

Yes, I forgot to do a blob post for the last release – development has slowed down and the chips aren’t so popular now given the proliferation of cheap Arduino-compatible ARM devices, so there wasn’t much to tell in the release notes. I’ve actually not been blogging in a long time, partly due to my workplace being very full-on, but also partly due to a general lack of enthusiasm for development outside of the 9-5 hours where I give it all 100%.

I haven’t looked into hub support on LUFA – there’s only one USB AVR-8 device that is still sold that even supports host mode, with AVR32 being a lost cause (the compiler is stuck in the dark ages, and they’ve remained deservedly unpopular). It should be possible to retro-fit it, if that’s what you really need.

Amazing to hear you’ve ported it to the ST parts!

– Dean


Leave a Reply

(will not be published)


Vital Stats

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

Latest Blog Posts