Arduino>cable>usb>windows gui>usb>cable>arduino

I would like to program a bootloaded Atmel chip, on an arduino board, and then drop that chip with a crystal onto a custom board with all my I/O’s. OK, so I know that’s doable.

Then I want to provide the user with a windows GUI program they could download and easily install. Let the user plug my device into a PC, and they then launch the program. The program should automatically talk to the arduino chip and read a few dozen pre-programmed values stored on the arduino and display them on the windows GUI. Then the user should be allowed to make changes to the values, and click a button in the GUI that will save them back on the “arduino”. Unplug the PC, and the values should be saved permanently on the “arduino”

I would assume that using something like a FTDI USB-to-TTL cable, or FTDI chip, would be an easy way to get the “arduino” chip to talk to the PC via USB with out doing it in the “arduino’s” code.

I’ve had a bit of ANSI C programming, but never created a GUI.

QUESTIONS:

1.) Is what I’m describing do-able?
2.) What software should I be looking at to create the GUI? Processing? I would ideally like to provide a slick, visually appealing interface, but ultimately don’t have a year to learn C++ on my own, and deal with all the bugs.
3.) What other methods (besides code on the arduino) can I use to have the bare arduino chip talk to a PC over USB? The FTDI “USB to TTL” cables are about $30 - not exactly cheap. Could the same thing be done with a off-the-shelf USB to serial port adapter and a few extra components?

Thanks in advance - and sorry for the long post! I searched, but I couldn’t find anyone asking about something like this.

Use EEPROM for storing non-volatile data/variables.

I would've used java/processing for the GUI. Making it crossplatform [always good ;)].

As for communications through a USB cable, I would've just done what the arduino duemilanove do. Use FTDI FT232RL :)

I see this potential problem with your approach: your users will have to install, beside your app, the FTDI driver, to be able to communicate with your device over USB. The FTDI calble can be purchased for around $20. A cheaper solution would use MAX232 (instead of FTDI); this chip is about $1 on ebay. In this case, your users would connect the device on the serial port, rather than USB, and they do not need to install a driver. My 2 cents.

For your solution it seems you might be better off using AVRUSB. There is an arduino implementation: Project Log : Arduino USB - ProjectLogArduinoUSB

It is an interesting project, but mostly so far used for Arduino to PC communication. however, I think the other path is possible as well.

This is a much cheaper method than using the FT232 and gets you past the end user having to install the drivers (however, this can be handled by your software as well), cause the USB implementation is done is software