Customize your Arduino

I have killed three arduinos, one of them just trying to customize it (show my own vendor id, use “my” own drivers, etc). So I wrote a small tutorial about how customize it:

Initially, your board (any arduino) must look this way in Windows device manager:

Download, unzip and run MPROG: http://www.ftdichip.com/Resources/Utilities/MProg3.5.zip

Download the default configuration for the FTDI chip from here:
Arduino Playground - FTDI (direct link: Arduino Playground - HomePage)

Load that configuration in Mprog. You will see something like this:

Enter EDIT MODE with Ctrl+D in Mprog (or click the third toolbar button), now change the USB VID / PID from "FTDI DEFAULT" to Own VID & PID. Set new values for Vendor ID and Product ID.

Down, you can change the Manufacturer name and Product description. My changes look this way (is for my Freeduino):

Now, (save this configuration if you wish) click Device / Scan. Your board must be connected and installed as usual. Below you will see "1 programmed device". To reprogram your ftdi just click Device / Program.

Status after "Device / Scan":

Ready, unplug your board. Now you must modify the FTDI driver:

Check http://www.ftdichip.com/Drivers/D2XX.htm

You can use the zip (http://www.ftdichip.com/Drivers/CDM/CDM%202.04.16%20WHQL%20Certified.zip) or the installer package. I will use the exe one (http://www.ftdichip.com/Drivers/CDM/CDM%202.04.16.exe).

After the first driver installation, go to Windows %TEMP% (open "%temp%" from start menu) and look for a ckz_XXXX folder like this:

Copy the contents of this folder. This will be your custom driver installation.

Open ftdibus.inf and ftdiport.inf files and seek for
"VID_0403&PID_6001"

Replace using your own VID and PID, in my case by:
"VID_0666&PID_5001"

Look for some strings like this:

[Strings]
FTDI="FTDI"
DESC="CDM Driver Package"
DriversDisk="FTDI USB Drivers Disk"

In both files you can type anything you want.

Now, edit the "dpinst.xml" file. You can know more of how this file works here: Microsoft Learn: Build skills that open doors in your career (look here to know about language code, because maybe my 0xC0A spanish code will don't work on your machine)

I have used the ftdi's template:

<?xml version="1.0"?>
<dpInst>
    <language code="0xC0A">
        <dpinstTitle>Instalador de Freeduino v1.16</dpinstTitle>
        <welcomeTitle>Bienvenido al asistente de instalación de los controladores para la placa Freeduino</welcomeTitle>
        <welcomeIntro>Este asistente instalará los controladores de la placa Freeduino v1.16 para Windows.</welcomeIntro>
        <eulaHeaderTitle>End User License Agreement</eulaHeaderTitle>
        <eulaYesButton>I &amp;accept this EULA</eulaYesButton>
        <eulaNoButton>I do &amp;not accept this EULA</eulaNoButton>
        <installHeaderTitle>Installing the software for your FTDI device...</installHeaderTitle>
        <finishTitle>Congratulations! You are finished installing your FTDI device.</finishTitle>
        <finishText>VCP drivers are now installed for your FTDI USB device.</finishText>
        <eula type="txt" path="eula.txt" />
    </language>
    <icon>ftdismall.ico</icon>
    <watermarkPath>FTDI.bmp</watermarkPath>
</dpInst>

My customized files are here:
http://servicios.ried.cl/custom_ftdi_arduino.rar

I have created a good looking freeduino icon and a resource-modified winrar sfx installer:

Installation process:
http://screencast.com/t/QjWCaerG

We are ready now, plug in your modified arduino to see the results. You might ask how will my Freeduino looks now:

Installation (some warnings will appear because I didn't pay to microsoft to get my custom ftdi drivers digitally signed :-/):

And from Device manager:

Good look!

PD: All of my broken arduinos are alive now :smiley: (ftdi transplant ::))

Thanks for this! Can be useful for finished products :slight_smile:

Nice one!

Thanks

Nice!!! :smiley:

Nice! :sunglasses:

Nice tutorial :0)

But i wonder if it is possible just to rename an Arduino device without having to install whole new drivers?

Yes, just don't modify vendor and product ID :sunglasses:

..that was too easy ;0)

Nice post.

might be a coincidence, but after doing that (windows 7, x64) i have had occasional system wide crashes on upload using modified drivers.. this was solved when the old drivers were installed and every change had been revoked. Anyone else experiencing this?

Nice.

@Nachtwind: what kind of crash? can you provide a step/step to get that error? I have Win7 x64 in my laptop.

I think is related by the Win7 asking for signed drivers (customized ones aren't digitally signed, because you need to buy a signature :-[), can be solved by a boot modifier parameter.

Hm, there have been several crashes on upload or serial communication. It was randomly happening in like 40% of all serial communications.. strange as it seems ><

I have used MProg to rewrite both Vendor ID and Product ID in Arduino. I think it may be successful. I have rewritten both Vendor ID and Product ID in both ftdibus.inf and ftdiport.inf in FTDI's driver folder. But, when I connect Arduino to PC via USB, I cannot make the right device driver. PC shows error message. Now, I cannot rewrite both Vendor ID and Product ID in Arduino by MProg. When I click Device/Scan in MProg, It shows “Number Of Blank Devices = 0 Number Of Programmed Devices = 0”.
My Arduino cannot communicate to PC via USB, because it doesn't have the right device driver.
By the way, Device Type in my MProg is FT232BM, not FT232R. Is it the cause?
What should I do?

That happens if you killed ftdi. I don't know why that happened to you, happened to me once, don't know if is a faulty ftdi chip or something that I did do wrong, so I decided to write down the detailed experience to help other people.

If you followed this instructions perfectly I'm not sure what happened. Sorry. Now, the operative system couldn't recognize the faulty ftdi chip (with null vendor and product ids), I tried with no luck to reborn the ftdi chip.

You didn't lose your arduino yet, your solution is to replace it:

-Buy another FTDI chip (I boughed mine from seedstudio, $4 USD?)
-Remove the actual one, with solder and soldering iron apply heat to each side, don't worry if you break the ftdi, but take care about the pcb pads and don't apply so much heat
-Clean the pcb with solder remover
-Align the new one, and touch gently each leg with the soldering iron, don't need to apply more solder

Good luck