Creative Commons images are CC BY-NC-SA 3.0

Description: Here at SparkFun, we refuse to leave ‘good enough’ alone. That’s why we’re adding to our line-up of Arduino-compatible microcontrollers once more! The Pro Micro is similar to the Pro Mini except with an ATmega32U4 on board. The USB transceiver inside the 32U4 allows us to add USB connectivity on-board and do away with bulky external USB interface.

This tiny little board does all of the neat-o Arduino tricks that you’re familiar with: 4 channels of 10-bit ADC, 5 PWM pins, 12 DIOs as well as hardware serial connections Rx and Tx. Running at 8MHz and 3.3V, this board will remind you a lot of your other favorite Arduino-compatible boards but this little guy can go just about anywhere.

This is the 3.3V version so, as always, keep in mind the limits of system voltage and so forth. The lower system voltage also has its advantages, though, like ease of use with many common 3.3V sensors. There is a voltage regulator on board so it can accept voltage up to 12VDC. If you’re supplying unregulated power to the board, be sure to connect to the “RAW” pin on not VCC.

Not sure which Arduino or Arduino-compatible board is right for you? Check out our Arduino Buying Guide!

Note: See the GitHub link below for support with the Arduino IDE.

Dimensions: 1.3x0.7"


  • ATMega 32U4 running at 3.3V/8MHz
  • Supported under Arduino IDE v1.0.1
  • On-Board micro-USB connector for programming
  • 4 x 10-bit ADC pins
  • 12 x Digital I/Os (5 are PWM capable)
  • Rx and Tx Hardware Serial Connections
  • Our Smallest Arduino-Compatible Board Yet!


Recommended Products

Customer Comments

  • I needed to use the analog pins as digital I/O and found the answer to addressing them in leonardo\pins_arduino.h

    PF, // D18 - A0 - PF7
    PF, // D19 - A1 - PF6
    PF, // D20 - A2 - PF5
    PF, // D21 - A3 - PF4

    The SparkFun schematic shows PF7(ADC7) for A0, but it doesn’t clearly indicate that it can be addressed as digital pin 18. Well, it can. Enjoy your extra 4 digital I/Os

  • Can a Pro Micro - 5V/16MHz be power with a Voltage of 3.3Volt ?

    • That’s a tricky questions. As a general rule we run our 16MHz AVRs at 5V and our 8MHz AVRs at 3.3V. The reason for this is that the more voltage you give the chip the faster it can run. 16MHz/3.3V is technically out of spec on the ATMega328 (although it does tend to work fine). I believe it is in spec on the ATMega32U4 board though. The regulator on this board will still be 5V, so you would have to hook the 3.3V directly up to the VCC pin and not the RAW pin, but that should work just fine.

  • What should I do if I want to convert a 5v version to 3.3v version? I need a to operate the chip at 16MHz at 3.3v.

  • Can this board be powered and run through USB port in stead of an external LiPo battery or wall adapter? If yes, can the 5V line on the USB header be connected to Raw/Vcc or is it already connected?

  • Would it be possible to use the adafruit battery backpack with this or is there a sparkfun equivalent?

  • How much current can the digital i/o pin safely push under continuous load?

  • Can someone please share a Fritzing part for this?

  • First thing I did with my Pro Micro 3.3v was try to upload the Examples>04.Communication>SerialCallResponseASCII sketch. I had the Leonardo board selected and now the thing seems bricked. Ideas?

    • I was able to recover my Pro Micro 3.3v using a new Pro Micro 3.3v that I ordered as its replacement! Now they both work. I basically followed these instructions but the wiring was confusing. I used:

      10  -> RST
      16  -> 16
      14  -> 14
      15  -> 15
      VCC -> VCC
      GND -> GND

      …and change the ArduinoISP sketch to

      #define RESET     10

      At this point I got an error when trying to “Burn Bootloader” that said “first mismatch at byte 0x0000 0xfe != 0xce” A little Google-fu lead me to this forum post and just as he said I edited the file:


      and put:


      in the “ Pro Micro 3.3V/8MHz” section and then the “Burn Bootloader” function worked. I verified it with the Examples>04.Communication>ASCIITable sketch and it worked.

  • Does this use a .8mm thin PCB like the Pro Mini?

  • This posting needs some new photos with the inch/cm scale super imposed. BTW, it’s 33mm x 18mm.

  • My chip is really hot and all the lights are on when I plug in the board. The USB port on my computer says it the chip is pulling too much power. Can I reset my board?

    • That does not sound like a software issue, but like a faulty board (probably a short of some kind). Email and they should be able to help you out.

  • Why do you say that it works at 8MHz and in the schematic there is a 16MHz oscillator? Is there an error? If yes which one is wrong? Thank you

    • Sorry, the 5V/16MHz and 3.3V/8MHz versions use the same PCB. The only differences are the voltage regulator and crystal (and a solder jumper). I’m not sure if we have 2 different schematics, but these are populated with a 3.3V regulator and 8MHz crystal.

      • Thanks for the answer! Yes i noticed that, that’s why I didn’t know which one to choose between them because I need 3.3V and 16MHz… Isn’t it possible? If I change the voltage regulator on the one that works at 5V, do you think i can make it work at 3.3V and 16MHz? Thank you

        • With the ATMega32U4 that might actually be in spec, but even if not it should probably work fine. Don’t forget, you can also just put 3.3V on the VCC pin.

          • yes, but then if i connect the USB i get a short circuit, no?

            • Even with them in stock configuration I don’t recommend having a power source on VCC with the USB plugged in. Having 2 power sources on a board is never a good idea. But if they are both 3.3V its probably not going to hurt while programming (don’t forget to open the solder jumper on the board as well).

  • For the same sketch I get: Pro micro Binary sketch size: 34,750 bytes (of a 28,672 byte maximum)

    Arduino Uno Binary sketch size: 32,160 bytes (of a 32,256 byte maximum)

    Why is the sketch bigger and the sketch maximum smaller?

    • Okay, so I’ve learned that the additional sketch size comes from the USB libraries that are needed for the Pro Micro and the smaller maximum sketch size is due to the boot loader.

      All this would have been nice to know before I purchased this board.

  • Anyone know how to get the hardware files to work with the 1.5.6 IDE? In the release notes there is a new hardware file protocal / description. I can see the pro-micro in the 1.0.5 environment but NOT in 1.5.6. Looks like Sparkfun will need to provide updated hardware files for the new environment. This is my first time using this particualr board, I love it!! building a remote mounted altimeter using this chip, the BMP-180 and an xBee. Works great except I get the panic screen on my MAC more frequently with this chip that’s why I want to switch over to the newer environment.

  • It seems there’s an error in boards.txt The Efuse bits should be 0xce not 0xfe

  • I’ve been trying to verify that I can re-burn the bootloader (I have my reasons, muhaha..) and it doesn’t work from arduino. I get a verification error. From the command line it works fine… any ideas folks?

  • Following the instructions in the Hookup Guide Tutorial but so far no luck installing driver on Windows 7 64. Downloaded driver ZIP-file from Device is detected properly as ‘USB IO Board’ in Device Manager but when I point the driver installation to the SF32u4_boards-master\driver directory I keep getting ‘Windows was unable to install your USB IO Board… Windows could not find driver software for your device’. Anyone know what’s up?

    • Figured it out with help of this: Sparkfun should update their tutorial and driver (INF) files. The rest of the tutorial looks ok.. I can upload the sample program to the board and it works ok.

  • Hi, I work with the Arduino Pro 3.3V “DEV-10914” and the FDTI basic 3.3V “DEV-09873.” Today, I want to work with Pro Micro 3.3V “DEV-12587” or fio v3 “DEV-11520.” How to flash my new board without the port USB converter 5V/3.3V ?

  • Does anybody know if the Pro Micro can support a display? If yes, what kind of display and how? (what kind of connection and how to program it) I have attached the pro micro with a bluetooth serial port module in order to send some dummy readings to an android app via bluetooth and I would like to have these readings shown on a display as well. Thank you

  • Has anyone run into problems using the EEPROMex library on these Pro Micro boards? I used that library flawlessly on an Arduino Uno, but I think using it bricked by Pro Micro 5V (I was able to recover it by reflashing the bootloader:—easy-way), but I’m wary of trying again. Any ideas on how to easily use EEPROM memory would be fantastic! Thanks!

  • after my initial prototyping with Pro Mini’s, I bought a couple of Pro Micro units because it would eliminate the external power supply. following the instructions for the Addon files, i was able to program both units (one via a Mac, the other via Linux both with Arduino IDE 1.0.5) using an example from RF24 library to verify my wiring. the functioning setup was disconnected overnight and now neither board is recognized (i.e. the Mac and the Linux setup exhibit the same behavior). i’m stuck. this seems to be a known issue (e.g. and and is there a documented solution to this?

    • Update: Using windows 7 and arduino IDE 1.0.5 + the above addon files, I tried the recommended remedy for getting into bootloader mode and loading a sketch; i’ve not been able to get into bootloader mode (50+ tries).

      • last update synopsis: i’m able to see/program the boards again, but i don’t know why. long version: after unsuccessfully trying to get the IDE to see the board under windows via the bootloader mode reset x 2 sequence, i rebooted the mac into OS X and noticed that the serial port (/dev/tty.usbmodem1411) has reappeared. i was able to download the blinky test sketch into the board, switch to the second board and perform the same thing. i rebooted the linux and it was able to see the board again. my w-a-g is that there’s an issue with the USB dialect that the board uses.

        • Did you ever determine the cause and resolution? I have MANY styles of 5v Arduinos that appear fine on my Mac. I have exactly two 3.3v devices and neither show up in the IDE, but this one (the DEV-12587) doesn’t even show up in system information.

          When I first connected it, it showed up as a keyboard and I sent a modified blink code to it. Since then I can’t see it in the IDE port list anymore. This is on two different computers (both running Mavericks, though).

          Would love to find a fix.

          • I’m having the same problem. I was programming it one day and all of a sudden it stopped showing up in my Windows 7 Device Manager (regardless of the USB port I was using [I’ve had trouble using it on my USB 3.0 port]). When I do the “double tap” reset trick to get it into bootloader mode, my Windows 7 Device Manager flickers as if it were recognizing a new device, and the Arduino IDE see it on Port 9 for a few seconds. I haven’t been able to successfully upload a sketch to the Arduino while doing this though. I wish we could find a fix.

  • Could you please specify the quiescient current at poiwer down? Thank you

  • I’ve got a few of these, and was wondering if I could convert one of them to 5V by simply changing the Crystal to 16Mhz, soldering the jumper closed, and flashing with the Caterina_promicro16.hex bootloader?

  • I developed HID keyboard using example source.

    However, BIOS does not work on the problem. (Mac, Windows in normal operation.)

  • This is a fantastic deal!

  • I’m looking at the schematic and it looks like there’s either an error in the board or the schematic:

    The silkscreen on the board has pins on the bottom corner labeled 10, 16, 14, 15, A0, etc. The schematic shows those same pins as D10, MOSI, MISO, SCK, A0, etc. This is mostly ok as D16==MOSI and D14==SCK. However, D14 is not the same as MISO. According to the schematic, D14 is connected directly to the RX LED. Either the schematic or the silkscreen should be updated.

    • I think the schematic is wired correctly, but labelled wrongly: PB0(SS) is Arduino pin D17, and PB3(MISO) is Arduino pin D14. The PCB is correct.

    • I agree that the confusing naming is, well, confusing. Basically you’re thinking ‘Pin 14 on the header, that must be the same as D14 in the schematic’, while it’s not. Gets even more fun when you try to figure out which pin number that would be on a various traditional arduino boards :)

  • What type of micro-USB connector are you using on this? It looks MUCH easier to solder than the ones I’ve been messing around with!

    • The easier to solder connectors are not necessarily a good thing. I’ve had several micro-USB connectors snap off of 5V Pro Micros while attaching a USB cable, lifting traces in the process and generally being a big pain to repair. Maybe the solder pads to the left and right of the connector should be made a little larger to give the connector a little more footing on the board.

      • That’s one of the reason for the change. The new boards have a new connector with a more secure footprint to help prevent that accidental removal.

Customer Reviews

3.8 out of 5

Based on 4 ratings:

5 star
4 star
3 star
2 star
1 star

1 of 2 found this helpful:

Great Idea but so so execution

I have only had it for a few weeks so I cannot give a long term evaluation opinion but a few things surface pretty quickly. Initial setup was a bit bumpy but the documentation on the website explains all and you only have to follow thoroughly. The unit is small, light, provides decent functionality. The main issues I have with the unit so far: The micro USB connector… what went wrong there ? This must be the crappiest connector available on the market. I don’t even dare to remove the USB cable once it was plugged in. This connector will undoubtedly rip off the PCB after a few connects/disconnects. In expectation of that it would have been helpful to have the D+ and D- pins broken out so I can access them via header, but no. If this connector comes off it gets messy. Second.. What is the deal with those 5 pins that are not broken out and marked Not Used in the schematic ? I’d rather have access to those pins and have the PCB slightly larger than the way it is now. Timer 0 would be nice to use with two compare outputs (OC0A and OC0B or PB7 and PD0) but one of them is not broken out… Why ? It is still a nice unit but those two issues bother me already. So much for now.

works perfectly

I haven’t used it extensively, but this cheap little board worked like a charm for all the small projects I have used it for. It’s tiny enough that you can embed it in any project, but it has enough broken out pins to to almost anything. Also the second hardware Serial proved to be really useful.

Pro Micro - 3.3V/8MHz

Fantastic board. Amazingly compact and powerful for its incredibility small size. Very low power requirements. 1 LiPo cell will power it.

Incredible simple product

When I received it, I simply plugged it in and pulled out my iPhone. Using the official app I was able to simply connect to the device. Wonderful. Cannot wait to get making!