esphome / firmware

Holds firmware configuration files for projects that the ESPHome team provides.
https://esphome.io/projects
Apache License 2.0
126 stars 89 forks source link

ESP32-S3-Box-3 cannot show Cyrillic characters on screen #185

Closed kyutov closed 1 week ago

kyutov commented 2 months ago

I have ESP32-S3-Box-3 with the latest firmware build with ESPHome 2024.2.2.

I have configured my Assist Pipeline with Bulgarian language and I have enabled the "Display conversation" option on the S3-Box.

Here are the logs from the S3-Box when I start the conversation and receive response:

**[15:19:14][D][esp_adf.microphone:285]: Microphone stopped [15:19:14][D][voice_assistant:416]: State changed from STOPPING_MICROPHONE to AWAITING_RESPONSE [15:19:14][D][voice_assistant:523]: Event Type: 4 [15:19:14][D][voice_assistant:551]: Speech recognised as: "Светни лампите." [15:19:14][D][text_sensor:064]: 'text_request': Sending state 'Светни лампите.' [15:19:15][W][component:214]: Component voice_assistant took a long time for an operation (0.24 s). [15:19:15][W][component:215]: Components should block for at most 20-30ms. [15:19:15][D][voice_assistant:523]: Event Type: 5 [15:19:15][D][voice_assistant:556]: Intent started [15:19:15][D][voice_assistant:523]: Event Type: 6 [15:19:15][D][voice_assistant:523]: Event Type: 7

[15:19:15][D][text_sensor:064]: 'text_response': Sending state 'Включих лампите' [15:19:15][D][voice_assistant:523]: Event Type: 8**

and here is how the screen looks like:

Untitled

kyutov commented 2 months ago

The problem is caused by the font "Figtree", which is used to display the text on the screen. As it can be seen in the image below, this font doesn't support the majority of the allowed characters of the firmware. I will try to fix this and prepare a PR. As a temporary solution if someone is facing the same problem just manually replace the used font in the firmware.

Screenshot 2024-04-17 at 18 20 24
kyutov commented 2 months ago

I have prepared the following PR #188 with can help solving the issue.

kyutov commented 1 week ago

The PR mentioned above is unnecessary. Here is how the font can be changes:

You can override the fonts in your adopted yaml using !extend Example:

font:
  - id: !extend font_request
    file:
      family: Roboto

You are not even restricted to gfonts, you can completely override the file variable to whatever you want as long as it is valid