Unbrick Freaduino FTDI driver

IMG_4612The Freaduino MEGA 2650  looks a nice board at first view. It is advertised as Arduino MEGA 2650 compatible with many extras. Like a switch to run on 3.3V or 5V, which makes it easier to interface to 3.3V devices. And a more capable power circuit  when powered by a external powersupply: 800 mA 3.3V,5V 2A.

I have bought, a year ago, one of these boards: a 2012 version V1.4, date 22/10/2012. Looks well produced.

It has some deviations from the standard ATMEGA 2650 R3:

  1. The dimensions are not exactly identical to the Arduino MEGA2650, prototype boards do not fit. Pinout is identical though.
  2. It has a FTDI FT232L based serial interface instead of the ATmega16U2 IC.
  3. The FTDI FT232L on my board is a fake, so it becomes bricked when a current FTDI Windows driver detects this IC.

In 2014 I did not get it to work, due to the fake FT232L, and put it aside. But today I got it operational again! Alas still not operational on Windows, it works fine on a Linux system such as the Raspberry Pi.

These are the steps:

  • unbrick the FTDI FT232L
  • repair/update bootloader
  • program on a Raspberry Pi

Unbrick an FTDI IC

The FTDI IC’s are/were quite popular, so some Chinese decided to clone this IC. The clone/fake looks on the outside, physical and  electronical identical and performs fine in the situations we see these, such as cheap Arduino made in China. In 2014 FTDI decided to add a feature to their Widnows drivers, when a fake was detected, to make the IC unusable by changing the USB ID. The driver then refuses its duty and in the device manager the ‘unknown’ US device shows a PID of 0000H.
This happened also to my Freaduino.

Of course many recipes for Windows appeared to undo the bricking, involving lots of steps and tools made by FTDI themselves. Since I also read stories about Windows driver problems and bootloader problems.

  1. Plug in your bricked device. If you run “lsusb” it should show a device at “0403:0000”.
  2. Download ft232r_prog from ft232r_prog (v1.25) and extract to a folder
  3. Install the build dependencies by running “sudo apt-get install make gcc libftdi-dev”
  4. Change directory into the folder ft232r_prog where the file ft232r_prog.c resides
  5. Type “make” to build the program
  6. Now run “sudo ./ft232r_prog –old-pid 0x0000 –new-pid 0x6001”
  7. You are done. Unplug and re-insert your USB device and run “lsusb” again. It should show an id of 0403:6001

$ sudo apt-get install make gcc libftdi-dev
$ wget http://rtr.ca/ft232r/ft232r_prog-1.25.tar.gz
$ tar -zxvf ft232r_prog-1.25.tar.gz
$ cd ft232r_prog-1.25
$ make
$ sudo ./ft232r_prog --old-pid 0x0000 --new-pid 0x6001

Repair/update bootloader

I suspected the bootloader to be damaged or outdated so I used Nick Gammon’s  bootloader sketch and guide to update the bootloader. The bootloader program runs on an Uno. The cabling was done following the guide on Nick’s page.

That worked well! So the ATMEGA 2650 was alive and had a good working bootloader. But no fun on Windows …

Programming the Freaduino on a  Raspberry Pi

In a previous pot I showed the combination of Raspberry Pi and Arduino with the RasPIODuino and GertDuino, so I have a working Arduino IDE on the Raspberry Pi.

After connecting the Freaduino an USB TTY device appeared (lsusb)  and with the Arduino IDE on the Raspberry Pi I was able to upload sketches! It blinks and communicates fine via the serial line to the Raspberry Pi serial monitor!

So its now unbricked and alive and kicking and I can use it again for my projects by uploading sketches. Only on the Raspberry PI! No luck at all at the Windows PC, the official FTDI driver does not let me communicate with the Freaduino.

I can live with that, but not being able to use my Windows PC is a bit of discomfort …

QUESTION: Is there a driver for Windows 64 bit (7, 8, 10) that does work with the (fake) FT232L of the Freaduino?