Trying to reduce dynamic memory use

You've got a load of strings in your prints that would benefit from the F() macro too.
If you've got a memory card, why not store the indices on that?