Double space issue with Cyrillic OLED font in Meshtastic
Problem
When using the Cyrillic font in Meshtastic, menu text on OLED displays becomes too wide and sometimes goes off-screen.
Spaces appear visually double-sized, causing menu items to overflow the display width.
This affects displays using both SSD1306 and SH1106 controllers.
Font file
src/graphics/fonts/OLEDDisplayFontsUA.cpp
Cause
In the font Jump Table the space character (ASCII 32) has an excessive width.
Original entry:
0xFF, 0xFF, 0x00, 0x0A // 32 = space
The last byte defines the glyph width in pixels.
0x0A (10 px) is too large for a space character.
Fix
Reduce the width to 3 pixels:
0xFF, 0xFF, 0x00, 0x03 // 32 = space
Result
normal spacing in menu text
text fits correctly on 128×64 OLED displays
Cyrillic interface works properly
Explanation
Each Jump Table entry has the format:
offset_hi
offset_lo
glyph_size
glyph_width
The last byte (glyph_width) determines how many pixels the character occupies on the screen.
Double space issue with Cyrillic OLED font in Meshtastic
Problem
When using the Cyrillic font in Meshtastic, menu text on OLED displays becomes too wide and sometimes goes off-screen.
Spaces appear visually double-sized, causing menu items to overflow the display width.
This affects displays using both SSD1306 and SH1106 controllers.
Font file
src/graphics/fonts/OLEDDisplayFontsUA.cpp
Cause
In the font Jump Table the space character (ASCII 32) has an excessive width.
Original entry:
0xFF, 0xFF, 0x00, 0x0A // 32 = space
The last byte defines the glyph width in pixels.
0x0A (10 px) is too large for a space character.
Fix
Reduce the width to 3 pixels:
0xFF, 0xFF, 0x00, 0x03 // 32 = space
Result
normal spacing in menu text
text fits correctly on 128×64 OLED displays
Cyrillic interface works properly
Explanation
Each Jump Table entry has the format:
offset_hi
offset_lo
glyph_size
glyph_width
The last byte (glyph_width) determines how many pixels the character occupies on the screen.