Skip to content
Mikkel102454 edited this page Oct 6, 2026 · 1 revision

Fonts

The checked-in device font registry contains helvetica in regular and bold weights. Send that family explicitly in every text span; the parser and some library defaults still name sans, which is not bundled.

To add fonts, place TrueType files in Arduino/src/font/assets/ using one of these names:

  • Family-Regular.ttf
  • Family-Bold.ttf
  • Family.ttf for a regular-only family

The JSON family is the lowercase filename family. News-Sans-Bold.ttf becomes "family": "news-sans", "weight": "bold".

PlatformIO runs scripts/platformio_fonts.py before building, and the emulator runs the same generator during CMake configuration. Rebuild each target after changing font assets. Fonts are embedded in firmware flash; adding large fonts increases firmware size. Include redistribution licenses alongside new assets.

If a family has only a regular file, the renderer can synthesize bold. Font size must be 6–96 pixels. Glyph coverage, metrics, and line breaks depend on the actual TTF, so changing a font can change a layout.

The PHP and Java libraries also provide raster-text helpers which emit image commands using server-side font files. Those paths use different rendering engines and need not match device text pixel for pixel.

Implementation references

Clone this wiki locally