http://paulbourke.net/dataformats/hershey/ The Hershey Fonts are simple enough to use inside the AVR. Each character has no more than 32 points, which is manageable on the small CPUs. The paths are all relative to the origin (lower left) of the character, and are connected, unless the value is (-1,1), in which case it should jump to the next point. The path for the character is terminated with a relative value of (0,0). Here's a data structure for the number 1: typedef struct { int8_t x, y; } path_t; static const PROGMEM path_t digits[][32] = { [1] = { { 6,17}, { 8,18}, {11,21}, {11, 0}, }, };