Maybe you didn't understand what I was asking.
ASCII p ==> 01110000
ASCII q ==> 01110001
ASCII P ==> 01010000
ASCII Q ==> 01010001
These examples both tell us that a '0' is being changed to a '1'
How about seeing if a '1' gets changed to a '0' under the same conditions?
In other words if you try to display "Set qH in CaRx" does it display "Set rH in CaRx"?
As I said it only started misbehaving when the sketch got within 1K of max.
This is probably significant.
That is the only problem I've noticed as everything else seems to be working fine.
It's easy to spot an error on the display. How easy would it be to spot an error that occurs elsewhere in your controller program?
Don