Skip to content

Text & Font

The Thumby screen is small at its 0.42" size, but you can still add perfectly readable text for game dialog, menus, rules, etc - you just won't be able to comfortably fit novels of text.


Printing Text

Text is important for communication, scores, and displaying the title of a game.

thumby.display.drawText(string, x, y, color) | draws string in color at x and y with font specified by thumby.display.setFont(...). Returns None, all parameters required.

  • string
  • type: str
  • values: 128 ASCII characters
  • x
  • type: int
  • values: 0 (left) ~ 71 (right)
  • y
  • type: int
  • values: 0 (top) ~ 39 (bottom)
  • color
  • type: int
  • values: 0 or 1 -- where 0 is black or an unlit pixel, and 1 is white or a lit pixel

Setting Font

You can use any font you would like with the Thumby. The default font on the Thumby is 5×7, but there are also 8×8 and 3×5 fonts included with the Thumby software under the lib/ folder.

thumby.display.setFont(fontFilePath, width, height, space) | sets the fontFilePath pointing to binary font file with character width, height, and space between characters for use by thumby.display.drawText(...). Returns None, all parameters required.

  • fontFilePath
  • type: string
  • values: 128 ASCII character string up to 256 characters long ('/' separated)
  • width:
  • type: int
  • values: 0 ~ integer max
  • height:
  • type: int
  • values: 0 ~ integer max
  • space:
  • type: int
  • values: 0 ~ integer max

Combined Example

This example uses both the drawText() and setFont() functions to show the appearance of the different sized fonts:

scrolling background
5×7, 8×8, and 3×5 font text swapping back and forth on display

import thumby

thumby.display.setFPS(1)

while(1):
    thumby.display.fill(0) # Fill canvas to black
    thumby.display.setFont("/lib/font5x7.bin", 5, 7, 1)
    thumby.display.drawText("Font5x7", 5, 16, 1)
    thumby.display.update()

    thumby.display.fill(0)
    thumby.display.setFont("/lib/font8x8.bin", 8, 8, 1)
    thumby.display.drawText("Font8x8", 5, 16, 1)
    thumby.display.update()

    thumby.display.fill(0)
    thumby.display.setFont("/lib/font3x5.bin", 3, 5, 1)
    thumby.display.drawText("Font3x5", 5, 16, 1)
    thumby.display.update()