Pro Micro - 3.3V/8MHz

Replacement:DEV-12587. We’ve updated a few traces and issues with the Pro Micro, go check out the new version now! This page is for reference only.

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.

  • ATmega32U4 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!
  • 1.3x0.7"

Pro Micro - 3.3V/8MHz Product Help and Resources

Pro Micro & Fio V3 Hookup Guide

November 8, 2013

An overview of the Atmega32U4-based Pro Micro and FioV3, how to install it, and how to use it with Arduino.

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

2 Soldering

Skill Level: Rookie - The number of pins increases, and you will have to determine polarity of components and some of the components might be a bit trickier or close together. You might need solder wick or flux.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

3 Electrical Prototyping

Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels

Customer Comments

  • I was finally able to get this part to work after quite a bit of difficulty by following some tips I have seen elsewhere. My notes in case it helps someone else.

    Environment: Windows 7 64 bit Arduino 1.0.5

    Get the driver zip mentioned in the “Getting Started Guide”. Copy the single file within it to c:\windows\inf, it will ask for administrator permission to do so.

    From the same page, get the Arduino addon files and install them as instructed. Start Arduino, go to File/Preferences and turn on “Show verbose output for: ” for both compilation and upload.

    Connect a jumper wire to one of the gnd pins and be ready to touch the other end to the rst pin. For me, I just slid the end of the jumper wire into the gnd hole and held it in place diagonally so it was touching, then touched the other end to the rst hole as needed.

    I did this first, but I don’t know if it is necessary. I plugged the board into USB, heard the USB connect bing (low note followed by high), then about 7 seconds later, got a USB malfunction message and a USB disconnect bing (high note followed by low). During that 7 seconds, the part was recognized in the Device Manager as a Sparkfun Pro Micro.

    Now for the final step: Start Arduino, select Sparkfun Pro Micro 3.3V, and double-tap the reset pin. During the 7 seconds, you should be able to select the correct serial port in Tools/Serial port. Now load an example sketch, I selected File/Examples/04.Communication/ASCIITable which just uses the USB serial port, no other hardware or D13 light needed. Push the upload button, then watch the status window. It will do something to the effect of

    PORTS {COM7, } / {COM7, } => {} PORTS {COM7, } / {COM7, } => {} PORTS {COM7, } / {COM7, } => {}

    a lot, maybe 15-20 times in about 4-5 seconds. Towards the end of that time, double-tap the reset pin. If it works, avrdude will print a lot of text, report success, and the part will work normally from then on. Too late on the double-tap and it will not find the device, too early and the 7-second window will expire before avrdude gets into contact with the bootloader and holds the window open.

    Here’s what I think is happening: I have seen notes on the net to the effect that a poorly behaving sketch can effectively crash or block the USB driver in the device, and never let the bootloader do its work. The reset double-tap forces the bootloader to start, wait 7 seconds before starting the user sketch, and if Arduino starts a sketch upload during that time, then things work normally. Outside of that window the broken user sketch blocks things. So, the question then becomes, how did a bad sketch get into the part in the first place? I had this trouble with a part fresh from Sparkfun, which I had never put a sketch on.

    Hope this helps someone out there…

  • ordered two of these. neither came with a working bootloader. i tried several combinations of the add on files and arduino versions. (older addon with 1.0, 1.0.1, 1.0.3) (newer version with 1.0,1.0.1, 1.0.3) nothing worked.

    used the avr pocket programmer to dump the flash, does not look like any boot loader i know of. compared it to the hex file for caterina and diskloader as well as the adafruit bootloaders.

    used the pocket programmer to reburn the bootloader, code went in fine but the efuse bit’s upper nibble was stuck at ‘c’ and should have been hardcoded to ‘f’. no ill effects have been noted thus far. the other pro micro’s efuse seems fine. i have not reflashed the second pro micro because i want to know WHAT went wrong with this device. sparkfun, im looking at you, willing to provide you with whatever you need to diagnose this so it doesn’t happen to others.

    overall, im happy with the purchase, but i already had a avr pocket prog, without it i purchased $50 worth of bricks.

    • I think I have the same problem. Can’t upload code unless I manually reset the thing and only after a couple of tries. It all started with the batch I got a month ago. I need to get me a AVR programmer.

  • So that someone can save the few hours I just spent…: I bricked the Pro Micro 3.3V. On OS X 10.8 no recognition of USB serial device (in Arduino IDE, ‘System Information’ and ‘/dev’). Power light goes on, but no tx/rx lights. It had something to do with running past RAM limitations (allocating too much memory). More importantly, the only way to get the device to reprogram was to repeatedly jiggle the reset pin (shorting it to ground) while the device was connected via USB, and after upload is initiated in IDE. Simply replugging the device during upload process, or singular resets at various phases did not work (for me). And the jiggle itself only worked 1 in 3 attempts so be persistent. You can stop jiggling if the tx/rx lights start going.

    • Hi All, I had the same problem with my Pro Micro, I uploaded an example with tone (speakers) and it caused my Arduino to not be able to upload any more, it was stuck on “Send V” and the RX Led was constantly on. I managed to get out of this scary situation by shorting the GND and the RST pins twice consecutively just a fragment before I clicked the upload button on the IDE (it came from the Firmware note, saying how to reset and override the bootloader). I must say that it took me some attempts (~ 5-7 times) until I got the right timing but I did. so for those who have the same issue, don’t get desperate and keep trying.

      thank you all daniel

      • Trying that… using the Arduino IDE. First the Arduino compiles, then it uploads. Should I be resetting it before i hit “compile”, or try to time it so it is right before the “Uploading” begins? Trying either method so far is not working :( Thanks!

    • How can this be reversed?

    • Two quick resets in succession is all it takes to put the device into bootloader mode; unfortunately, that’s tough with no reset button.

      You can always add a reset button via a breadboard, or by, well, jiggling a wire a bit.

      This behavior is covered in the “Firmware note” at the top of the page.

  • Which silk-screened pin numbers does the SPI master use with this board?

    EDIT: Answering my own question here:

    • pad 15 is SCLK,
    • pad 16 is MOSI,
    • pad 14 is MISO,

    In theory, 17 is SS, except it isn’t broken out, but is instead wired to the on-board yellow LED. So use pad 10 instead.


  • The new addon “” does not allow to upload any sketch!

    But the old one addon dated 01/24/2012 is working well!

    Please fix it.

    Guys, who are at the same problem like me, you may download workable addon here:

    • The new addon file is needed for the currently shipping boards with the newer bootloader. The old file is need with the boards with the old bootloader (available on page for the older board). The first few runs of this SKU (before June 19th) shipped with the old bootloader, but the files on the page will work with the currently shipping boards. If you have any other questions please contact tech support.

      • Thank you for your reply.

        Where can I find the “page for the older board”?

        Is it possible to re-programm older board with newer bootloader?


          You should be able to re-program the old boards with no problem. The bootloader is in the new addon folder.

          • Than you for your reply.

            I’ve managed to re-programm the newer bootloader but it still does not work with newer addon. A sketch can be now uploaded but basic blink does not work. What could be the reason?

            When I switch back to older bootloader everything is OK.

            Thank you.

  • And “SoftwareSerial” library doesn’t compile… again…any ideas?

    • It should all of your baud rates will be be twice as fast as you actually want though. e.g. if you want a 9600 bps connection you should tell it that it is a 19200bps connection in software serial and it should work just fine

  • Does the HID/pro-micro tutorial (which links to the 5V version of the promicro) need any adjustment to work on this hardware version (3.3V)?

    • Nope no adjustment needed. All of the Keyboard and Mouse class functions still work at 3.3V/8MHz.

  • I see these boards are no longer in stock, and no plans to make more. Is this true? Has this board been EOL’d ?

    • Nope! We are just going to be releasing a new version that fixes some production issues. It’ll just be listed under a different SKU but linked from this product page.

  • Hi I have connected the Pro Micro - 3.3V/8MHz with a

    The circuit that has been created is shown in the following link:

    My question is that I would like to replace the 9V battery with the following 3.7 V rechargeable LiPo one and I don’t know how.

    Can you help me please? Thank you in advance

  • How do you setup AltSoftSerial for this board?

    • See my post 339587.0 on the Arduino forums. You can switch it to use timer1 / pin4. Note that I could not get AltSoftSerial or SoftwareSerial to work properly without data loss at 57600 or above with the 8MHz version of this board.

  • I am working on a project and I have connected the Pro Micro - 3.3V/8MHz with a What battery characteristics would be the most appropriate to the system? I am looking for a small in size battery (10x10x5mm), 5-9V optimal.

    • For small size and rechargeable, you probably want to look at some kind of lipo battery. They generally can pack enough current in them as well to support wireless applications (such as bluetooth).

  • Suggestion for V12: provide a through-hole somewhere that connects to PD5 (pin 22). It doesn’t have to be added to the row of pins on the edge, just something somewhere that makes it easy to connect a wire to PD5…

    Why? So that I can use the USART as SPI master while using the main SPI as a slave.

    Now I will have to unsolder R6 and solder on a very small wire to the pad for pin 22.

  • Maybe someone can answer this for an Arduino noob: can the USB connection be used during normal operation? I’d like to make an I2C programmer but i need to send hex files down the usb hose to the board.

  • Every time I upload a new sketch, the EEPROM is erased. I store calibration data in the EEPROM, so this is a real problem. Any suggestions? – The best suggestion is to check one’s code. Operator error… It is not erasing on upload.

  • Ordered one - works great! Just make sure you go through the getting started guide. I gave it the ol' seat of the pants try and nothing worked. Once I got through the guide it’s all good.

  • Turning a Pro Micro 5V board into a 3.3V board: Does anyone know if it is possible to turn a Pro Micro 5V board into a 3.3V board (by changing the voltage regulator and the crystal)? I assumed that since the schematics are the same for each version of the boards, except the mentioned parts, that it would work once resetting the bootloader. However, I can’t get it to work. When I try to program the modified board (even after doing the device reset thing), my PC keeps indicating that the USB port is not recognized. I know the board still functions, because I had the Pro Micro blink sketch programmed in before the modification, and the LEDs still blink but at half the freq (crystal is now 8MHz instead of 16MHz). My only assumption at this point is that the actual ATMega 32U4 chips are somehow different between the 5V and the 3.3V boards, though I couldn’t find any info on the ATMega32U4 datasheet to support this. Any ideas would be helpful! Thanks!

    • If anyone is interested, here is the response I received from Sparkfun Tech Support:

      “Yeah, the only difference is between the two are the voltage regulators, external crystal oscillator, jumper J1 next to the microB USB connector (closed for the 5V version). The ATMega32U4 chips are the same that is used for each of the boards but they are uploaded with VID in the bootloader. This is why the board is not recognized in the device manager after uploading code with the wrong board selection. Somewhere when programming the board with the bootloader, there’s a line of code that needs to be changed. Our engineer hasn’t looked at it in a while but it there is a line where it has "PLR CSR.” The reason why is because the 3.3V and the 5V have different PIDs. They are indicated in the boards.txt in the SF32u4_boards folder for the board definitions. Looking at the boards.txt file, it looks like the extended bits are also different. You should keep that in mind when programming the ATMega32U4 microcontroller. I think it would be easier to just buy a 3.3V Pro Micro board than to mess around with the firmware and rework the board.“

      Please let me know if anyone finds this information helpful- Thanks!

  • Will this one do I2C???

  • I plan on using the Pro Micro-3.3V along side the Raspberry Pi, and since the Pi uses an ARM possessor, I was wondering if this would require having a USB driver written specifically for it, and if so has anyone written it ? 08/27/2013 Looking at the documentation and comments, it appears that there is no Linux support for the product, so I can’t use it with the Raspberry Pi.

  • what is the oscillator used on the 3.3V 8MHz board? I’d like to find a part on digikey. thanks!

  • Is it possible to flash this board with the stock Atmel bootloader?

    • Sure! You’ll need an ICP (or parallel) programmer, but you’re encouraged to put whatever you like on it.

  • I had a problem connecting this board via USB, so I wanted to verify that bootloader is ok and tried to reflash it (via arduino uno as ISP).

    I suppose that the board would be 5V tolerant, so I plugged it to uno’s 3.3V and connected everything else as per usual ISP programming. Now, burning bootloader fails:

    avrdude: verification error, first mismatch at byte 0x0000
         0xfe != 0xff
    avrdude: verification error; content mismatch

    Ok, I try powering it from 5V, failing again:

    avrdude: verification error, first mismatch at byte 0x0000
         0xfe != 0xce
    avrdude: verification error; content mismatch

    Last try, I flash the 5V pro micro bootloader… and everything goes ok!

    Now, I have a few questions.

    The board is clearly 3.3V with LG33 voltage regulator and J1 being disconnected. Why cannot I flash it with 3.3V bootloader? The board, running with 5V bootloader is still underclocked, i.e. delay(1000) is actually a 2-second delay.

    And a bigger issue – USB is still broken (is it burned? wrong programming?)

    • I also just had this issue! I looked up the efuse situation in the datasheet, and basically it looks like that 0xce setting in the programming config is bad (specifically, the top 4 bits aren’t even being used, so 0xfe is the same as 0xce). I tried just fixing in in “program.txt” (efuse should be 0xfe) in the bootloader folder, but that didn’t work. However, you can “cheat” by renaming the bootloader files so that Arduino thinks its programming a 5v version, but it will program the 3.3v version. This seems to work for my home made Pro Micro clones, and it should work for a standard one too.

      Specifically, go to your Arduino sketch folder, and go to hardware/SF32u4_boards/bootloaders/caterina, then rename “Caterina-promicro16.hex” to something like “Caterina-promicro16 actual.hex” and then rename “Caterina-promicro8.hex” to “Caterina-promicro16.hex” (you may also want a “Caterina-promicro8 actual.hex” to keep track of things)

      After renaming things, you should have a copy of Caterina-promicro8.hex that is called “Caterina-promicro16.hex”, and it will be uploaded when you select the “5v” Pro micro. You can probably just modify the program.txt file, but I didn’t figure out how (restarting Arduino didn’t do it, so I just cheated).

      USB works well, and a 1 second blink appears to be 1 second, not two (didn’t time it, but didn’t much need to).

      • I tried this solution on my sparkfun pro micro 3.3v, but upon substituting the promicro8 hex file for the promicro16 hex file, I get the following error when trying to burn the (faked out) 5V bootloader: avrdude: verification error, first mismatch at byte 0x001c 0xff != 0xfe avrdude: verification error; content mismatch

        Maddeningly, the errors aren’t even consistent. Other times that I try (after changing nothing), I get different byte numbers called out as the mismatch location. However, it is always complaining that 0xff != 0xfe.

        These errors appear after quite a long while – about the same length of time I was previously used to waiting for a successful bootloader burn on a 5V pro micro.

        Any ideas? Thanks in advance!

      • Me too - thanks so much for this, it worked a treat.

        After having waited a week for an email reply from Sparkfun Support, and even having pointed THEM to this post, they still weren’t able to confirm that it worked…

        But I tried it - immediate fix. Thanks - you are officially more useful than SparkFun Support!

      • I just want to give you a huge thanks for this post. I was having the same problem. After a couple of days of learning about avrdude and fuses with no success I saw this. Five minutes after reading this post I was up and running.

  • Why would you include an external crystal when there are internal oscillators and the goal is to make it small and cheap?

    • USB requires the accuracy of a crystal to work properly. I’m sure you can get away without it (I’m sure lufa might get away without in some instances), but for a commercial product of any kind that wouldn’t be acceptable.

  • On the atmel datasheet(p388 fig 30.5) for the 32U4 MCU it is written that @3.6V 8Mhz the power consumption should be 5mA however when i measure it (basic code no I/O) it is 12mA. What can explain this big difference ? Thanks

  • I plugged a USB cable into this and then into a iPhone AC/DC USB wall charger and it killed the Arduino. The Apple wall charger is rated 5V/1A, and I see on the schematic that the USB power goes through a 500mA fuse, but I still don’t understand. I didn’t think the Arduino would draw the full 1A available. Anyone have insight?

  • think mine is bricked. I am running macbook pro, I created a “hardware"folder and put the zip file in it as per the manual (though it doesn’t say that one needs to create the folder…) the board is now listed in the arduino board drop down, but it simply will not show up on the serial port. nada, nothing. I plug it in and the red LED comes on but that is it, my macbook acts as though nothing has been plugged in.

    any suggestions?

  • I am trying to reprogram the bootloader with the Pocket AVR Programmer. Obviously, the Pro Micro doesn’t have ICSP headers broken out in a visible form. Is there a way to connect the programmer to the board? Which pins on the Pro Micro connect with the six pins of the AVR header?

  • I got the Add-on and unpacked it into the Sketchbook as per instructions. The two boards (5V and 3.3V) show up in the Boards menu. I selected the 3.3V and compiled my sketch, but compilation failed because USB_PID and USB_VID were undefined. This was on Arduino 1.0.3. I switched to Arduino 1.5 (latest beta) but the two boards don’t show up any longer. Instead, there is an entry for Arduino Micro. What happens if I use that one?

  • Just had the usb port ripped off ANOTHER one of these. If you get one of these you have to be VERY gentle with the usb plug. Some glue might even be a good idea, Not enough solder holding in on.

    • Yep, mine too easily ripped off. Plz! Next revision, find some more robust way. This ripped the pads right off.

      • We actually are currently working on a revision with a new USB connector to hopefully help alleviate this issue on this board as well as several others that use the microB connector. Sorry to hear about the problem you ran into!

        • Any chance you could tell us when to be expecting this revised version?

          • It looks like all of the stencils and production parts required for the new revision have been ordered, so hopefully within a month or so? It depends on turn-around time from our suppliers, which may start slowing down as the holidays approach.

    • Ripped mine off too. Luckily I was able to solder it back on and it still worked.

  • I managed to rip the USB connector off one of these (it’s not hard) - seems like it’s possible to program over serial if you have the hardware.

    I found the “MegaISP” project ( - should it be possible to program one pro-micro from another?

    I gave it a try, however it always programs the first arduino (rather than the broken one “downstream”). Tried putting a resistor between VCC and RST, still programs parent device.

    Any advice?

  • Disabling interrupts doesn’t seem to work. This piece of code worked fine before, but causes the Arduino Pro Micro to disappear from the device manager: void rpmCalc () { noInterrupts(); //bla bla bla interrupts(); }

    I’ve attached rpmCalc as an interrupt.

  • Hi, I’m relatively new to this but am migrating a project that I have working on the Uno to the Pro Micro (so it’s all a lot smaller…) I’m using the MPR121 Capacitive Touch Breakout Board which requires 3.3V. I’m using a 3.7V LiPo battery for power connected to the Pro Micro RAW pin; works great! Now I’m not sure how to also get 3.3V to the MPR121. On the Uno it’s easy/obvious since there’s a 3.3V out that I connect to the MPR121. Is there a way to get power off of the Pro Micro like the Uno or do I need to run power directly to the MPR121 through a 3.3V voltage regulator? Or something else? Thanks!

    • Much like the Uno, if you put 3.7V onto the RAW pin, regulated 3.3V will be available on the VCC pin. Easy! =) Good luck with your project.

  • Hello everyone,

    My knowledge of programming microcontrollers (embedded systems in general) isn’t extensive, so please bear with me regarding the following question:

    • if an arduino board (or any other MCU board) has a native USB support, would I be able to use the USB connection to send data from the arduino board to whatever is connected?

    Thank you

    • What you’re talking about is called “USB host mode”, and a quick Google search seems to indicate that it’s not possible on this chip. Anyone have a more authoritative answer?

  • Is it possible to replace the crystal oscillator with a 20mhz?

    • Yes, but you’d be well outside the recommended speed vs. voltage operating envelope (see the ATmega datasheet for the chart). Because there’s some manufacturing margin this may work, but if it does it could work on one chip but not another. You’d also have to ensure that the baud rate etc. calculations take into account the new clock. It’s fun to play with though. Good luck!

  • Hi,I’ve recently purchased this item and I was wondering about the best solution to charge a battery and use the Arduino Pro Micro at the same time. I mean: I want to design a portable device based on this board that normally gets the power from a 3.7 liPo, then when the battery’s low the device goes off until the user connects a USB cable to the Arduino. At this point the liPo starts its charging process drawing current from the USB. Basically the same bahaviour of any mobile phone or mp3 player.

    Do you know any (small) board/IC that could help me ? Thank You !

    • I purchased the Lithium Polymer USB Charger and Battery combination, RTL-9876. I connected the output of the charger/battery to the RAW pin on the Arduino Pro Micro board. To use the Arduino USB connector as the source for the charger, I removed the fuse on the Pro Micro board and soldered a wire to the pad that is connected to the USB power pin (Looking at the Pro Micro board with the USB at the top, the right pad is the UVCC pin on the USB connector). This wire is then soldered to the VBUS on charger board. There is convenient pad in the upper right corner of the charger board. Now, the USB connector on the Arduino board is the source power for the charger and can still be used for programming the board.

      • Thank you DAG144, does this setup also prevent the LiPo from going too low in voltage (and damaging itself) ?

        • The RTL-9876 charger protects the battery but the battery I used also has a protection circuit. I performed a test by allowing the battery to discharge until the circuit stopped working. I measured the voltage from the battery at frequent intervals. Starting with a fully charged voltage of 4.1v, after about 60 hours the voltage had dropped to 3.7v, then at about 70 hours the voltage was at 3.6. Shortly after 70 hours, the battery shut down. No voltage from the battery at all so I think it was the battery’s built-in protection circuit. I did a very short charge cycle to turn the battery on again and then measured the voltage at 3.0v. My conclusion is that even though the RTL-9876 charger will shut down at 2.7v, the battery’s circuit cut off first.

          • I checked my battery documentation (sparkfun PRT-00339) and it seems it has an under voltage protection circuit too ! So it’s OK!

            Thank you for the precious hint DAG !

        • I performed a test with an external power supply, simulating the battery, starting from 4.2V and going down until the promicro turned itself off. The board stays on till 2.6 / 2.7 V, but these are far too low voltages for a single cell LiPo.

          Which could be the simplest way to force arduino off when the voltage goes down 3.0 V ?

          • The ATmega has a brown-out detection circuit (BOD) that can be set to hold the processor in reset when VCC is below a threshold, or disabled entirely. I believe that this is used by default on the Arduino; the next higher setting above 2.6V would be 3.4V. As this needs to be set by fuses, you’d need a hardware programmer to make this change. See the datasheet for details.

  • 50% of the time when uploading a program, my MacBook Pro crashes. My Macbook is only a couple of months old, has anyone else seen this before?

    • have you tried to upgrade the OS?

      My macbook does not crash, but most of the time arduino fails to upload my sketch. and most of the failures are actually just jibberish error messages and he sketches are uploaded anyways.

  • Anyone used this board with the ADH8066 cell module? I keep getting weird gibberish in my responses from the module.

  • I just got this board, followed the “Getting Started Guide” on Win7x64 and it worked like a champ. I was looking over the board and schematic and I wanted to know what J1 is for? It’s not on the schematic. The connector is similar to the one in the photo but swapped position with the small SparkFun logo above the micro USB connector.

  • If I want to power this with the 3.7V Polymer Lithium Ion Battery (, do I run it through the regulator or connect it straight to Vcc? It looks as though RAW is regulated and Vcc is not by the schematic. Can someone confirm this? Thanks

    • You’re correct! In general, connect an external power source (3.5V to 16V) to the RAW pin, which will then regulate the voltage to 3.3V for the board.

      (In this case, you could technically connect it to either pin, since 3.7V is within the operating range of this processor. However other things you connect to the Pro Micro may be expecting exactly 3.3V, so unless you have a specific reason to do so, we recommend using the onboard regulator. Have fun!)

  • “ To override the main code and stay in the bootloader for 8 seconds, press the reset button twice in quick succession.”

    Uhmmmm….. so …. where is the reset button?…… How can I reset this thing?! Help! Thanks :)

  • I’m planning to power this with 2 coin cell batteries in series. I’m wondering if I have to disconnect the USB while the batteries are connected. From the Schematic it looks like the Diode would protect the USB line. That being said, even when connected to USB it would use battery power as the 6V is greater than the 4.5-5 that the USB would supply. Is this correct? Maybe I should install a switch instead?

  • Just bought a board, arrived yesterday; bottom says version 11 and 3.3v. When I plug in to Windows machine (I’ve tried 32-bit Windows 7 and 64-bit Windows 8), the red light comes on. I try to install the drivers in the add-on kit to no avail. It appears the device identifier info isn’t correct in the driver, either. In Device manager: USB\VID_03EB&PID_2FF4&REV_0000 USB\VID_03EB&PID_2FF4

    In the driver file from Sparkfun: %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_9205 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_9206&MI_00 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_9203 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_9204&MI_00 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_0002 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_0002&MI_00 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_0003 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_0003&MI_00

    [DeviceList.NTamd64] %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_9205 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_9206&MI_00 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_9203 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_9204&MI_00 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_0002 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_0002&MI_00 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_0003 %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_0003&MI_00

    Maybe I just got a dud?

  • Anyone knows how to get EEPROM data from Pro Micro via usb and show, for example, in a excel worksheet? Or a driver that converts EEPROM in a .txt so i can read through excel?

  • Hello is it possible to run a new atmega32u4 Chip with the Pro Micro3.3V/8MHz Bootloader and 8MHZ XTAL at 5VOLT VCC in the Arduino IDE 1.01 without any changes?

  • Can I connect to sensor with I2C ?

    • Yes i found them, the SDA and SCL are pins 2 and 3 right underneath the two grounds. I connected the bmp085 sparkfun sells and boom, i have a mini weather station and rocket altimeter!

      • I have found them there as well, but the Arduino code doesn’t seem to work… Have you been able to used the typical method? Do you know if the internal library is wired to pins 2 and 3?

  • How can i power the board without USB? Using RAW pin? i´m gonna use a 3.7v battery, so it´s unregulated

    • Yup, connect your battery to the RAW pin (bottom right pin in this image). That’ll run it through the 3.3V regulator to supply the 32U4.

  • Under Linux x64 Mint 11, when I upload on /dev/ttyACM10 the yellow/green led flashes several times the board resets but it appears on /dev/ttyACM11 and the IDE (1.0.1) sits there on Uploading… When I move the IDE to ttyACM11 and try again the board moves to ttyACM12 (it started on ttyACM0).

    On windows 32bit the board is on com13 but resets to com12 with a ! symbol, I have to shut the IDE down, delete com12 from hardware manager and remove/re-insert the board and it install the drivers again and comes back on com13.

    I cannot program this board, have no problems with original Leonardo

  • I’m trying to upload the Pro Micro Test Code from here on a Mac. The board shows up in System Profiler, The TX RX lights blink when uploading. But after upload nothing happens. No blinking. No serial out.

  • What are the dimensions of the board?

  • This is a really great little board.

  • I’m unable to upload the Blink example and always stuck with the following sequence:

    avrdude: Send: S [53] avrdude: Recv:

    avrdude: Recv: avrdude: Send: V [56]

    Is this have to do with the bootloader version incompatibility with the add-on? I’m having a board with a marking of Batch #19030.

    • Did you choose the right board type in the menu? Check that you installed the Pro Micro Add-ons correctly.

      • Yes, I have the correct board selected and the add-on dated 19-06-2012.

        • Are you uploading with an ISP or via USB?

          • USB, through the IDE.

            • I have the same problem with both a 5V and a 3v3 just hangs on upload same report. I have tried every combination of driver possible etc, u had any joy?

              • No joy! Tried on XP & 7 too.

                • hmmm…:( I’m going to try and reflash with the bootloader included with the 19-06-12 package tomorrow, hopefully that'l work. I’ll keep you informed!

                  • epic fail via arduino isp awaiting on a AVR Programmer to arrive!

                    • ok scratch that I had one more go and have made some progress! I have now managed to reflash thr 5v board and it all works perfect however the 3v3 board returns an error of:

                      avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature.

                      looking at the error arduino detail this as either I have the wrong board selected from the Tools > Board menu or I’m not using the right version of avrdude.

                      Will the bootloader supplied with the addon package cater for me reflashing the 3v3 (yes I have this selected) I assume so as the 5v worked out ok? Is there a specific bootloader for the 3v3?

                      Any advice would be appreciated, d

                      • The same for me. Seems to me newer addon and bootloader does not work with 3.3 version.

                        Dear support when you are going to fix that?

  • Is there an I2C input on this board?

  • Has anyone had this 8 MHz Pro Micro work as the multi-function USB device (CDC and HID) provided with Arduino 1.0.1?

    I have a similar design with an 8MHz clock and used this board as a reference. I knew I would have to rebuild the bootloader to support the 8MHz clock - that was easy, just change the F_CPU frequency definition in the Caterina bootloader Makefile.

    But once I put a sketch into the Arduino, Windows could not identify the device. None of the basic example sketches could be enumerated by Windows, it was always complaining about an “unknown device.”

    • Here’s the fix. Unfortunately it has to be made in the Arduino core code.

      In the USBDevice_::attach() function of arduino-1.0.1\hardware\arduino\cores\arduino\USBcore.cpp, line 641, change:

      PLLCSR = 0x12;          // Need 16 MHz xtal

      to this:

      PLLCSR = 0x12;          // Need 16 MHz xtal
      #if (F_CPU == 8000000)
          PLLCSR = 0x02;          // Alternately, support 8MHz

      Bit 4 of the PLLCSR register enables a divide-by-2 of the input clock to the PLL. This is needed for a 16 MHz design, but should not be enabled for an 8 MHz clock.

      If you select the SparkFun Pro Micro 3.3V/8MHz board type when compiling your sketches, then the F_CPU define will already be set to 8000000 for you.

      After making this change, the example sketches provided by Arduino 1.0.1 were able to enumerate as both a CDC serial port and HID device.

  • Do these have a voltage limiter built-in or do I need a separate 3.3v limiter?

  • Considering that Arduino came out with a 32U4 board now(Leonardo) and there is more support in the Arduino IDE, will this board be able to work with the same support as the Leonardo since they are the same chip?

    • Essentially, yes. It uses the same bootloader and main IC, so they are very similar and should function as such.

      • And I can see and connect via CoolTerm to the device, but that’s it.

      • I am attempting to use this board on a Mac with no success. Add-on files zipped in sketch/hardware folder. I’ve restarted, and there is no addition to the Tools>Boards menu in Arduino IDE. Any help? Thanks

  • Poor mechanical design on usb connector. Pads came off board upon first use.

  • I have bought four (4) pro-micro 3.3V boards. Two of them work fine and are listed at Port 11 in the device manager. The other two don’t even recognise and I get the “USB device not recognised” message from windows. (That is straight out of the packaging.) I am assuming that the problem is with the bootloader!? Or are the devices faulty? I am using Arduino 1.0 And I have uninstalled all hidden devices in device manager and re-installed the drivers…both for 3.3V and 5V pro-micro. Any help here please?

  • What’s the GPIO setting ?

    With number of trial, it seems me MOSI signal as digitalRead(3) PE4 signal as digitalRead(6)

    But I cannot figure out the rest. Can someone help me ?

  • Could you post some information on which pins are PWM, DAC, etc.?

    • PWM is indicated by a white circle around the drill hole near the pin number.

    • Was wondering this myself. All Pin definitions/functions can be found here:

  • Is JTAG enabled @ delivery?

  • Has anyone had any luck using hardware interrupts with the Pro Micro? I haven’t found any resources or documentation about using them with Arduino and the Mega 32u4.

    • Yes, I managed to make them working. But, I had to do some changes for the addon.

      Here the files which I’ve changed:

      Just replace old ones, whereupon you can use external interrupts:

      0 - SCL

      1 - SDA

      2 - RX

      3 - TX

      4 - D7

      Like that:

      attachInterrupt(0..4, function, CHANGE);

      I have no idea why sparkfun guys didn’t implemented this. Guys, why?

      • Where and what exactly are the files that your versions are supposed to replace? I found two versions of these files in the Arduino install directory. One set is in Program Files (x86)\Arduino\hardware\arduino\cores\arduino and the other set is in Program Files (x86)\Arduino\hardware\arduino\cores\robot. I’m assuming it’s the “arduino” one and not the “robot” one?


  • Hi, it looks the link to the “Pro Micro 3.3V Add-on” files isn’t working. Any chance for a fix?


    [EDIT] It looks like we can use the add-on files from the SparkFun tutorial titled “A ProMicro Installation and Arduino Briefing”: (This is actually the “Getting Started Tutorial” listed on the Pro Micro - 5V/16MHz page.) The add-on files can be found about half way down and include the files for the 5V and 3.3V pro-micro.

  • Can I please ask if the “add-on” download link is working…. Thanks.

  • How do I load firmware from ubuntu/linux?

  • What good is having the USB -> serial conversion on the microcontroller? Doesn’t it disconnect when the microcontroller reboots & require yet another header for a UART to debug the bootloader?

    • I don’t entirely understand your question. To try to clarify, you use ‘Serial.print’ to print to the terminal on your computer (over USB/VCP) and ‘Serial1.print’ to send serial characters out the hardware UART (TX and RX pins on the board).

  • Any idea when these will be back in stock?

  • Are there virtual joystick drivers available yet?

    • What do you mean by virtual? Are you interfacing with a joystick, or are do you want your Arduino to “be” a joystick?

      • I want it to show up on the computer as a joystick, so I can input values based on POTs, or other sensors.

        • Take a look at this:

          • I’m looking for pro micro/Leonardo information. Once stable USB joystick functions are available (like the mouse and keyboard stuff), I’ll look into buying the Arduino.

Customer Reviews

No reviews yet.