RA8875 – Custom Font PDF


Here it is ūüôā

RA8875 Custom Font

About atomsoft

Starting a small company. Trying to build it from ground up. Only 2 employees so far. Nothing serious yet but soon!

21 responses to “RA8875 – Custom Font PDF”

  1. Bill Blondin says :

    Awesome! One question – how do you specify the x-y position to draw the font at?

    • atomsoft says :

      Its in the lcd code .. thats normal stuff…

      ////////////////Text write position
      void FontWrite_Position(uint X,uint Y)
          unsigned char temp;


  2. Bill Blondin says :

    I must be thick… If I want to render the letter “A” in my custom font (assuming I already created the bitmap for “A” in my C code) at position 221x 115y, what would the code sequence look like?

    Load_Char(0, myCustomAArray);
    FontWrite_Position(221, 115);
    // how do I tell it to actually draw the loaded font charter here?

  3. atomsoft says :

    Hah i guess i should add that to the PDF… ASCII is simple enough most drawable characters are from 32 to 126 aka SPACE to ~ …

    To make it simple you can draw the letter A (capital) in its position which is 65.


    Write_Dir(0x40,0x80);//Set the character mode
    Write_Dir(0x21,0x80);//Select the internal CGRAM


    If you are just loading a symbol such as the BATTERY symbol then keeping it in place doesnt matter. So you can start at 0 like:


    Write_Dir(0x40,0x80);//Set the character mode
    Write_Dir(0x21,0x80);//Select the internal CGRAM


  4. Bill Blondin says :

    You rock! This is exactly what I was looking for.

    Last one – font size/scale. By default, they’re 8×16. What if I wanted 2x, 3x, etc? I thinks there’s another LCD command for this, or would/could we define a larger custom font array?

    • atomsoft says :

      Thats what i plan to look into next. I have some 16×16 fonts i would love to try. There are only 255 spots in the font available so larger fonts will be shortened to less characters.

      I updated the PDF and im glad this helped!

  5. Bill Blondin says :

    I’m guessing that font scaling would probably not look so great, and would probably be better of just drawing a pre-scaled bitmap for large sizes.

  6. Bill Blondin says :

    Was looking at your git code again, and I don’t see where you actually draw your buttons on the LCD. I see the Init code that sets position, but don’t see where you actually draw them? Are you just rendering one big static BMP and then mapping touch locations that correspond with areas in the BMP?

    • atomsoft says :

      I actually do both. The volume and channels are drawn individually as they have 3 states. The other buttons are 1 large image and individual sections are drawn based on touch. Check the ta8875.c file for openasi.. asi is my own custom file type

  7. Bill Blondin says :

    The .asi files are on the SD card wired to the mcu?

  8. Bill Blondin says :

    Why do you need to do an SPI__WRITE(0) before each row of 16-bit color data? I don’t see that in the spec?

  9. Marcos Raimundo says :

    how can I apply this in Arduino? per exemple

    • atomsoft says :

      I havent used this with Arduino, sorry. But it shouldnt be to hard to implement it. The code should be almost copy and paste-able. Do you have arduino code made for the LCD already? I can add my code to it for you.

  10. Hassan Asad says :

    Hi Jason, Very nice.

    Two questions:

    1) Where did you order this TFT from?
    2) How many pins does it consume to run properly (40, 50) ?

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: