Creative Commons images are CC BY-NC-SA 3.0


added to your
shopping cart

21 available 21 in stock
19.95 1+ units
17.96 10+ units
15.96 100+ units

Description: The ATMega 32U4 is an 8-bit AVR microcontroller featuring 32KB self-programming flash program memory, 2.5KB SRAM, 1KB EEPROM and a 12-channel 10-bit A/D-converter. It even has on-chip USB 2.0. You might recognize it from our Pro Micro development boards as well as the Arduino Leonardo.

This breakout is designed for people who are interested in programming outside of the Arduino IDE in order to take advantage of lower-level programming capabilities. The board comes pre-loaded with the LUFA CDC bootloader, which allows you to build your code with WinAVR and then program the chip through the USB interface using the program AVRDUDE and without using an external hardware programmer.

When you power the board on, your application will run by default. If there's no application in program memory then the bootloader will run. If you have an application already on the IC and you want to reprogram, simply press the on-board reset button and the bootloader will run for 7 seconds to allow time for programming.

The first time you plug in your board, Windows will ask for a driver. Install the INF file below and the board should enumerate as a COM port.

Each pin on the breakout board is labeled with the AVR pin name including the port letter (PB0, PF6, etc.) to make prototyping a little easier. This is a great board for anyone who is thinking about making the transition from Arduino to AVR C. Check out the Github repository for updated example code, the bootloader source and build files, and additional programming information.


Replaces: DEV-10277

Comments 63 comments

  • Or you could have just resold Ladyada’s 32u4 breakout: And that version has all the pins available to breadboard with. This is a nice board, but why would you pay $5 more ($9 more than Teensy) for a red circuit board?

    I am not connected to Ladyada (or PJRC) in any way. I just believe in getting the most bang for you buck.

    EDIT: Sparkfun lowered the price to match.

    • I don’t know about 10 hours ago, but as of the posting of this reply, there isn’t really price difference between Ladyada’s 32u4 breakout board and Sparkfun’s (Ladyada’s price is $20.00 even). As far as the shape of the board, it’s largely depends how it’s going to be used. Ladyada’s is definately easier to use in a breadboard, but in a more finished device the Sparkfun layout could be a more efficient use of space. However, both boards are suitable for both proto-typing and use in a final design, so it’s really a personal judgement call.

      I’m statisified customer of both Adafruit and Sparkfun and have been for a while. I think they are both great companies and the differences they sometimes have in their design practices and what they choose to sell ultimately benefit their customers by giving them more options.

    • From the link you posted, it looks like the Adafruit 32U4 breakout is $20. It also looks like the Teensy is $20. If you’ve got a place where you can buy the Teensy for $11, please post a link so I can shop there.

      • Yeah, they dropped the price from $25 where it was. Thanks Sparkfun!

        The Teensy can be purchased directly from PJRC for $16.

      • This was listed for $25 yesterday, so I think DML-P was talking in reference to this costing $25.

  • VirtualSerial.c:66: error: unknown field ‘DataINEndpointNumber’.’s LUFA directory is copied to the LUFA directory, but I can’t find that field in the USB.h file. Any suggestions will be appreciated. Thank you

  • I can’t access the page for the old version (DEV-10277). All attempts just redirect me here. I need the driver software for the earlier version to make my old ATMEGA8U2 breakout work.

    • Sorry about the delay, we’ve updated our site to always point you to the latest version, the links of retired pages have consequently changed their addresses a bit. The easiest way is probably to go to the previous versions link on the right of the page. If you have any other questions feel free to email

  • I can not get a program to run after it is uploaded via the Bootloader. If I upload the new program (BASC AVR developed program) with the Bootloader it will run after the upload, but if I power it down then the program will not run it looks like it is looking for the bootloader. Paul

    • I have the same issue. When I upload a new program using Avrdude ( -c Avr109) it recognizes LUFACDC and indicates a successful upload. A led on B0 will start blinking as programmed but if I disconnect power or hit the reset button the program is lost. I assumed the program would stay until reprogrammed.

    • i got same issue, does anyone know howto keep the program persist?

  • JFYI, If you’re trying to use it on linux and it fails with “Input/Output” error when trying to talk to the bootloader :

    In short: LUFA has a bug … So you need to take the SVN version, apply the patch (if not merged in the mean time), compile it (need to mod the makefile for the board) and then flash it using the ISP header and an external programmer.

    • Ack, this is really frustrating. I see the same issue with some boards purchased just a few weeks ago, and it looks like the github repo with the bootloader hasn’t been updated since initial release. Moreover, the github repo doesn’t even compile against the current SVN checkout of LUFA.

      Linux users should probably stick to the Adafruit breakout for now; their bootloader seems to be a little more solid.

  • what info do you have on the fuse that is used on the vbus? i cant find it anywhere

  • Pushing the reset button to reprogram is a bummer. What I like about the old Arduino Pro was the use of the extra serial line to pull down reset. This means I could tweak my code, compile, upload and re-start the AVR without ever having to touch my physical setup, ie. “make all” fire and forget reprogramming. Particularly useful when the AVR is buried in some physical enclosure.

    Is there some way to add something to my project code, tweak the USB on the AVR, or modify avrdude somehow to give me back fire and forget reprogramming?

    • Honestly, that’s the functionality I wanted when I originally designed this board and was modifying the LUFA bootloader. Since I wasn’t able to solve this problem in a reasonable amount of time, I decided the reset button was the best option for getting into the bootloader.

      Currently, the board always boot’s into the user’s application on power-up, unless the reset is hit. I liked this better than the alternative of using a switch on the HWB pin. With the switch, you would have to touch the board twice as often. Once to default into the bootloader for programming, and once again so it loads the user application.

      If I can figure out how to do it so no physical reset is required, I’ll modify the bootloader and/or hardware to make sure it happens. I definitely understand not wanting to hit the button every time, especially if you’re already using an enclosure.

  • Hi, I recently purchased this board,when I run the sketch from arduino the program works well,but if i restart the power or reconnect the usb cable,it aromatically goes to bootloader mode,I pressed the reset button but nothing happened :( can someone help me ? thanks

    • Email us at and let us know more about how you uploaded code and exactly what you are seeing. There are quite a few reasons this isn’t working.

  • I have the 8u2 version of this board and I’m looking into PDI for the XMega chips. Is there any way to use this to program an XMega over PDI?

  • I’m trying to use this board with SPI connected to an nRF24L01 for wireless communication into USB, as the receiver for a remote. But SPI is PB0-3. Only PB0 is on this breakout board, and it’s on the short edge. What happens to PB1 (SCLK), PB2 (MOSI), and PB3 (MISO)?

  • The LUFA-120219 allows compiling of the virtual serial example. Thanks member #472092 ! Presently, the bootloader always comes up in bootloader mode and only leaves to application mode when the character “E” is sent to it, which occurs after programming, too. (Several post note this behavior.) However, I notice that the bootloader was updated to LUFA-130303 and am wondering if the 7-second functionality in the product description was lost during this update? Is the previous version available? I appreciate the time everyone has put into this project. Thanks

  • Has anyone else had any problems with false low readings on IO pins? I have the DDRD set properly and am trying to read input PIND7 on PORTD. I am outputting the register over the serial port, it shows that pin 7 is low, but I can read it with a multimeter and it is at 5V. I have also output the DDRD to verify that DDD7 is a low, for input.

    Is this a problem coming from the booloader? I have actually been flashing the board over SPI using a MKii programmer. Has anyone else had this issue? Help?!?!

  • *taps heals together 3 times* I wish for a breadboard friendly version of this, with microUSB (like your Pro Micro), and mounting holes.

  • Yes this is what I see also. Anyone got a suggestion? Thx, Paul

    • You are going to have to be more specific. If you have problems with the board feel free to email as well.

      • The board works, it is just that after I use the USB loader the program does not run after a power cycle. It is acting like it is waiting for the boot loader to finish.

  • This is a great little breakout board for the Atmega32U4. The only thing it’s missing are mounting holes.

  • Could anyone enlighten me as to why Sparkfun doesn’t like using the exposed pads on these things? The Pro Micro doesn’t have one either. They must be there for some reason, no? I’m currently designing an Atxmega32u4 board, and it seems even the Atmel datasheet doesn’t say anything specific about whether the exposed pad should be connected to anything… weird.

  • Definitely be wary of this board under Linux.

    The LUFA bootloader version that is shipped DOES NOT WORK with many recent Linux Kernel USB drivers - in particular Ubuntu 12.04 LTS! Please Sparkfun, update the firmware - a fix has been available in the LUFA repos since August 2012…

    Instead of being away merrily developing on my Linux setup, I’m having to look at getting an ISP setup and for the time being running under Windoze. This sucks.

    Otherwise, though, the board was the best option in terms of hardware features and price for me for my project, so I’m bummed out that the support is not upto scratch.

  • Does anyone know if there’s a full-fledged graphical IDE out there which will work with this board? Also, does anyone know if this board can be programmed using the Atmel flip utility? I installed the INF driver for this board, it enumerates as a com port for me (COM5), but Flip doesn’t seem to recognize any RS-232 communication, or really provide a way for me to connect to the board.


  • When programming this over usb,what programmer to I set in my makefile? I’ve tried avrisp but I get the following error when i try to program it: “avrdude: stk500_getsync(): not in sync: resp=0x3f”. I’ve verified I using the right com port and have the driver installed.

  • Hi, i got two of these for my project in school and i’m having trouble with one of those who does not seem to let anything into the flash. I flashed the led blinking example from the githhub page and one board seems to work in charm while other gives out error that looks like this. avrdude: verifying … avrdude: verification error, first mismatch at byte 0x0000 0x0c != 0x00 avrdude: verification error; content mismatch

    avrdude done. Thank you.

    did i set any memory lock bits by accident? even though i guess it is not possible to set them in self programming mode. I did the chip erase instruction but it doesn’t seem to change the contents in flash. anyone got any solutions?

  • Does this work with arduino? I want to have an arduino Leonardo compatable for computer lighting. :)

  • Hi,

    I’m using a sparkfun atmega32u4 breakout board. I have it connected to the pc with usb and I’ve programmed the “virtualserial” program available from here. Both the examples given here worked out fine the first time I’ve plugged the board in and after that I’ve programmed it several times. The first time I programmed this, it asked for the driver, and as per given instructions, I installed the provided driver and the mcu (running the program) showed up in pc as a COM port. Problem started when I unplugged the board and plugged it in again later.

    When I press the reset button, the bootloader starts okay, and I can program one of the virtualserial example program successfully. But then the user program starts and the board shows up as an unknown usb device in stead of a COM port. In device manager, it says in the device status, “Windows has stopped this device because it has reported problems. (Code 43)”. I’ve tried uninstalling the driver and then reinstalling it, windows won’t install it saying it already has an up-to-date driver for “unknown device”.

    Could you, please, tell me how I can fix this problem at your earliest convenience?

    Thank you.

    EDIT: I somehow fixed it. I downloaded a new copy of examples and programmed it. I don’t know why the old copy was giving me problem. They seem identical, but there must be some unwanted difference I probably introduced by mistake. Thanks, anyway.

  • Hi, I’m absolutely new to this. Could anyone, please, give me some links about any sort of quickstart guide or startup project like led blinking?

    I’m sorry for my newbie questions, but thanks in advance for your help.

  • The ATmega32U4 shows an internal pull-up resistor on the RESET line (page 50 of the datasheet). Is there some reason I’m missing for an external pull-up resistor on the RESET pin?

  • is there a special reason you are using a crystal in this and not a resonator? Is the resonator not accurate enough for this micro?

    • I believe (but don’t quote me on this) that a resonator may not have enough precision and/or accuracy for proper USB communication. The USB needs to use a PLL to multiply the frequency up to some multiple of 12 MHz (probably 16 * 3 = 48 / 4 = 12 MHz), and any slight variations will probably only be magnified. If USB was not in use, a resonator would be acceptable for the vast majority of cases.

  • I just want to Say the Teensy is very cool. real USB instead of that farce they use on the Arduino. All the real USB options like high speed data, Plug n Play, mouse/keyboard emulation etc…

    It seems in a way that Arduino is horning in on a superior idea, and renaming it Leanardo.

    Viva la Teensy - down with renaming fraudsters.

  • Thank you Sparkfun making this product. I have been using the Atmega8u2 and they are great. But this is even better! This is amazing work as it looks to be slightly smaller than the 8u2 and has more pins! Good work!

  • Will this also be offered in a 3.3V 8MHz version or do I just change the solder jumper to 3.3V and run it at 16MHz at 3.3V? If so will the Arduino boot loader have a 3.3V 16MHz option too?

    • There won’t be a different 3.3V version of this board.

      If you want 3.3V operation, all you have to do is change the solder jumper to 3.3V. Technically, 16 MHz is out of spec for 3.3V according to the datasheet (you’re essentially overclocking). In practice however, it always seems to work just fine.

      • You also shouldn’t need a new Arduino entry. The entry changes because of the frequency, not the voltage. If you are just changing the operating voltage you should be fine.

      • I can confirm that it will work down to about 2.65v depending on how much bypass capacitance you have. It is also very easy to modify the bootloader and add a a board type to the IDE. Since you guys have your own VID/PID its no problem, but for those creating a new project look into grabbing a PID from Openmoko.

    • The 32U4 can’t run at 16Mhz on 3.3V It needs more voltage.

      • Oh, guess I should change my 3.3V teensy that I’ve been using for 3 months back to 5V so it can work.

      • Running it at 16 or 20MHz and 3.3V is overclocking. That doesn’t mean it wont work, it just means that it may not be stable.

        • Lots of people overclock the 32u4. It’s quite stable at room temp. I’ve seen conjecture that it doesn’t have the same temp range at 16mhz/3.3V. My 2 3.3V teensys have been rock steady. I wouldn’t ship a product based on it though.

  • Can the bootloader from the pro micro be loaded on this one? Given that it brings out all the 32u4 i/o pins and costs $5 less, it looks like a better “leonardo” than the pro micro.

  • The Adafruit board is a bit more breadboard friendly since all the pins are on two sides of the board and on .1" multiple centers. Your board would short out pins on a standard breadboard (as would the Teensy). I think the Adafruit board has a different bootloader, but one that is also avrdude compatible. OTHO your board is smaller and will fit into smaller projects. The Teensy is cheaper only if you buy it direct from PJRC, othewise it is also $20. Well, choice is good.

    • I recently purchased the Teensy and saw that same issue. My solution was to solder the headers for that one row of pins facing up and then using the M/F jumper wires to go where I needed on my breadboard.

  • Hmmm, maybe this will be in the new product post? 119 in stock, darn somebody got to it before me! oh well

Related Products