After putting in about 17 hours of rage-inducing troubleshooting into my new Freaduino MEGA 2560, I thought I'd share my story. The story just ended with my little inline blue LED blinking once per second. And I have no idea how. So I will start from the beginning, explain what happened, what I did, and perhaps someone can enlighten me, or at the very least, some other poor sap will read this and be able to save a few hours.
Prologue: The setting for this Divine Comedy is America. It's summer, 2013, the walls still put out 60Hz Alternative Current at ~120 Volts. A brand new, Freaduino Micro:bit Kit | micro:bit Factory Products | ELECFREAKS is removed from it's package, and an accompanying Shield (TFT LCD Mega Shield V 2.2) and TFT LCD is stacked on top of the board. With Arduino 1.0.5 installed on Windows 7 64-bit edition, our hero connects the board to his PC using only the supplied USB cable (an obnoxious sparkly purple color). "DuhNAH" Windows responds in classic fashion and a status bar indicating device found / driving being installed / driver installed successfully flashes in the bottom right corner. Even more exciting? The backlight on the TFT LCD is lit, indicating power is being applied through the shield to the LCD. Right outta the box! A dream come true. But sometimes, Dreams have a nasty habit of going bad when you're not looking.
Scene 1 - A quick Timeout
With everything firing on all cylinders, our overly-caffeinated hero copies a fairly large "http://www.elecfreaks.com/wiki/index.php?title=4.3"_Width_480*272_TFT_LCD_Module" sketch (as they are called) that acts as a video demo for the TFT LCD. As the progress bar moves in a typical, non-linear fashion, our hero reaches for his cup of joe, and anxiously snaps his head back and forth between the LCD screen and the Arudino IDE console. Finally, he fixes his gaze on the screen for what seems like an eternity. Finally taking his eyes off the prize, our hero notices out of his peripheral vision some discolored text in his console. The programmer has timed out. The hero tries again, to no avail. Undeterred, he tries adjusting settings within the IDE, like the programmer of choice, and changing the board from "Arduino 2560 or Mega ADK" to "Arduino UNO". (After all, he had been successfully programming his other board, an UNO all morning.) Without any change, our hero returned the settings to their previous (less nonsensical) state. At a loss, it was time to consult the internet. What better place to start than the Official Arduino troubleshooting page? http://www.arduino.cc/en/Guide/Troubleshooting#toc1. It reads: " The Arduino Uno and Mega 2560 use standard drivers (USB CDC) provided by the operating system to communicate with the ATmega8U2 on the board. Other Arduino boards use FTDI drivers to communicate with the FTDI chip on the board (or in the USB-serial convertor)."
A little further down it seems that Mega 2560's don't always play nice with Win7 x64. "On Windows 7 (particularly the 64-bit version), you might need to go into the Device Manager and update the drivers for the Uno or Mega 2560. Just right click on the device (the board should be connected to your computer), and point Windows at the appropriate .inf file again. The .inf is in the drivers/ directory of the Arduino software (not in the FTDI USB Drivers sub-directory of it)."
Our hero feels relieved - a known driver problem with a known (and presumably working) fix. Our hero notes that the instructions are slightly anemic. The full procedure for switching from the automatically installed FTDI driver to the Windows driver (using the arduino.inf) file is as follows: Enter Device Manager. Right click on the item shown (in the hero's case - "USB Serial Port (COM20)") Select "Properties". Click on the "Driver" Tab. Click on "Update Driver". When prompted, select "Browse my computer for driver software". At the next screen, make sure to click "Let me pick from a list of device drivers on my computer". The hero feels betrayed that the official Arduino troubleshooting guide left this step out. Merely browsing to the appropriate folder and choosing next allows Windows to feel vindicated: "The best driver software for your device is already installed. Windows has determined the driver software for your device is up to date. USB Serial Port." [Close] Oh, really Windows? Seems that FTDI version 126.96.36.199 is STILL installed, and I wanted to install the generic driver according to the Arduino's official instructions. What all future heros need to do is click "Let me pick from a list of device drivers on my computer", followed by the "Have Disk" button. (The hero performs this step) And how quaint! Our hero sees a screen he hasn't seen since he was a young lad installing games onto Windows 95. Fortunately, without a Floppy Drive A:, our hero Browses to the arduino.inf file located in the "C:\Program Files (x86)\Arduino\drivers" directory. Opening the arduino.inf file displays a list of Arduino Models. Scrolling a bit reveals Arduino Mega 2560. JOY! Our hero selects it and clicks next. Windows warns the hero that the driver might not be the correct one for the device. Yada yada. Our intrepid hero ignores the warning (YOLO) and continues to install. The Windows progress bar moves, indicating everything is going as planned. Our erupts from his supposedly ergonomic desk chair and begins a swagga dance.