Comments: Pro Micro & Fio V3 Hookup Guide


Comments 23 comments

  • ——————– Tech Support Tips/Troubleshooting/Common Issues ——————–

    Bricked Pro Micro? (i.e. your Pro Micro disappeared from your Device Manager)

    Having trouble uploading and you are using the watchdog timers? Well, the watchdog timer might be interfering with your Atmega32U4’s CDC driver. The timing probably is causing the Pro Micro to not enumerate properly with your computer after uploading your code. I do not use watchdog timers but from customer cases that I have seen, the Atmega32U4s have issues uploading after using the watchdog timers. To recover, try using the double reset method as explained through here–fio-v3-hookup-guide/troubleshooting-and-faq .

    Here is a more in depth tip on recovering Atmega32U4s with different bootloaders:

    5V/16MHz Pro Micro [ ]

    3.3V/8Mhz Pro Micro [ ]

    3.3V/8MHz LilyPad Arduino - USB [ ]

    Pro Micro Not Executing Code w/ Remote Power?

    If your Pro Micro works on a computer but does not when you power it remotely with a external power supply, it’s possible there is a piece of code waiting for a a serial connection before the rest of the code executes. Makes sure that you do not have this in your code when the the Atmega32U4 is not connecting to a computer’s COM port:


    This might work on an Arduino Mega2560, but the CDC port of the Atmega32U4’s design might be causing the microcontroller to get stuck in the loop.

    Issues Installing the Drivers?

    I just tested a 5V Pro Micro on a Windows 10 and I did not have any issues installing the drivers. The driver files do not indicate it is for Windows 10 but it somehow was able to still work. I recommend trying to follow the instructions listed on the hookup guide for more information =>–fio-v3-hookup-guide#installing-windows . The only difference is that you are using signed drivers. Therefore, there will not be a pop up window with a warning message that shows up. By unzipping the downloaded files, you will find the signed drivers probably in a location similar to this:


    Try using the latest drivers in GitHub if you still have issues =>

    USB Port Issues and Drivers

    You can have issues using the Pro Micro if you are connecting to a USB3 port. The drivers will not install correctly unless they use a computer with USB2.0 port.

    There was an issue when a customer was using it on a Windows 7 64-bit OS. When connecting to a USB3 port the Pro Micro can report the hardware ID as:


    When connected to a USB2 port the Pro Micro should report the hardware ID as:


    FioV3 should be


    Problems Opening a COM port on Linux

    There was a customer that had an issue on their Ubuntu Linux preventing them from accessing the enumerated port when a Pro Micro was connected. There is a fix by configurating some settings. Check below for more information:

    “On Ubuntu Linux, the modem manager was grabbing the Pro Micro as soon as it was plugged in, preventing anything else, such as the Arduino IDE from being able to open the port. This is apparently a known issue, but I had to go search it down, as there is no mention of it here…


    sudo echo 'ATTRS{idVendor}=="1b4f", ENV{ID_MM_DEVICE_IGNORE}="1"' > /etc/udev/rules.d/77-arduino.rules

    I found the explanation and fix on"

    Issues Uploading on Linux

    If you have problems uploading code with this error using the Pro Micro on a Linux machine:

     avrdude: ser_recv(): programmer is not responding
     avrdude: butterfly_recv(): programmer is not responding

    try following these instructions from Arduino => They need to change some udev rules. There was a customer had the same problem but got it working after changing the settings.

    Arduino IDE Automatically changing COM ports

    If you are using a device with the Atmega32U4 (like the Pro Micro or Arduino Fios) Arduino v1.6.3 will keep the same COM port after uploading. If you upload code using Arduino v1.6.5, the IDE will switch the COM port automatically when it is in bootloader mode. Once the sketch runs, the Arduino IDE v1.6.5 will not automatically switch it back to the COM port that the sketch runs on. You need to manually select the COM port if you want to upload or use the serial monitor.

    Uploading with XBee Attached to FioV3

    When an XBee is attached to the FioV3, you are able to still upload code. Looking at the Eagle files, the USB data lines are tied to the USB data pins of the Atmega32U4. This should be a separate line compared to the hardware UART lines that the XBee is attached to. The Atmega32U4 communicates with the hardware UART pins with the serial and serial1 functions. I tested this case 4 times and was able to still upload code to the FioV3 and connect to the XBee through the XCTU.

    Sending Characters through XBees with FioV3’s Header Sockets

    Not seeing serial data when an XBee is attached to the FioV3? Make sure to use the correct function as stated in Example 1 of this tutorial. Feel free to use this modified serial passthrough code based on some of Jim’s example codes [ ].

  • With Arduino 1.6.6, the Arduino add-on package that is linked by this tutorial has some deprecated path variables that can be fixed, but you can avoid this issue by following the instructions for the adding sparkfun’s boards to the board manager and using that to install the Arduino add-on here:

  • The V1.3B (Pro_Micro_v13b.pdf) schematic identifies D9 shared with A8, but the Hookup Guide shows D9 shared with A9, and D8 shared with A8. There is no A9 on the schematic. Can anyone help clear up the confusion please? Thanks

    • Sorry about the confusion. I remember digging into the port names, pin numbers, Arduino board definitions and following traces around the board files trying to figure that out because the schematics were so confusing (we are working on cleaning those up). The result ended up in the Graphical Datasheets. But the short answer is D9=A9 and D8=A8

  • Correction to guide: TXLED1 turns off LED… not on…

  • Hi,

    i ve a little problem with the pro micro. it always connects as usb-hid-device :

    Bus 001 Device 089: ID 2341:8036 Arduino SA Leonardo (CDC ACM, HID)

    when i double shorten rst & gnd it will be for 8seconds:

    Bus 001 Device 092: ID 2341:0036 Arduino SA

    but there is no /dev/ttyUSBx so i cant select a port in ARDUINO 1.6.8 (tools\port\serial ports are grayed there are only tools\port\“/dev/ttyUSB0, /dev/ttyUSB1”) if i connect a arduino uno or via ftdi an arduino mini i’ll get “/dev/ttyUSB2” and i can program it.

    i also tried this: sudo echo ‘ATTRS{idVendor}==“1b4f”, ENV{ID_MM_DEVICE_IGNORE}=“1”’ > /etc/udev/rules.d/77-arduino.rules but no success =(

    i can see with dmesg how the MICRO switches (disconnect after 8sec and reconnect as HID-Device). Perhaps i forgot a special kernel option (make menuconfig)

    thanks for help

  • Hello, I am not quite sure why, but the current release of the Arduino IDE (1.6.7) is throwing the following error:

    exit status 1 ‘Keyboard’ not found. Does your sketch include the line ‘#include <Keyboard.h>’?


    • Figured it out. The example code assumes you don’t have to include any libraries. It says that in the text above the sample code. That appears not to be the case.

      Make sure you add:

      include “Keyboard.h”

      to your sketch.

  • Is there any way to get the Pro Micro to work with 64 bit Windows 7? The only drivers I can find are for 32 bit systems.

    • The drivers should work fine on either. I think most machines at SparkFun are 64-bit Windows 7 and we haven’t had any problems. If you are having problems getting the posted drivers to work email and they can help you get it working.

      • When I try to install the drivers suggested I get, “Windows has determined the driver software for your device is up to date.” or “The folder specified doesn’t contain a compatible software driver…”

  • my mac is not recognizing the fio v3. I am running yosemite - any ideas on how I can get it to recognize?

  • I goofed :-(, excellent tuto !

  • What is the type of the USB connector? There are several types of the mini and micro. Thanks

  • I’m a bit confused on the FIO hookup guide. I was under the impression the I2C connections are on A4 & A5. Though the image shows them on D2 & D3. Which is correct?

    • D2 and D3 is correct for this version of the FIO; it uses the ATmega32U4, which has those pins assigned to I2C.

      You’re right that any Arduino that uses an ATmega328 (like the Uno, Pro Mini, Pro, etc.) would have the I2C pins on A4/A5.

      • So a got a couple of the Sparkfun 32U4 v3 FIOs, imagine my disappointment when I noticed what appeared to be a slam dunk for mounting an Adafruit ADC 16 bit analog board straight on top, only to find the SDA and SCL were swapped!

        Any suggestions for swapping the pins short of artful soldering of a miniature metal helix?

  • It looks like pins 14 and 17 are swapped on the hookup guide (hopefully not swapped on the board!).

    Can you confirm/deny this is the case?

    • Ahhhh…. The short answer is all the boards work correctly. Somewhere along the line something got mislabled (it might be on the actual part). I think the current boards/schematics are all correct though. On the Fio the ISP header works, on the Pro Micro the SPI pins are all there. Otherwise I suggest ignoring the labels and just seeing what works.

      • I should clarify: the blue pin numbers on the hookup guide (not the board) look swapped. So maybe just needs a photoshop on the image to avoid confusion. Suspect the board is fine and the graphic is just mistaken.

  • As mentioned in this tutorial the Arduino add files on do not work for Arduino V1.5. I have fixed this and put up a set of files that work with Arduino V1.5.5 These are available from

If you've found a bug or have other constructive feedback for our tutorial authors, please send us your feedback!