Uploading Sketches to Arduino Micro through an UNO with ICSP

The Micro USB connector ripped clean off my Arduino Micro so I need to find a new way of uploading sketches to it. I have been researching how to do this and it looks like I can use another board (my UNO) as the programmer and upload the sketches to the Arduino Micro through its ICSP pins. I am still unclear how to configure everything to pull this off. Any help would be appreciated.

That seems to be pretty common. I've never done it but I have a friend that did it with two different Pro Micros. I actually managed to solder a USB cable to the pads with magnet wire to save one just for fun but the other one he had ripped off some pads and I didn't want to try scraping off the solder mask and soldering to the traces.

You should be able to get the information you need here:

After spending some time on that if you still have some specific questions come back and well try to help you out.

After many many attempts, I continue to get the error: "Error while burning bootloader," which includes "invalid device signature." What is shown in Arduino.cc tutorial on using an Arduino as an AVR ISP is an UNO to UNO programming interaction. I don't really know if trying to program a Pro Micro would make a difference.

What do you have selected in the Tools > Board menu?

It's much more helpful if you post the full output rather than a small fragment. Please do this:

  • File > Preferences > Show verbose output during: > upload (check)
  • Try burning the bootloader again.
  • After you encounter an error you'll see a button on the right side of the orange bar "Copy error messages". Click that button.
  • Paste the error in a message here using code tags.

I select Uno as the board when I upload the ArduinoISP sketch to the Uno, and then when it comes time to burn the bootloader to the Micro, I select the board as an Arduino Micro. Here is the full error message.

Arduino: 1.6.8 Hourly Build 2016/01/12 04:13 (Mac OS X), Board: "Arduino/Genuino Micro"

/Applications/Arduino 2.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino 2.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega32u4 -cstk500v1 -P/dev/cu.usbmodemFA131 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m 

avrdude: Version 6.0.1, compiled on Apr 14 2015 at 16:30:25
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino 2.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/skylercornell/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbmodemFA131
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Error while burning bootloader.
Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

That's the correct procedure. The signature 0x000000 indicates there's probably an error in your wiring. Please explain exactly which pins on the Uno are connected to which pins on the Micro.

The arduino.cc tutorial says to connect connect Arduino Uno to the ICSP 2x3 pins if the board trying to be programmed is a 32u4 board, which the Micro is. The article also mentions that if using an Uno as a programmer, a 10uF capacitor should be attached between Ground and Reset. Does this mean Ground and Reset solely on the Uno, or between the Uno and the Micro? Here are the exact connections I have made between the uno and the ICSP pins of the Micro.

Uno-----Micro
5v ----- VTG
GND ----- GND
D13 ----- SCK
D12 ----- MISO
D11 ----- MOSI
D10 ----- RST

Evil Mad Scientist ISP Sheild: 13 USD + shipping

Ribbon cable: 2.75 USD

NEVER having any more problems with stupid ISCP wiring: Priceless