After driving myself insane with an unreliable Leonardo, I narrowed down the problem to its serial port. Namely, it's not a true serial port, but some sort of simulated monstrosity that can't be reliably reset. This makes uploading sketches immensely difficult. I found that neither Arduino-Makefile nor the Arduino IDE can reliably upload sketches to a Leonardo, and succeed only 10% of the time.

It took me awhile to accept just how terrible the Leonardo was, because before this, I had only used the Uno and Mega, which are extremely reliable. They've always "just worked" for me, so I couldn't understand why Arduino would release a board as unusable as the Leonardo. I've since realized the Uno is so reliable, in part because it has a more complete serial port, and don't use the dreaded 32u4 chip and its fake serial port that doesn't support the DTR or RST pins.

That said, which Arduino's have a real serial port? Is it only the Uno and Mega? After months of banging my head against a Leonardo, I want to avoid anything else that uses the Atmega32u4 chip. Unfortunately, looking at all the various boards, it looks like many, especially most of the newer ones, use the 32u4.

Am I missing something here? Everything I Google an error uploading with avrdude or the IDE, the results always mention problems with boards like the Leonardo and their unstable serial ports. Why does Arduino keep using the 32u4 chip if it's that unreliable?

  • 1
    No Arduinos since the Arduino Serial have a real serial port. They all leave it to the USB-UART bridge (if any) to handle anything beyond RX and TX. Commented Jun 26, 2017 at 15:31
  • Strange, I (and many others) have never had such problems with the Leonardo not the other 32U4 based boards.
    – Majenko
    Commented Jun 26, 2017 at 16:01
  • 2
    Your problems are likely caused by loading bad sketches. A more productive question would focus on the means of recovering from this, ie, identifying a reliable way reset the board and stay in the bootloader to erase the bad sketch. Commented Jun 26, 2017 at 17:46
  • 1
    @Cerin, I hear you. In linux, with an old Leonardo bootloader or third party bootloader, and a wrong sketch, and something called 'modemmanager' in linux, it is a real problem. In Windows and with a recent bootloader, it is working 100% okay. Do you have a programmer, and did you burn the bootloader with the Arduino IDE ? In linux, remove the 'modemmanager'. Yes, the sketch can be a problem when sending too much to the usb serial port. It could block something, preventing a restart of the bootloader.
    – Jot
    Commented Jun 26, 2017 at 19:29
  • 1
    A flawed sketch will not prevent reprogramming of an Uno; the same code on a Leonardo will prevent the logic that can intercept programming requests after the start of a user program from doing so. But it's still a badly written sketch. Commented Jun 26, 2017 at 20:29

1 Answer 1


There seems to be quite a few Arduinos without a 32U4, like:

  • Uno (you mentioned it already)
  • Mega (same)
  • Lilypad Snap
  • MKR1000
  • Pro
  • Pro Mini
  • Zero
  • Due
  • Ethernet
  • Mini
  • Nano
  • MKR Zero

See the list at Comparison table.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.