As other have said, I don't think this will improve your memory situation but here's something to try.
You should study the examples in the eeprom library to see how to use the .put() and .get() programs.
You will need to write a separate program to load the characters into the eeprom.
Then you will load your program which uses the characters. Read them from the addresses where stored and create the custom characters.
Here's some example code for .put() and .get() with the character arrays. I have not broken this example up into the separate code for writing the eeprom to use before accessing the characters in your program.
#include <EEPROM.h>
// make some custom characters and store them
byte heart[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000
};
byte smiley[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b00000,
0b10001,
0b01110,
0b00000
};
//specify eeprom storage locations
//must be 8 bytes appart for each character
int smileyAddress = 0;
int heartAddress = 8;
void setup() {
Serial.begin(115200);
byte get_smiley[8] = {0, 0, 0, 0, 0, 0, 0, 0};
byte get_heart[8] = {0, 0, 0, 0, 0, 0, 0, 0};
EEPROM.put(smileyAddress, smiley);
EEPROM.put(heartAddress, heart);
EEPROM.get(smileyAddress, get_smiley);
EEPROM.get(heartAddress, get_heart);
//verify what you stored
Serial.println("Smiley:");
for (byte i = 0; i < 8; i++)
{
Serial.println(get_smiley[i], BIN);
}
Serial.println("Heart:");
for (byte i = 0; i < 8; i++)
{
Serial.println(get_heart[i], BIN);
}
//create custom chars from retreived arrays
}
void loop() {}