Let's say I want to give the world a revolutionary musical instrument based on Arduino (naturally).This instrument needs to be connected to any Windows PC by musicians, not computer programmers or other nerds like me.I don't wan't to insult the good musicians by asking them to go to the Control Panel, middle-tripple click on USB Serial port in the Administrative Computer Management, find the driver, download an updated driver, try again, and then trow the revolutionary music istrument out of the window.

Is there a way I can make a setup program, which would install the correct driver without any user interaction?Or maybe I don't even need a driver? Maybe I can somehow use the default device, which is installed when I connect the Arduino?I want my customers to run the setup program once, connect the USB cable, and never think about the connection again.

I did do some research and could not find anything which I can easily incorporate into my setup.I'm planning to use Arduino Micro, if it matters.

Now I see how helpful it is ask a question here: as soon as you post a question, an answer pops up all by itself.I have no idea why would people suggest to update the driver manually from a control panel and by looking for it in the Arduino IDE folder.Why not just run a setup executable from FTDI site ? ( http://www.ftdichip.com/Drivers/VCP.htm )

I guess now I need to find a way to uninstall the IDE driver and try to install the FTDI driver from scratch.Hope it works.Please let me know if you have tried installing the drivers this way on a new computer, I mean without installing the Arduino IDE first.

Does the serial protocol even make sense for your project? Since you are using the ATmega32u4 (the one in the Micro) You could write another USB Protocol Stack to use that is more appropriate, so you don't need to have the user install a driver. Or you write a custom stack which forces them to install a driver.

I was right after all, it's not that simple. Dude, thanks for the reply, but how dow I know "whether the serial makes sense"?I need to transfer those little things we call "bytes" between Arduino and PC.Can you please give me a link to an example of a PC program, preferably in C++, which talks to Arduino over USB without a driver?I could never find anything which shows how to talk to USB directly, there is always a driver which translates into it.

And I'm just curious, why Micro would be different?What if I find out that I need to switch to another model, with more inputs or more memory? Is it a whole new story?

Figure out what you are sending and determine if serial makes sense. That's not really something you can google and get an answer.

If it really is a small amount of data or it isn't time sensitive, then maybe serial does make sense. However you have to weigh that against your issue of having people install something. Look around the forums, there is a user who has a modified IDE that sets up the serial drivers (which aren't really drivers, it is just an INF file) automatically. Maybe you can do what he is doing.

Can you please give me a link to an example of a PC program, preferably in C++, which talks to Arduino over USB without a driver?

No, I can't. Why would anyone do that? There's a good chance most operating systems wouldn't allow it or require some pretty interesting hooks to allow it. You would do what every other hardware manufacturer does: write a driver for your USB device and communicate with the driver. There are many "protocols"/profiles/stacks already built into operating systems. You can probably use one of those. (e.g. Serial)