Investigation on USB Applications with AVR
To use AVR for USB, the main consideration is whether the chip itself has built-in support for USB. Currently, the available chip options include1:
- ATmega8U2
- AT90USB82
- ATmega16U2
- AT90USB162
- ATmega32U2
- ATmega16U4
- ATmega32U4
- AT90USB646
- AT90USB647
- AT90USB1286
- AT90USB1287
As of now, only the ATmega32U4 is still being sold, but due to the semiconductor supply shortage, it might be hard to purchase without special channels.

The earliest shipping date is November 23 of next year, which is the reality we face. The semiconductor shortage is gradually impacting upstream supply chains and could subtly infiltrate our daily lives. In contrast, it’s remarkable that large companies like Apple can still consistently release new phones and computers.
Among Arduino boards, the only one that uses the ATmega32U4 is probably the Pro Micro. However, it seems that the original manufacturer no longer sells it, and now it’s mainly other manufacturers producing these boards, leading to varying quality.
Currently, I am using the Aideepen (Amazon link, and I don’t receive any commissions from the purchase). The pins need to be soldered by hand, and in the Arduino IDE, you must use the old bootloader to upload the code. There’s also a slight chance of encountering errors, but considering the low price, it’s manageable.
Another approach is to decisively abandon AVR and go straight for STM32, or the hot-off-the-press Raspberry Pi Pico, or directly use the RP2040.
Footnotes
Related Posts
- When Measurement Becomes the Goal: From Window Tax to PR Counts I once wrote a small tool to count how many PRs I had contributed in a quarter, how many reviews I had left, and how many tickets I had closed, hoping to use the numbers to prove my output to my manager. My manager simply said performance is not judged by output alone. Only years later did I understand—when measurement becomes the goal, it is no longer a good measure. From Britain’s window tax and the Hanoi rat bounty to evaluating developers by PR count today, the mechanism is exactly the same.
- Using Cloudflare Images for Image Storage and Transformation Putting an image on a web page is the easiest thing in frontend. But doing it properly — resizing, generating every format, holding up under traffic — turns into a whole solution of its own. I ended up handing all of it to Cloudflare Images and keeping just one original.
- Stop Using Access Keys Already Access Keys are an easily overlooked security risk on AWS. Use OIDC with IAM Roles so GitHub Actions can securely access AWS resources without any secrets.
- Database Primary Keys: AUTO_INCREMENT, UUID, and UUIDv7 Backend developers often have to decide on a primary key: auto increment or UUID? What about collisions? How much faster is UUIDv7 compared with created_at + index? After benchmarking 20 million rows and looking at the design trade-offs, this post gives you the answer.