Font creation - questions

Description

I want to create my own fonts.

What MCU/Processor/Board and compiler are you using?

STM32F769NI / STM32F769I-DISCO / Atollic TrueStudio

What do you want to achieve?

I didn’t find the answer in the forum. The link was also not the answer.
I have two questions for fonts:

  1. kisvegabor when you preparing the lv_font_roboto_28 font, did you create special characters such as LV_SYMBOL_LEFT yourself and add it to the lv_font_roboto_28.c file? Definition of LV_SYMBOL_LEFT: “\xef\x81\x94” according to UTF-8 conversion tool points to Hex code point F053 and so private use area (in FontForge is the same).
    When I converted the font calibri.ttf (Online TTF to C Array Unicode Font Converter), adding the special characters ĄąŚśŻżŹźĆćĘęŃńÓóŁł§±µ and setting the font pol_znak_28.c (LV_FONT_DECLARE(pol_znak_28); ) as basic in my styles I lost special characters like LV_SYMBOL_LEFT.
    with lv_font_roboto_28.c
    klaw0
    with my font
    klaw1
    I assume that all symbols must be declared in the font file and special characters (e.g. two or three bytes) must be declared in accordance with the definition #define LV_SYMBOL_LEFT “\ xef \ x81 \ x93” which corresponds to the file lv_font_roboto_28.c with the character /* U+F053""*/ (line 2464). After such a declaration, we can use the symbol, e.g. lv_label_set_text (btnStartLabel, LV_SYMBOL_OK); - do i understand correctly?
  2. How to add special characters to a font file already created (e.g. µ to the lv_font_roboto_28.c file) or a new file like /* U+F053""*/ ? When I do it like in the picture below,

    the characters are added to the font. He refers to them through declarations, e.g. for µ: #define MY_SYM_MICRO “\xC2\xB5”. But reading the pressed character on the keyboard “µ/m” reads the additional symbol µ/m”.
const char* ta_txt = lv_label_get_text(ext_ta->label);
const char* txt = lv_btnm_get_active_btn_text(kb);

Where can the problem be?

The symbols are added to the font by using the online font converter, and adding a second font to the list of fonts to be converted. The result is a single file that contains both the symbols and regular letters.

https://docs.littlevgl.com/en/html/overview/font.html#add-new-symbols

Thank you for your response. Earlier I read the information from the link but probably not entirely with understanding. After your reply, I read it again, and in FontForge I looked at the font FontAwesome.ttf and everything became clear.

Linking to updated docs for posterity’s sake: Font (lv_font) - LVGL 9.4 documentation

Hi,

Regarding to the subject, I also wanna create my own fonts.
I’d like to make a display, where the user will choose the content of the screen, including the used fonts. I’d like to store the custom content and font in the external flash at runtime. Is it possible to make fonts in binary format according to the user’s needs? I would create an app which the user can select the contents with, and this app would generate the binary font.

Thanks