I need to display some dynamic Chinese characters to 12864 using Arduino. What to show is transported from my web server. The character is stored as a 16x16 dot matrix, needing 16*16/8=32 byte. And I need to show some sentences, which contains more than 100 Chinese characters.
The problem is that I can't storage all the dot matrix data in Arduino because it has too small memory.
- If I get the dot matrix data from web server, I need to have 100*32B memory, but SPAM with EEPROM have only 3k. So that failed.
- If I save the dot matrix "library" in the Flash memory, I need 3500*32B (There are 3500 Chinese frequent-used characters), but there is only 32K Flash. Saving the "library" means that I should storage the dot matrix data of all the 3500 chars in Flash, then the server only need to send the Unicode of characters, and I can get the matrix of the char.
Any help is appreciated!
2 Answers 2
Use a different Arduino or Arduino-clone with more flash memory
Store the character bitmaps in external EEPROM (example)
-
Er, how to clone with more flash memory? I can't find the solution in your first link.ch271828n– ch271828n2015年05月10日 03:43:20 +00:00Commented May 10, 2015 at 3:43
-
@Turtle: I wasn't clear enough, I meant a clone of an Arduino design not manufactured by the Italian company of that name. I'll revise the answer to clarify.RedGrittyBrick– RedGrittyBrick2015年05月10日 11:34:51 +00:00Commented May 10, 2015 at 11:34
-
1Option 3: Add an external SPI SRAM chip to store the incoming dot-matrix data - you can get them commonly up to 128KiB in size.Majenko– Majenko2015年05月10日 13:06:44 +00:00Commented May 10, 2015 at 13:06
-
@Majenko er, could you please tell me how to search for it? And what's the name of these chips?( for example, 24lc256)ch271828n– ch271828n2015年05月14日 09:06:08 +00:00Commented May 14, 2015 at 9:06
The basic EEPROM write, each 1 byte, as is mentioned in the above answer.
http://www.hobbytronics.co.uk/arduino-external-eeprom
The PAGE WRITE which is suitable for this situation. One can easily read 32 bytes for a dot matrix.
unsigned char[16*16/8]
to storage a character dot matrix.