A way to generate, store and retrieve complex stepper motor curves

I have around six stepper motors that I am controlling with Arduinos. Thes control the actions of an automaton and so need to follow a curve of steps (think an unravelled cam in an old school wooden automaton).

What is the best way to store and retrieve these data curves such that they are easy to test and modify?

My first thought would be using text files to store a list of values so I could plot beziers and export the data. However Arduino does not have an easily accessible storage (I don't want to add an SD card) for text.

My second thought was to plot the cures and fit a polynomial and use that but the iteration time for that could be quite slow ....

Does anyone here have any suggestions?

It rather depends how much data you need. As it's apparently static (at least for each test) you can store it in progmem which has the benefit of having a lot more space than SRAM. The downside is that each time you change the table, you have to upload the sketch to the arduino again. In this scenario, consider putting the bezier data in a separate file and include it in your main sketch, just for ease of reading.

If you can fit your data in SRAM, you could write something on the PC that sends it over serial. Then you just have to change the data on the PC and re-run the sketch. The disadvantage would be that the arduino will have to be tethered to the PC.

I don't want to add an SD card

Why not? They are relatively cheap, and are the easiest way to share text between an Arduino and a PC.

My second thought was to plot the cures and fit a polynomial and use that but the iteration time for that could be quite slow

If you are using AccellStepper to move 6 steppers at once, most of the time the Arduino is doing nothing more than waiting fro the steppers to get where they are going. You can use that time to be computing the next position(s).

Yeah the data is static, just some preset movements e.g. six 'set-piece' movements that the automaton does e.g. 'surprised reaction', 'thoughtful pose' etc.

When the final Arduino is running, it will not be tethered to a PC so maybe just having it included in the program is best.

Also iteration time in this case is my own iteration time in the larger workflow e.g. how long it will take me to generate a new curve, test and iterate.

Also iteration time in this case is my own iteration time in the larger workflow e.g. how long it will take me to generate a new curve, test and iterate.

Ah. That's completely outside the Arduino's control, then. 8)

How much data is involved in one of these movements? What data is involved?