It looks like I am running out of memory, and I read in the forum that strings take up RAM.
Does every string take up its own RAM, or is it shared in some manner?
If I store the strings in PROGMEM, is the lowest cost in RAM to print them to extract them one character at a time and print that (if there
is no performance requirement).
The sketch used to work, but adding more debug printing seemed to stop it. Removing other strings made it work again (mostly about 200 chars of help text).
Does every string take up its own RAM, or is it shared in some manner?
Only one instance of a given string is stored. If your program uses "Five" over and over, only one copy is stored. This is pretty rare, though.
If I store the strings in PROGMEM, is the lowest cost in RAM to print them to extract them one character at a time and print that (if there
is no performance requirement).
Yes, but... Of course, that last bit is not going to happen. You have to loop to extract and print each character, and that is going to take more time than simply pulling the whole string.
The sketch used to work, but adding more debug printing seemed to stop it. Removing other strings made it work again (mostly about 200 chars of help text).
Debugging is done? Remove those strings. Put the help back.
You have to loop to extract and print each character, and that is going to take more time than simply pulling the whole string.
But if you're printing the string via a serial interface, that time is going to be swamped by the time you have to wait for the UART transmit buffer to empty.