Convert OTF/TTF Fonts to BDF for CircuitPython
last updated: 2020-01-28
After trying the official tutorial for creating a new BDF font for use with CircuitPython, I found a much easier way than dealing with FontForge. FontForge might be a great tool for other purposes, but for this... not so much.
In my testing I used Ubuntu via Windows Subsystem for Linux. Other systems might be different.
otf2bdf tool using your package manager:
sudo apt install otf2bdf
Convert font like so:
otf2bdf [fontname].(ttf|otf) -r 100 -p [point-size] -o [fontname]-[point-size].bdf
For my PyGamer, I was trying to make a custom font
to use with PyBadger and found that 36 was
the best point size to fit my name in the white box where your name displays. You may need to tweak this depending on
the length of your name and the font you use. Be sure to set
1. This will display
your text at the native resolution of the font, rather than scaling it up. If you use a
than 1, you will get jagged edges as the font glyphs are bitmaps and simply scaled up, not re-rendered at the larger size.
Copy your newly minted
.bdf over to your
CIRCUITPY device in the root directory. If you
are using the example PyBadger script, you will want something like this:
from adafruit_pybadger import PyBadger badge = PyBadger() badge.show_badge( hello_scale=2, my_name_is_scale=2, name_string="Mikey", name_scale=1, name_font="Chomsky-36.bdf", ) while True: ...