Fixing Linux firmware issues on Arduino Mega 2560
Early adopters of the new Arduino UNO and Arduino Mega 2560 using the Linux operating system seemed to have a number of bizarre issues with the serial port connectivity. Fortunately, the Arduino team just released a new firmware patch for the little ATmega8U2 microcontroller that handles the serial communications. They wrote up some great photos and instructions on how to re-flash your Arduino UNO. but they don’t have any information or photos for the Mega 2560.
Well, tonight I looked at the Mega 2560 schematic and PCB layout files in Eagle, and figured out what I needed to do to properly reset the 8U2 serial port chip to enable the “DFU” programming mode. The general idea is to reset the chip while shorting two pads on the backside of the circuit board. The two pads you need to short are in a different location on the Mega than the UNO, and are highlighted in the image below in green. The other two pads you need to short are highlighted in red.
You’re going to want to follow the guide posted for installing the Linux/OSX/Windows DFU programming software, and the rest of the re-programming process. This page shows the procedure for resetting your Arduino Mega 2560 into DFU programming mode. This procedure is as follows:
- Plug your Mega into the computer as normal, using the USB cable.
- Using a piece of wire or a screwdriver tip, short out the pads above circled in green. Keep them shorted out until the end.
- Using another piece of wire or another screwdriver, short out the pads above in red.
- Stop shorting out the red pins.
- Stop shorting out the green pins.
Now, if you check in your Arduino menu, the board’s serial port should no longer show up in the menu. You can now follow the rest of the guide on re-flashing your 8U2 serial port firmware with the latest version.