Created
April 8, 2021 07:41
-
-
Save graeme-winter/ff08123ceae76399791413f2564eecaa to your computer and use it in GitHub Desktop.
Hello, world! on a Pimoroni pico scroll, using show_bitmap_1d() method (includes full character set definition)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# generate 5x7 font bitmap as 5 bytes / char | |
# | |
# (C) Graeme Winter, 2021 | |
# | |
# Encoding: each column of 7 bits is encoded top down with LSB as top -> | |
# horizontal line across the top is 0x01 0x01 0x01 0x01 0x01, vertical line | |
# on left side of box only would be 0x7f 0x00 0x00 0x00 0x00. | |
__bitmap = { | |
0x0: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x1: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x2: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x3: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x4: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x5: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x6: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x7: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x8: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x9: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0xA: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0xB: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0xC: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0xD: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0xE: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0xF: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x10: (0x7F, 0x0, 0x0, 0x0, 0x0), | |
0x11: (0x7F, 0x7F, 0x0, 0x0, 0x0), | |
0x12: (0x7F, 0x7F, 0x7F, 0x0, 0x0), | |
0x13: (0x7F, 0x7F, 0x7F, 0x7F, 0x0), | |
0x14: (0x7F, 0x7F, 0x7F, 0x7F, 0x7F), | |
0x15: (0x0, 0x7F, 0x7F, 0x7F, 0x7F), | |
0x16: (0x0, 0x0, 0x7F, 0x7F, 0x7F), | |
0x17: (0x0, 0x0, 0x0, 0x7F, 0x7F), | |
0x18: (0x0, 0x0, 0x0, 0x0, 0x7F), | |
0x19: (0x3, 0x7, 0x7E, 0x20, 0x1E), | |
0x1A: (0x60, 0x60, 0x6, 0x9, 0x9), | |
0x1B: (0x60, 0x6F, 0xA, 0xA, 0x8), | |
0x1C: (0x10, 0x18, 0x1C, 0x18, 0x10), | |
0x1D: (0x0, 0x3E, 0x1C, 0x8, 0x0), | |
0x1E: (0x0, 0x8, 0x1C, 0x3E, 0x0), | |
0x1F: (0x4, 0xC, 0x1C, 0xC, 0x4), | |
0x20: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0x21: (0x0, 0x0, 0x7D, 0x0, 0x0), | |
0x22: (0x0, 0x70, 0x0, 0x70, 0x0), | |
0x23: (0x14, 0x7F, 0x14, 0x7F, 0x14), | |
0x24: (0x12, 0x2A, 0x7F, 0x2A, 0x24), | |
0x25: (0x62, 0x64, 0x8, 0x13, 0x23), | |
0x26: (0x36, 0x49, 0x55, 0x22, 0x5), | |
0x27: (0x0, 0x50, 0x60, 0x0, 0x0), | |
0x28: (0x0, 0x1C, 0x22, 0x41, 0x0), | |
0x29: (0x0, 0x41, 0x22, 0x1C, 0x0), | |
0x2A: (0x8, 0x2A, 0x1C, 0x2A, 0x8), | |
0x2B: (0x8, 0x8, 0x3E, 0x8, 0x8), | |
0x2C: (0x0, 0x5, 0x6, 0x0, 0x0), | |
0x2D: (0x8, 0x8, 0x8, 0x8, 0x8), | |
0x2E: (0x0, 0x3, 0x3, 0x0, 0x0), | |
0x2F: (0x2, 0x4, 0x8, 0x10, 0x20), | |
0x30: (0x3E, 0x45, 0x49, 0x51, 0x3E), | |
0x31: (0x0, 0x21, 0x7F, 0x1, 0x0), | |
0x32: (0x21, 0x43, 0x45, 0x49, 0x31), | |
0x33: (0x42, 0x41, 0x51, 0x69, 0x46), | |
0x34: (0xC, 0x14, 0x24, 0x7F, 0x4), | |
0x35: (0x72, 0x51, 0x51, 0x51, 0x4E), | |
0x36: (0x1E, 0x29, 0x49, 0x49, 0x6), | |
0x37: (0x40, 0x47, 0x48, 0x50, 0x60), | |
0x38: (0x36, 0x49, 0x49, 0x49, 0x36), | |
0x39: (0x30, 0x49, 0x49, 0x4A, 0x3C), | |
0x3A: (0x0, 0x36, 0x36, 0x0, 0x0), | |
0x3B: (0x0, 0x35, 0x36, 0x0, 0x0), | |
0x3C: (0x0, 0x8, 0x14, 0x22, 0x41), | |
0x3D: (0x14, 0x14, 0x14, 0x14, 0x14), | |
0x3E: (0x41, 0x22, 0x14, 0x8, 0x0), | |
0x3F: (0x20, 0x40, 0x45, 0x48, 0x30), | |
0x40: (0x26, 0x49, 0x4F, 0x41, 0x3E), | |
0x41: (0x3F, 0x44, 0x44, 0x44, 0x3F), | |
0x42: (0x7F, 0x49, 0x49, 0x49, 0x36), | |
0x43: (0x3E, 0x41, 0x41, 0x41, 0x22), | |
0x44: (0x7F, 0x41, 0x41, 0x22, 0x1C), | |
0x45: (0x7F, 0x49, 0x49, 0x49, 0x41), | |
0x46: (0x7F, 0x48, 0x48, 0x40, 0x40), | |
0x47: (0x3E, 0x41, 0x41, 0x45, 0x26), | |
0x48: (0x7F, 0x8, 0x8, 0x8, 0x7F), | |
0x49: (0x0, 0x41, 0x7F, 0x41, 0x0), | |
0x4A: (0x2, 0x1, 0x41, 0x7E, 0x40), | |
0x4B: (0x7F, 0x8, 0x14, 0x22, 0x41), | |
0x4C: (0x7F, 0x1, 0x1, 0x1, 0x1), | |
0x4D: (0x7F, 0x20, 0x10, 0x20, 0x7F), | |
0x4E: (0x7F, 0x10, 0x8, 0x4, 0x7F), | |
0x4F: (0x3E, 0x41, 0x41, 0x41, 0x3E), | |
0x50: (0x7F, 0x48, 0x48, 0x48, 0x30), | |
0x51: (0x3E, 0x41, 0x45, 0x42, 0x3D), | |
0x52: (0x7F, 0x48, 0x4C, 0x4A, 0x31), | |
0x53: (0x31, 0x49, 0x49, 0x49, 0x46), | |
0x54: (0x40, 0x40, 0x7F, 0x40, 0x40), | |
0x55: (0x7E, 0x1, 0x1, 0x1, 0x7E), | |
0x56: (0x7C, 0x2, 0x1, 0x2, 0x7C), | |
0x57: (0x7F, 0x2, 0xC, 0x2, 0x7F), | |
0x58: (0x63, 0x14, 0x8, 0x14, 0x63), | |
0x59: (0x60, 0x10, 0xF, 0x10, 0x60), | |
0x5A: (0x43, 0x45, 0x49, 0x51, 0x61), | |
0x5B: (0x0, 0x0, 0x7F, 0x41, 0x41), | |
0x5C: (0x20, 0x10, 0x8, 0x4, 0x2), | |
0x5D: (0x41, 0x41, 0x7F, 0x0, 0x0), | |
0x5E: (0x10, 0x20, 0x40, 0x20, 0x10), | |
0x5F: (0x1, 0x1, 0x1, 0x1, 0x1), | |
0x60: (0x0, 0x40, 0x20, 0x10, 0x0), | |
0x61: (0x2, 0x15, 0x15, 0x15, 0xF), | |
0x62: (0x7F, 0x9, 0x11, 0x11, 0xE), | |
0x63: (0xE, 0x11, 0x11, 0x11, 0x2), | |
0x64: (0xE, 0x11, 0x11, 0x9, 0x7F), | |
0x65: (0xE, 0x15, 0x15, 0x15, 0xC), | |
0x66: (0x8, 0x3F, 0x48, 0x40, 0x20), | |
0x67: (0x8, 0x14, 0x15, 0x15, 0x1E), | |
0x68: (0x7F, 0x8, 0x10, 0x10, 0xF), | |
0x69: (0x0, 0x11, 0x5F, 0x1, 0x0), | |
0x6A: (0x2, 0x1, 0x11, 0x5E, 0x0), | |
0x6B: (0x0, 0x7F, 0x4, 0xA, 0x11), | |
0x6C: (0x0, 0x41, 0x7F, 0x1, 0x0), | |
0x6D: (0x1F, 0x10, 0xC, 0x10, 0xF), | |
0x6E: (0x1F, 0x8, 0x10, 0x10, 0xF), | |
0x6F: (0xE, 0x11, 0x11, 0x11, 0xE), | |
0x70: (0x1F, 0x14, 0x14, 0x14, 0x8), | |
0x71: (0x8, 0x14, 0x14, 0xC, 0x1F), | |
0x72: (0x1F, 0x8, 0x10, 0x10, 0x8), | |
0x73: (0x9, 0x15, 0x15, 0x15, 0x2), | |
0x74: (0x10, 0x7E, 0x11, 0x1, 0x2), | |
0x75: (0x1E, 0x1, 0x1, 0x2, 0x1F), | |
0x76: (0x1C, 0x2, 0x1, 0x2, 0x1C), | |
0x77: (0x1E, 0x1, 0x6, 0x1, 0x1E), | |
0x78: (0x11, 0xA, 0x4, 0xA, 0x11), | |
0x79: (0x18, 0x5, 0x5, 0x5, 0x1E), | |
0x7A: (0x11, 0x13, 0x15, 0x19, 0x11), | |
0x7B: (0x0, 0x8, 0x36, 0x41, 0x0), | |
0x7C: (0x0, 0x0, 0x7F, 0x0, 0x0), | |
0x7D: (0x0, 0x41, 0x36, 0x8, 0x0), | |
0x7E: (0x8, 0x8, 0x2A, 0x1C, 0x8), | |
0x7F: (0x8, 0x1C, 0x2A, 0x8, 0x8), | |
0x80: (0x7, 0x4A, 0x12, 0x4A, 0x7), | |
0x81: (0x7, 0xA, 0x52, 0xA, 0x7), | |
0x82: (0x7, 0x2A, 0x52, 0x2A, 0x7), | |
0x83: (0x2, 0x15, 0x35, 0x55, 0xF), | |
0x84: (0x2, 0x15, 0x55, 0x15, 0xF), | |
0x85: (0x7F, 0x7F, 0x49, 0x49, 0x49), | |
0x86: (0x5E, 0x21, 0x21, 0x21, 0x5E), | |
0x87: (0x6, 0x29, 0x9, 0x29, 0x6), | |
0x88: (0x1D, 0x26, 0x2A, 0x32, 0x5C), | |
0x89: (0xC, 0x13, 0x1E, 0x32, 0xC), | |
0x8A: (0x5E, 0x1, 0x1, 0x1, 0x5E), | |
0x8B: (0xE, 0x21, 0x1, 0x22, 0xF), | |
0x8C: (0x54, 0x34, 0x1F, 0x34, 0x54), | |
0x8D: (0x15, 0x16, 0x1C, 0x34, 0x54), | |
0x8E: (0xC, 0x10, 0xC, 0x2, 0xC), | |
0x8F: (0x29, 0x55, 0x55, 0x55, 0x4A), | |
0x90: (0x3F, 0x48, 0x7F, 0x48, 0x48), | |
0x91: (0x16, 0x15, 0xE, 0x15, 0xD), | |
0x92: (0x9, 0x3F, 0x49, 0x49, 0x21), | |
0x93: (0x7F, 0x50, 0x54, 0x2F, 0x5), | |
0x94: (0x1C, 0x3E, 0x3E, 0x3E, 0x1C), | |
0x95: (0x1C, 0x22, 0x22, 0x22, 0x1C), | |
0x96: (0x8, 0x1C, 0x3E, 0x1C, 0x8), | |
0x97: (0x8, 0x14, 0x22, 0x14, 0x8), | |
0x98: (0x0, 0x0, 0x77, 0x0, 0x0), | |
0x99: (0x38, 0x45, 0x46, 0x44, 0x44), | |
0x9A: (0x3, 0x5, 0x9, 0x11, 0x3F), | |
0x9B: (0x1, 0x11, 0x29, 0x45, 0x1), | |
0x9C: (0x1, 0x45, 0x29, 0x11, 0x1), | |
0x9D: (0x4, 0xE, 0x15, 0x4, 0x7C), | |
0x9E: (0x10, 0x20, 0x7F, 0x20, 0x10), | |
0x9F: (0x4, 0x2, 0x7F, 0x2, 0x4), | |
0xA0: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0xA1: (0x7, 0x5, 0x7, 0x0, 0x0), | |
0xA2: (0x0, 0x0, 0x78, 0x40, 0x40), | |
0xA3: (0x1, 0x1, 0xF, 0x0, 0x0), | |
0xA4: (0x4, 0x2, 0x1, 0x0, 0x0), | |
0xA5: (0x0, 0x6, 0x6, 0x0, 0x0), | |
0xA6: (0x50, 0x50, 0x51, 0x52, 0x7C), | |
0xA7: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0xA8: (0x10, 0x11, 0x16, 0x14, 0x18), | |
0xA9: (0x2, 0x4, 0xF, 0x10, 0x0), | |
0xAA: (0xC, 0x8, 0x19, 0xE, 0x0), | |
0xAB: (0x9, 0xA, 0xC, 0x1F, 0x8), | |
0xAC: (0x8, 0x1F, 0x8, 0xA, 0xC), | |
0xAD: (0x1, 0x9, 0x9, 0xF, 0x1), | |
0xAE: (0x15, 0x15, 0x15, 0x1F, 0x0), | |
0xAF: (0xC, 0x0, 0xD, 0x1, 0xE), | |
0xB0: (0x8, 0x8, 0x8, 0x8, 0x8), | |
0xB1: (0x40, 0x41, 0x5E, 0x48, 0x70), | |
0xB2: (0x2, 0x4, 0xF, 0x10, 0x20), | |
0xB3: (0x38, 0x20, 0x61, 0x22, 0x3C), | |
0xB4: (0x21, 0x21, 0x3F, 0x21, 0x21), | |
0xB5: (0x22, 0x24, 0x28, 0x7F, 0x20), | |
0xB6: (0x21, 0x7E, 0x20, 0x21, 0x3E), | |
0xB7: (0x28, 0x28, 0x7F, 0x28, 0x28), | |
0xB8: (0x10, 0x61, 0x41, 0x42, 0x7C), | |
0xB9: (0x10, 0x60, 0x21, 0x3E, 0x20), | |
0xBA: (0x41, 0x41, 0x41, 0x41, 0x7F), | |
0xBB: (0x20, 0x79, 0x22, 0x7C, 0x20), | |
0xBC: (0x29, 0x29, 0x1, 0x2, 0x1C), | |
0xBD: (0x21, 0x22, 0x24, 0x2A, 0x31), | |
0xBE: (0x20, 0x7E, 0x21, 0x29, 0x31), | |
0xBF: (0x60, 0x11, 0x1, 0x2, 0x3C), | |
0xC0: (0x8, 0x31, 0x29, 0x26, 0x3C), | |
0xC1: (0x28, 0x29, 0x3E, 0x48, 0x8), | |
0xC2: (0x38, 0x0, 0x39, 0x2, 0x3C), | |
0xC3: (0x10, 0x51, 0x5E, 0x50, 0x10), | |
0xC4: (0x0, 0x7F, 0x8, 0x4, 0x0), | |
0xC5: (0x11, 0x12, 0x7C, 0x10, 0x10), | |
0xC6: (0x1, 0x21, 0x21, 0x21, 0x1), | |
0xC7: (0x21, 0x2A, 0x24, 0x2A, 0x30), | |
0xC8: (0x22, 0x24, 0x6F, 0x34, 0x22), | |
0xC9: (0x0, 0x1, 0x2, 0x7C, 0x0), | |
0xCA: (0xF, 0x0, 0x20, 0x10, 0xF), | |
0xCB: (0x7E, 0x11, 0x11, 0x11, 0x11), | |
0xCC: (0x20, 0x21, 0x21, 0x22, 0x3C), | |
0xCD: (0x10, 0x20, 0x10, 0x8, 0x6), | |
0xCE: (0x26, 0x20, 0x7F, 0x20, 0x26), | |
0xCF: (0x20, 0x24, 0x22, 0x25, 0x38), | |
0xD0: (0x0, 0x2A, 0x2A, 0x2A, 0x1), | |
0xD1: (0xE, 0x12, 0x22, 0x2, 0x7), | |
0xD2: (0x1, 0xA, 0x4, 0xA, 0x30), | |
0xD3: (0x20, 0x3E, 0x29, 0x29, 0x29), | |
0xD4: (0x10, 0x7F, 0x10, 0x14, 0x18), | |
0xD5: (0x1, 0x21, 0x21, 0x3F, 0x1), | |
0xD6: (0x29, 0x29, 0x29, 0x29, 0x3F), | |
0xD7: (0x10, 0x50, 0x51, 0x52, 0x1C), | |
0xD8: (0x78, 0x1, 0x2, 0x7C, 0x0), | |
0xD9: (0x1F, 0x0, 0x3F, 0x1, 0x6), | |
0xDA: (0x3F, 0x1, 0x2, 0x4, 0x8), | |
0xDB: (0x3F, 0x21, 0x21, 0x21, 0x3F), | |
0xDC: (0x38, 0x20, 0x21, 0x22, 0x3C), | |
0xDD: (0x21, 0x21, 0x1, 0x2, 0xC), | |
0xDE: (0x20, 0x10, 0x40, 0x20, 0x0), | |
0xDF: (0x70, 0x50, 0x70, 0x0, 0x0), | |
0xE0: (0xE, 0x11, 0x9, 0x6, 0x1), | |
0xE1: (0x2, 0x55, 0x15, 0x55, 0xF), | |
0xE2: (0x1F, 0x2A, 0x2A, 0x2A, 0x14), | |
0xE3: (0xA, 0x15, 0x15, 0x11, 0x2), | |
0xE4: (0x3F, 0x4, 0x4, 0x8, 0x3C), | |
0xE5: (0xE, 0x11, 0x19, 0x15, 0x12), | |
0xE6: (0xF, 0x14, 0x24, 0x24, 0x18), | |
0xE7: (0x8, 0x15, 0x15, 0x15, 0x1E), | |
0xE8: (0x2, 0x1, 0x1E, 0x10, 0x10), | |
0xE9: (0x20, 0x20, 0x0, 0x70, 0x0), | |
0xEA: (0x2, 0x1, 0x11, 0x5E, 0x0), | |
0xEB: (0x50, 0x20, 0x50, 0x0, 0x0), | |
0xEC: (0xC, 0x12, 0x3F, 0x12, 0x4), | |
0xED: (0x14, 0x7F, 0x15, 0x1, 0x1), | |
0xEE: (0x1F, 0x48, 0x50, 0x50, 0xF), | |
0xEF: (0xE, 0x51, 0x11, 0x51, 0xE), | |
0xF0: (0x3F, 0x14, 0x24, 0x24, 0x18), | |
0xF1: (0x18, 0x24, 0x24, 0x14, 0x3F), | |
0xF2: (0x1E, 0x29, 0x29, 0x29, 0x1E), | |
0xF3: (0x6, 0xA, 0x4, 0xA, 0xC), | |
0xF4: (0xD, 0x13, 0x10, 0x13, 0xD), | |
0xF5: (0x1E, 0x41, 0x1, 0x42, 0x1F), | |
0xF6: (0x63, 0x55, 0x49, 0x41, 0x41), | |
0xF7: (0x11, 0x1E, 0x10, 0x1F, 0x11), | |
0xF8: (0x51, 0x4A, 0x44, 0x4A, 0x51), | |
0xF9: (0x18, 0x5, 0x5, 0x5, 0x1E), | |
0xFA: (0x28, 0x28, 0x3F, 0x28, 0x48), | |
0xFB: (0x11, 0x1E, 0x14, 0x14, 0x17), | |
0xFC: (0x1F, 0x14, 0x1C, 0x14, 0x1F), | |
0xFD: (0x8, 0x8, 0x2A, 0x8, 0x8), | |
0xFE: (0x0, 0x0, 0x0, 0x0, 0x0), | |
0xFF: (0x7F, 0x7F, 0x7F, 0x7F, 0x7F), | |
} | |
def render(text): | |
"""Render the text as a byte array as defined above.""" | |
result = bytearray() | |
for t in text: | |
for c in __bitmap[ord(t)]: | |
result.append(c) | |
result.append(0) | |
return result | |
import time | |
import picoscroll as scroll | |
scroll.init() | |
def hello_world(): | |
"""Display scrolling Hello, world!""" | |
# generate bitmap | |
hello = render("Hello, World!") | |
# display bitmap | |
for offset in range(-17, len(hello)): | |
scroll.show_bitmap_1d(hello, 16, offset) | |
scroll.update() | |
time.sleep(0.1) | |
if __name__ == "__main__": | |
while True: | |
hello_world() | |
time.sleep(1) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment