Why Am I Unable To Program Arduino Micro?

I have a batch of Arduino Micros I have been completely unable to program in any way. I've tried just using a USB cable, and "ArduinoAsISP" as I've done on hundreds of ProMinis. I've also tried using a USBTinyISP. I've used both the Arduino IDE (both versions 1.05 and 1.5.5r2), as well as AtmelStudio with the (excellent!) VisualMicro plug-in. I've tried downloading both a trivial sketch, and the bootloader. Nothing works.

This is driving me nuts! I've got 30 of these things, and can't get one of them to program! I am running Windows 8.1, 64-bit, and have installed the latest (signed!) USBTinyISP drivers from AdaFruit. DeviceManager indicates the device driver is happy.

When I try to download a sketch, it complains "Board at COM7 port is not available", even though the COM port DOES show up in DeviceManager. It does this even when I select USBTinyISP as the programmer, which makes no sense to me. The Arduino IDE gives me NO diagnostic information when I attempt to download a sketch. The sketch compiles fine, then the line just above the output window shows "Board at COM7 port is not available". When I try to program the sketch using AtmelStudio, I get the following output:

Compiling 'USBKeyboard' for 'Arduino Micro'
Build folder: file:///C:/Users/RayL/AppData/Local/VMicro/Arduino/Builds/USBKeyboard/micro
Binary sketch size: 5,070 bytes (used 18% of a 28,672 byte maximum) (0.24 secs)
Minimum Memory Usage: 151 bytes (6% of a 2560 byte maximum)
Uploading to I/O board using 'USBtinyISP'
Upload failed. Did you select the correct upload method for this board?
System.Exception: Error during upload using programmer
avrdude: Expected signature for ATmega32U4 is 1E 95 87
Double check chip, or use -F to override this check.
at processing.app.debug.AvrdudeUploader.uploadUsingProgrammer15(MCUPreferencesMap prog_prefs, String buildPath, String className)
at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(String buildPath, String className, Boolean verbose, Boolean ProgrammerUploadUsing, String mcuProgrammerOverrideName)
at processing.app.SketchEditor.Upload(Boolean verbose)

Here is what I get when I try to program the bootloader:

Arduino: 1.5.6-r2 (Windows 8), Board: "Arduino Micro"

C:\Program Files (x86)\Arduino v1.5.6r2/hardware/tools/avr/bin/avrdude -CC:\Program Files (x86)\Arduino v1.5.6r2/hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega32u4 -cusbtiny -e -Ulock:w:0x3F:m -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m

avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

System wide configuration file is "C:\Program Files (x86)\Arduino v1.5.6r2/hardware/tools/avr/etc/avrdude.conf"

Using Port : lpt1
Using Programmer : usbtiny
avrdude: usbdev_open(): Found USBtinyISP, bus:device: bus-0:\.\libusb0-0001--0x1781-0x0c9f
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 10 8 0 no 1024 8 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


flash 65 6 128 0 yes 32768 128 256 4500 4500 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : USBtiny
Description : USBtiny simple USB programmer, USBtinyISP - Inexpensive USB AVR Programmer
avrdude: programmer operation not supported

avrdude: Using SCK period of 10 usec
CMD: [ac 53 00 00] [00 00 00 00]
CMD: [ac 53 00 00] [00 00 53 00]
avrdude: AVR device initialized and ready to accept instructions

Reading | CMD: [30 00 00 00] [00 30 00 1e]
CMD: [30 00 01 00] [00 30 00 95]
################CMD: [30 00 02 00] [00 30 00 0f]
################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f
avrdude: Expected signature for ATmega32U4 is 1E 95 87
Double check chip, or use -F to override this check.

avrdude done. Thank you.

processing.app.debug.RunnerException

at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:305)

at processing.app.Editor$47.run(Editor.java:2569)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

at java.awt.EventQueue.access$200(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: processing.app.debug.RunnerException: Wrong microcontroller found. Did you select the right board from the Tools > Board menu?

at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:111)

at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:298)

... 15 more

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

Regards,
Ray L.

Sorry! Brain fart! The boards in question are Nano, not micros. I can now program the bootloader, but still get the "COMx not available" error on any attempt to program a sketch by any means.

Regards,
Ray L.

As often happens, after making a post here, I found my own answer - CR@P hardware! The boards in question do not use the FTDI RS232 chips - they use apparently bogus Prolific PL-2303s which are not compatible with Win 8.x. Looks like I'll have to either use a different computer or program them, or just scrap them and get some decent boards.

Regards,
Ray L.