User updates & configuration software for my Arduino Nano project

Hi,

I've built a prototype of a floor board that sends MIDI out commands. To keep it small but user updatable, I decided to use an Arduino Nano board.

Now there are two things I want to do: 1.) Users should have the opportunity to change what the switches on the floor board do.

2.) Users should be able to update the Arduino code that I provide, like a firmware update.

Naturally, there's the option to just give them the Arduino SDK & the project source code and let them handle it, but not everybody is a computer wizard, so I'd prefer to write a front end for the configuration of the MIDI commands which is then transferred via USB.

If I change the source code, I'd like to be able to update that without the Arduino SDK as well.

I did a little research and found a bootloader that reads stuff from SDs, but in my case I'd be glad to have a simple little config program that sends stuff out via USB.

Is there a good documentation / starting point on how to do that?

Thanks,

M.

but in my case I'd be glad to have a simple little config program that sends stuff out via USB.

That is relatively easy. The config data can then be stored in EEPROM, and read when the Arduino starts up.

Opening the serial port resets the Arduino, so any code to get config data could go in setup. When the user starts the Arduino, without the USB connected, there would be a short pause where the sketch looks for serial data. When none is found, it reads the data from EEPROM and starts loop()ing.

When the USB cable IS connected, it reads serial data from the app sending it the data, and overwrites the data in EEPROM. When the end of the data arrives, it starts loop()ing.