Custom USB Device ID

Hi all

I'm new to the Arduino, although not to uC's or programming in general. I am starting on a few projects at the moment using Duemilanove's.

One thing I would like to be able to do, once the development work is complete, is make a completed device. This would involve customising the USB Device ID on the FTDI chip and developing my own driver. This would be to allow plug'n'pray operation of the device, so when I make them for friends they appear as my device, not a serial port with a daemon/service/program controlling them. Just gives a nice professional edge to it.

Question is, is this possible, and how? I have looked through some of the FTDI docs and not found the answer as yet.

Answers on a postcard please :)

Thanks in advance.

I read somewhere that FTDI will give you 6 free devices ID's that go along with their vendor ID. You should be able to set the ID to whatever you want in most of their devices. The problem is that if it is duplicated by someone else's you might have problems. Take a look around on FTDI's site some more and you should find what you are looking for.

here we go...

See page 6

Cheers, that solves one problem. I'll write to them when I'm ready requesting a block of PIDs.

However, it's actually reprogramming the FTDI chip that I was unsure about. Obviously it can be done, but how is a different story. Maybe I'm blind/thick, but I couldn't find anything telling how. Has anyone done this? Can it be done from the Arduino (i.e. without hardware mods)?

FTDI provides a (windows-only) utility to do this


If you look at my project you will see a step by step guide to changing the ID.

However the chip will always present itself as a serial port because that is what the code inside the FTD chip declares itself to be during enumeration.