Arduino Micro completely useless...Can I use a different bootloader????

WHY are the Arduino Micros and Leonardos even supported at all anymore? They simply do not work.

I bought my first Arduino without reading about the Micro and Leonardo programming horrors...I thought the Micro I bought would be great for using on my solderless breadboard, as it would fit in like a DIP. I was right, it does fit well...but I am about to just take it back and give up.

I spent five hours to get ONE sketch uploaded from the LCD tutorial. Then I spent NINE HOURS of messing with this thing trying to get ANYTHING else to upload to it. This pressing the reset button at a magic moment stuff is a waste of time. It does not work, doesn't help, and i still get the "no micro or leonardo found" message EVERY SINGLE TIME. Plus, my computer constantly beeps the "found new hardware" beep when the thing is plugged in.

I am not the only one with a problem...you can find at least ten posts with this issue in a few mintues in just this forum...google finds hundreds more.

Is there a different, not-so-utterly-useless bootloader that is compatible with this hardware?

(deleted)

Since this forum is for "Problems with the Arduino itself" I don't think you are going to find success stories here. There is a known, documented problem with the Arduino Micro and Leonardo upload code. I should not be fighting with a know, repeatable, documented bug in a commercially produced dev board, especially when it cripples the product.

All I want to know, is if there is an alternate bootloader that DOESN'T have this problem?

OK, here's the problem.

The Atmega328-based boards (eg. Uno, and the various variants and smaller versions) have two main chips on them. One is the processor running your sketch. The other is a chip dedicated to working the serial-to-USB connection. When RTS is asserted by the programmer (the IDE) that tells the USB chip to reset the main chip, regardless of what sketch is running. The bootloader then uploads the new sketch. This works almost all of the time.

The Micro and Leonardo boards, use a single chip (ATmega32u4) which now has to do both things. The advantage is, that chip can be reconfigured by the sketch to emulate a mouse, keyboard, joystick etc. However once reconfigured, it no longer responds to uploading directives. As far as the IDE is concerned there is no board connected, just a new mouse/keyboard/joystick or whatever.

To allow bootloading you have a brief window of time when the board configures itself to be a serial port, listens for bootloading instructions, and then jumps into the main sketch, whatever was last loaded. This main sketch may well then unconfigure the serial port and reconfigure as a mouse.

Now you could make it wait 10 seconds, 20 seconds, an hour even. But then people will complain "hey, my Leonardo takes ages before it can be used as a mouse/joystick/keyboard".

I find with my Leonardo that if I hold down Reset, and let go just as the sketch starts to upload, it usually uploads OK.

If you want to avoid all this hassle, and you don't particularly need to emulate a mouse or something, use a Uno or similar board.

I should not be fighting with a know, repeatable, documented bug in a commercially produced dev board, especially when it cripples the product.

It's not a bug. It's a design decision.

Then is the bootloader code available to change this timeout? It's horribly annoying to have to perfectly time your rest just to upload the code...I, as noted above, screwed around with this for nine hours and STILL never got it right. I can't imagine a classroom of these things, as mentioned in three or four other posts in the forum about the micro/leonardo upload issues.

Read this:

http://forum.arduino.cc/index.php?topic=125252.msg1397545#msg1397545

That guy didn't have any problem.