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

I've also gotten 0x3f rather than 0x54. Yes, I've selected the Leonardo board type after un-commenting it out in boards.txt. Was there anything else I was supposed to do? (Interesting that the board seems to ship with a program that blinks the "L" LED three times quickly, with a brief pause after that, and then repeats. So it's not shipped with the standard Blink sketch.)

Do the RX/TX lights on the Leonardo flicker at all when the upload begins? Are you sure you selected the right serial port? Are you sure the Leonardo you got has the 1200-baud bootloader expected by boards.txt?

Do the RX/TX lights on the Leonardo flicker at all when the upload begins? Are you sure you selected the right serial port? Are you sure the Leonardo you got has the 1200-baud bootloader expected by boards.txt?

Thanks, John. A video is worth a million words: http://www.youtube.com/watch?v=_WWeF_KnkCY&feature=youtu.be. I didn't record this part, but even if I manually reset the board right before initiating the upload (such that we get the "breathing" LED while the bootloader is waiting), it fails similarly (actually I think the error changes to 0x3f in that situation).

I think my next step is to flash the bootloader on GitHub, which I'll do with the programmer I built. If you want me to hold off for diagnostic/forensics purposes, I'll be happy to do so.

(edit: I read the firmware using my programmer. The hex file is here. The fuses were FF D8 CB.)

(second edit: I misread your question about the 1200-bps firmware. I don't know whether it does, but I see "R3" on the back of the board, and 011?94V-0 (the ? is a strange symbol that looks like a backward R combined with a U). I'll try messing with boards.txt to change the bitrate from the avrdude end.)

I got tired of the sync error, and had saved the production .hex (see earlier post) for future investigative work, so I just plugged my programmer into the Leonardo and burned the bootloader using the IDE. It seems to work fine now. I hope this was an uncommon problem (odd firmware on a new device), because I doubt many Leonardo owners will also own an AVR programmer.

So the bootloader was bad. Was that a genuine "Made in Italy" Leonardo? It does not bode well if they are being sold with bad bootloaders.

Agreed, but with a sample size of one I wouldn't infer a trend. I have a feeling I was seeing a diagnostic program that should have been flashed over with the standard bootloader and blink sketch, but either they forgot the final flash or for some reason it failed on my device.

I'm quite sure it's genuine. Maker Shed sold it at Maker Faire, near the Atmel and Arduino guys, all of whom were discussing design elements of the product with me. It passes all the visuals (high-quality silkscreen with the Arduino typeface, reasonably well-aligned components, etc.). Besides, if there's one thing counterfeiters can get right, it's copying the firmware. Sounds odd to say, but I bet a bad firmware flash is more likely a trait of a genuine device than a fake one.

And to emphasize, since the flash it's been behaving perfectly. It's a very light, sleek-feeling piece of hardware compared to the Uno, and I absolutely love the micro-USB socket (finally I can get that hulking behemoth full-size USB cable off my desk!).

The Leonardo will be supported by the Arduino 1.0.1 software, which I'm in the process of building and releasing. It should be up in a couple of hours. (If it takes longer than that, it will have to wait until late tonight, because I'm flying back to Boston from Maker Faire this afternoon.)

The bootloader (and other details) of the Leonardo support in 1.0 have changed for the final Leonardo release. The Leonardo won't work with 1.0. I'll try to have 1.0.1 up ASAP!

edit: Having some trouble with upload reliability on the Leo with 1.0.1 - it tends to say it "completed" without actually updating the code, it just auto-reset the board but doesn't actually upload properly on the first try and starts running the old code again. Resetting when uploading doesn't improve matters (in fact, it started to "crash" the program and say "COM8 is already in use", or "can't find Leonardo on selected port"). Maybe something to look into? And yeah, mine's a genuine "Made in Italy" Leonardo from Maker Faire, so... darn well better be official

Already having tons of fun with it... I wrote a quick 2-minute sketch that randomly keys out "something" and hits enter every random(1000,5000) seconds... uploaded it... took it to the roommate, and said "hey, plug this in and open up chat". Hilarity ensued. =P

It's Windows 7 32-bit. When it fails to upload, the "Tx" LED lights up briefly and the LED starts "pulsing" as it says "uploading", but it continues saying "uploading" and eventually completes without both Tx/Rx LEDs lighting up - then it goes back to running the previous program. I assume the "pulsing" means it's running the bootloader and waiting for an upload, so it's kinda strange that it would fail like that...

Frankly, the Leo seems to be quite an engineering feat, a USB interface chip that can reprogram itself on-the-fly and still maintain "full duplex" multi-device capabilities. So I'm not really complaining

Here's a fluke upload... it seems to fail in weird ways. The past 2 uploads were successful on the first try (irony - just when I'm going for a failure), but this one failed. Since it started running the program right away, I unplugged it when I noticed it failed and started running while it was still trying to upload - my program is still a "prank" program that opens a Notepad window and writes "I am a banana!" then closes it a few seconds later

edit: OK, this time I just let it go all the way through... it took much longer to error out (about 2-3 minutes), and these "send:... rcv:..." messages came up about once every 15 seconds. The previous part of the log is all the same, just the logging went on longer this time since I didn't unplug it.

edit: I watched the lights this time. What I do is plug it in, then hit "Upload" almost at the same time. It goes "Rx... Rx... Tx Rx... Tx... Tx... Tx", as it's now running the program and filling my screen with Notepads (as part of the old program), while it's trying to upload. It's like it never actually enters programming mode and is just talking to the program instead of the bootloader...

Really elegant in how simple the code can be with Arduino, and how complex everything really is under the hood. Strange bug, though, when programming this: I initially used "Keyboard.print('n')" and "Keyboard.print(KEY_F4)", but only the "n" and "r" would work, but KEY_F4 wouldn't trigger. Switching it to "Keyboard.write()" worked for the whole thing, which was a bit strange... a little rusty (haven't done Arduino in over a year), but shouldn't they be the same function?