0

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!

asked May 9, 2015 at 8:50
2
  • The character is stored as 16x16 dot matrix, 1 character=1 B... why don't you change the type of the character. sincer is 1 B, I assume is char/unsigned char. But you can reduce the size of the variable using bitfields. struct { type [member_name] : width ; }; Commented May 9, 2015 at 11:02
  • 1
    @23ars Yes I already use unsigned char[16*16/8] to storage a character dot matrix. Commented May 10, 2015 at 3:46

2 Answers 2

1
  1. Use a different Arduino or Arduino-clone with more flash memory

  2. Store the character bitmaps in external EEPROM (example)

answered May 9, 2015 at 10:46
4
  • Er, how to clone with more flash memory? I can't find the solution in your first link. Commented 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. Commented May 10, 2015 at 11:34
  • 1
    Option 3: Add an external SPI SRAM chip to store the incoming dot-matrix data - you can get them commonly up to 128KiB in size. Commented 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) Commented May 14, 2015 at 9:06
0

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.

http://www.hobbytronics.co.uk/eeprom-page-write

answered May 14, 2015 at 12:39

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.