Arduino Mega - Possible to push configuration file?

Hello,
I have a working prototype of a project, and would potentially like to sell it as a kit.
I made a shield on an Arduino Mega that drives stepper motors. When the person who receives the kit puts the product together, they would need to do a calibration process.

At the moment, I have a table with offsets which is hardcoded in a class, which I change by hand when working on the product myself.
The backup plan would be for users to also do that themselves, and then maybe give them a script that uses the command line utility to push it.
I would ideally like to have something more elegant where I would only provide a configuration file (.json or otherwise) and an application to push only the file to the Arduino, leaving the sketch alone.
At runtime, the sketch would read the .json configuration file.

Is something like this possible without adding an additional component?

Thank you
Phil

Yes but you need to consider how the information is going to get into the Arduino. Serial, already there via USB, would be great but you will need to write software for the computer(s) saving the data. Or enter it via the serial terminal using a software terminal emulator on the user's computer.

gilshultz:
Yes but you need to consider how the information is going to get into the Arduino. Serial, already there via USB, would be great but you will need to write software for the computer(s) saving the data. Or enter it via the serial terminal using a software terminal emulator on the user's computer.

That could work!
So then I code a desktop application that will connect to the Arduino by serial link, and then on the Arduino end I received the data and store it... where? EEPROM would be the best place I guess?
I need to store about 50 integers.

Alright, found a post about somebody who made a C# desktop application to communicate to the Arduino through serial, will give that a shot and let you know how that works out.

Once I do figure that part out, I guess the best place to save the actual data would be the EEPROM?

The only two places where you can save it is RAM and EEPROM. But your end user will loose the configuration if it's stored in RAM and the device is reset. So EEPROM it is :wink:

Read up on EEPROM.put() and EEPROM.get().