Compare commits
5 Commits
Author | SHA1 | Date |
---|---|---|
Felix Pankratz | 4d22364a89 | 7 days ago |
Felix Pankratz | c52f004690 | 7 days ago |
Felix Pankratz | 88971bd6ab | 1 week ago |
Felix Pankratz | 4c39671850 | 1 week ago |
Felix Pankratz | 7ee5f339a2 | 1 week ago |
@ -0,0 +1,4 @@
|
|||||||
|
.pio
|
||||||
|
.clang_complete
|
||||||
|
.gcc-flags.json
|
||||||
|
.ccls
|
@ -0,0 +1,21 @@
|
|||||||
|
# Uncomment lines below if you have problems with $PATH
|
||||||
|
#SHELL := /bin/bash
|
||||||
|
#PATH := /usr/local/bin:$(PATH)
|
||||||
|
|
||||||
|
all:
|
||||||
|
pio.exe -f -c vim run
|
||||||
|
|
||||||
|
upload:
|
||||||
|
pio.exe -f -c vim run --target upload
|
||||||
|
|
||||||
|
clean:
|
||||||
|
pio.exe -f -c vim run --target clean
|
||||||
|
|
||||||
|
program:
|
||||||
|
pio.exe -f -c vim run --target program
|
||||||
|
|
||||||
|
uploadfs:
|
||||||
|
pio.exe -f -c vim run --target uploadfs
|
||||||
|
|
||||||
|
update:
|
||||||
|
pio.exe -f -c vim update
|
@ -0,0 +1,22 @@
|
|||||||
|
; PlatformIO Project Configuration File
|
||||||
|
;
|
||||||
|
; Build options: build flags, source filter
|
||||||
|
; Upload options: custom upload port, speed and extra flags
|
||||||
|
; Library options: dependencies, extra library storages
|
||||||
|
; Advanced options: extra scripting
|
||||||
|
;
|
||||||
|
; Please visit documentation for the other options and examples
|
||||||
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
|
[env:adafruit_matrixportal_esp32s3]
|
||||||
|
platform = espressif32
|
||||||
|
board = adafruit_matrixportal_esp32s3
|
||||||
|
framework = arduino
|
||||||
|
monitor_speed = 115200
|
||||||
|
|
||||||
|
lib_deps =
|
||||||
|
adafruit/Adafruit GFX Library
|
||||||
|
adafruit/Adafruit BusIO
|
||||||
|
Wire
|
||||||
|
fastled/FastLED
|
||||||
|
https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA.git
|
@ -0,0 +1,184 @@
|
|||||||
|
const uint8_t CaveatBrush_Regular9pt7bBitmaps[] PROGMEM = {
|
||||||
|
0x00, 0x25, 0xB6, 0xDB, 0x6D, 0x81, 0xD8, 0xDE, 0xF5, 0x29, 0x48, 0x06,
|
||||||
|
0x40, 0x4E, 0x0C, 0xC0, 0xDF, 0x0F, 0xC7, 0xD8, 0xF1, 0xE1, 0xFE, 0xFF,
|
||||||
|
0x0F, 0x30, 0x23, 0x06, 0x20, 0x62, 0x00, 0x10, 0x47, 0xF7, 0xDF, 0x5F,
|
||||||
|
0x1E, 0x3C, 0xBA, 0xFF, 0x78, 0x82, 0x00, 0x60, 0x03, 0x80, 0x34, 0x01,
|
||||||
|
0xB1, 0x8D, 0x98, 0x68, 0x83, 0x4C, 0x0C, 0xCC, 0x06, 0xF0, 0x66, 0x82,
|
||||||
|
0x24, 0x31, 0xA1, 0x0F, 0x08, 0x30, 0x18, 0x1E, 0x0B, 0x05, 0x83, 0x81,
|
||||||
|
0xD9, 0xED, 0xF6, 0xCF, 0x67, 0x33, 0xDF, 0xF7, 0x38, 0xFE, 0xA0, 0x3B,
|
||||||
|
0x99, 0xCE, 0x63, 0x18, 0xC6, 0x30, 0x86, 0x10, 0xC3, 0x30, 0x41, 0x86,
|
||||||
|
0x18, 0x61, 0xC7, 0x18, 0x61, 0x84, 0x33, 0x80, 0x30, 0x5F, 0xCE, 0xF1,
|
||||||
|
0x40, 0x10, 0x10, 0x10, 0xFE, 0xFF, 0x18, 0x18, 0x18, 0xFF, 0x80, 0xFF,
|
||||||
|
0xE0, 0xBD, 0x0C, 0x21, 0x86, 0x10, 0xC3, 0x08, 0x61, 0x84, 0x30, 0xC3,
|
||||||
|
0x08, 0x00, 0x3C, 0x3C, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6E,
|
||||||
|
0x7C, 0x3C, 0x08, 0x73, 0x9E, 0xF8, 0x61, 0x86, 0x18, 0x61, 0x86, 0x38,
|
||||||
|
0xF9, 0xDB, 0x34, 0xE3, 0x87, 0x1C, 0x70, 0xC3, 0xF3, 0xF0, 0x1C, 0xFD,
|
||||||
|
0xFA, 0x30, 0xE1, 0x8F, 0x1F, 0x06, 0x0F, 0xF7, 0xE7, 0x00, 0x0E, 0x0F,
|
||||||
|
0x07, 0x86, 0xC7, 0x63, 0x23, 0xBD, 0xFF, 0xFC, 0x76, 0x03, 0x01, 0x80,
|
||||||
|
0xC0, 0x7E, 0x7F, 0x60, 0x60, 0x7C, 0xFE, 0x03, 0x07, 0x1E, 0x7C, 0xF8,
|
||||||
|
0x40, 0x0C, 0x1C, 0x38, 0x38, 0x30, 0x7E, 0x7F, 0x73, 0x67, 0xE6, 0x6E,
|
||||||
|
0x78, 0x10, 0xFD, 0xFD, 0xF8, 0xE1, 0x87, 0x0C, 0x18, 0x70, 0xC1, 0x83,
|
||||||
|
0x00, 0x1C, 0x3E, 0x72, 0x72, 0x36, 0x3C, 0x1C, 0x3E, 0x6E, 0x67, 0xE7,
|
||||||
|
0x47, 0x6E, 0x3C, 0x1E, 0x3E, 0x77, 0x67, 0xE7, 0xEF, 0xFE, 0x76, 0x0E,
|
||||||
|
0x0E, 0x0C, 0x1C, 0x08, 0xFC, 0x2F, 0xC0, 0xFC, 0x0F, 0xF8, 0x0E, 0x38,
|
||||||
|
0xE7, 0x06, 0x06, 0x06, 0x06, 0xFF, 0xE0, 0x00, 0xEF, 0xE0, 0xE0, 0xE0,
|
||||||
|
0xE0, 0x70, 0xE3, 0x0C, 0x30, 0x11, 0xF6, 0xF3, 0xDC, 0x63, 0x8C, 0x71,
|
||||||
|
0x80, 0x00, 0x61, 0x80, 0x03, 0x01, 0xF0, 0x71, 0x18, 0x33, 0x72, 0xDB,
|
||||||
|
0xDA, 0xDA, 0x56, 0xDD, 0xD9, 0x81, 0x00, 0x21, 0x83, 0xF0, 0x3C, 0x00,
|
||||||
|
0x1C, 0x1C, 0x3E, 0x36, 0x36, 0x66, 0x7E, 0x7E, 0x66, 0x67, 0xE3, 0xE3,
|
||||||
|
0x71, 0xFB, 0xB6, 0x2C, 0xDB, 0x3F, 0x63, 0xC7, 0x8F, 0x3F, 0xE7, 0x80,
|
||||||
|
0x38, 0xFB, 0xBF, 0x6C, 0xD8, 0x30, 0x60, 0xC1, 0x83, 0xB3, 0xE3, 0x80,
|
||||||
|
0x7C, 0xFE, 0xF7, 0x73, 0x63, 0x63, 0x63, 0x63, 0x66, 0x66, 0x7C, 0x78,
|
||||||
|
0x20, 0x7D, 0xE6, 0x38, 0xE3, 0x2F, 0xB8, 0xC3, 0x0C, 0x3F, 0x78, 0x0E,
|
||||||
|
0xFF, 0xE0, 0x60, 0x60, 0x7C, 0xFC, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
|
||||||
|
0x3E, 0x7A, 0x60, 0xE0, 0xC2, 0xCE, 0xCB, 0xC3, 0xC7, 0xEE, 0xFE, 0x16,
|
||||||
|
0x06, 0xE1, 0xE3, 0xE3, 0xE3, 0xC3, 0xFF, 0xFB, 0xC7, 0xC6, 0xC6, 0xE7,
|
||||||
|
0x43, 0x08, 0xFD, 0xE0, 0xC3, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC3, 0xEF,
|
||||||
|
0x80, 0x1E, 0xFC, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0D, 0x99, 0x33, 0xC1,
|
||||||
|
0x00, 0x60, 0x67, 0x66, 0x6C, 0xF8, 0xF0, 0xF0, 0xF0, 0xF8, 0xDC, 0xCE,
|
||||||
|
0xCF, 0xC0, 0x63, 0x39, 0x8C, 0x63, 0x18, 0xC6, 0x76, 0xF0, 0x00, 0x0C,
|
||||||
|
0x77, 0x1D, 0xC7, 0x71, 0xDE, 0xFF, 0xBF, 0x6F, 0xDF, 0xF7, 0xBD, 0xCF,
|
||||||
|
0x33, 0x40, 0x40, 0x63, 0x63, 0xF3, 0xF3, 0xF2, 0xF2, 0xDA, 0xDA, 0xDE,
|
||||||
|
0xDE, 0xCE, 0xC6, 0x38, 0xF9, 0xB7, 0x7C, 0xF8, 0xF1, 0xE3, 0xC7, 0x8F,
|
||||||
|
0x37, 0xE7, 0x80, 0x7C, 0xFE, 0x31, 0x31, 0x31, 0x33, 0x37, 0x3E, 0x7C,
|
||||||
|
0x30, 0x30, 0x30, 0x10, 0x10, 0x3C, 0x7C, 0x66, 0xE6, 0xE6, 0xE6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xD4, 0xDC, 0x7C, 0x06, 0x03, 0x7C, 0xFE, 0x62, 0x66, 0xDC,
|
||||||
|
0xF8, 0xF0, 0xD8, 0xD8, 0xDC, 0xCE, 0xC3, 0x3C, 0x7D, 0xBB, 0x36, 0x4E,
|
||||||
|
0x0E, 0x0E, 0x0E, 0x8F, 0x9B, 0xF3, 0xC0, 0x03, 0x8F, 0xFF, 0x01, 0x80,
|
||||||
|
0xC0, 0x60, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x00, 0x80, 0xE2, 0xE6,
|
||||||
|
0xE6, 0xC6, 0xC6, 0xC6, 0xCE, 0xCE, 0xCE, 0xDE, 0xFE, 0x76, 0x00, 0x01,
|
||||||
|
0xB1, 0xD8, 0xCC, 0x66, 0x33, 0x11, 0x98, 0xEC, 0x34, 0x1E, 0x0F, 0x07,
|
||||||
|
0x81, 0x80, 0x66, 0xF9, 0xBE, 0x6F, 0x9B, 0xE6, 0xF3, 0xBC, 0xEF, 0x7F,
|
||||||
|
0xDF, 0xBD, 0xEF, 0x31, 0x80, 0x61, 0xB1, 0xCC, 0xC6, 0xE1, 0xE0, 0xE0,
|
||||||
|
0x70, 0x78, 0x36, 0x3B, 0x39, 0xCC, 0x60, 0x66, 0x66, 0x66, 0x67, 0x67,
|
||||||
|
0x76, 0x36, 0x3E, 0x0E, 0x0E, 0xCC, 0x7C, 0x38, 0x7F, 0xBF, 0xC1, 0xC0,
|
||||||
|
0xC0, 0xE0, 0xE0, 0x60, 0x60, 0x70, 0x30, 0xBF, 0xDF, 0x84, 0x00, 0x79,
|
||||||
|
0xF6, 0x10, 0x41, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x1E, 0x7C,
|
||||||
|
0x83, 0x0C, 0x18, 0x60, 0x83, 0x0C, 0x10, 0x61, 0x86, 0x08, 0x30, 0xC0,
|
||||||
|
0xF9, 0xE0, 0x82, 0x0C, 0x20, 0x82, 0x08, 0x20, 0x82, 0x18, 0x61, 0xBE,
|
||||||
|
0x78, 0x00, 0x63, 0x9F, 0x4E, 0x30, 0x40, 0xFF, 0xFF, 0xE0, 0xC6, 0x30,
|
||||||
|
0x79, 0xF3, 0x66, 0xCD, 0xDB, 0xBF, 0x33, 0x43, 0x0C, 0x30, 0xC3, 0x0F,
|
||||||
|
0xFB, 0xEF, 0x3C, 0xF3, 0xDB, 0xC0, 0x77, 0xB7, 0xBC, 0x67, 0xCE, 0x0C,
|
||||||
|
0x30, 0xC3, 0x0D, 0xFF, 0xF7, 0xDF, 0x7D, 0xF7, 0xFF, 0xB0, 0x00, 0x73,
|
||||||
|
0xF7, 0xBF, 0x7B, 0x3F, 0x70, 0x1E, 0x3C, 0xC1, 0x83, 0x1F, 0xBF, 0x38,
|
||||||
|
0x70, 0xE1, 0xC3, 0x87, 0x06, 0x00, 0x7F, 0xF7, 0xBD, 0xED, 0xE3, 0x18,
|
||||||
|
0xFC, 0xE0, 0xC3, 0x0C, 0x30, 0xC3, 0x6D, 0xFF, 0xEB, 0xAE, 0xB2, 0xDB,
|
||||||
|
0x30, 0xF4, 0xBF, 0xFD, 0x0C, 0x70, 0x80, 0x00, 0x61, 0x86, 0x18, 0x61,
|
||||||
|
0x86, 0x18, 0x6B, 0x3C, 0x00, 0x41, 0x83, 0x06, 0x0C, 0x59, 0xB6, 0x7C,
|
||||||
|
0xE1, 0xE3, 0xE6, 0xF4, 0x00, 0x6B, 0x6D, 0xB6, 0xDB, 0x64, 0xC0, 0x6D,
|
||||||
|
0xBF, 0xDD, 0xEE, 0xD7, 0x6B, 0xB6, 0x93, 0xC9, 0xBB, 0xF7, 0xEE, 0xDD,
|
||||||
|
0xB3, 0x66, 0x77, 0xF7, 0xBC, 0xEF, 0xEE, 0x01, 0x0D, 0xFF, 0xEF, 0x3C,
|
||||||
|
0xB6, 0xF3, 0x0C, 0x30, 0xC1, 0x00, 0x71, 0xF3, 0x36, 0xE9, 0xD7, 0xBB,
|
||||||
|
0x16, 0x0C, 0x18, 0x38, 0x60, 0x46, 0xFD, 0xCC, 0x63, 0x18, 0x40, 0x67,
|
||||||
|
0xB7, 0x86, 0x1A, 0x52, 0xF0, 0x10, 0x30, 0x61, 0xCF, 0xE6, 0x0C, 0x18,
|
||||||
|
0x30, 0x60, 0xC1, 0x81, 0x00, 0x4F, 0xBC, 0xF7, 0xDF, 0x7F, 0xD9, 0x8E,
|
||||||
|
0x39, 0xB6, 0xDB, 0xCF, 0x3C, 0x70, 0x80, 0xD3, 0xDB, 0xDA, 0xDA, 0xDE,
|
||||||
|
0xFE, 0x7E, 0x20, 0x64, 0xFC, 0xE1, 0x87, 0x8F, 0x13, 0x66, 0x04, 0x4E,
|
||||||
|
0xF7, 0xBD, 0xEF, 0xFD, 0x18, 0xFE, 0xE0, 0x7C, 0xF8, 0x38, 0xE7, 0x0C,
|
||||||
|
0x30, 0xBF, 0x70, 0x10, 0xF3, 0xCC, 0x30, 0xC3, 0x0C, 0x30, 0xCE, 0x0C,
|
||||||
|
0x30, 0xC7, 0x1C, 0x30, 0x70, 0x55, 0x7F, 0xFF, 0xF4, 0x61, 0x8C, 0x63,
|
||||||
|
0x18, 0xC4, 0x31, 0xCC, 0x63, 0x18, 0xC6, 0xE0, 0xE3, 0xFC, 0x38 };
|
||||||
|
|
||||||
|
const GFXglyph CaveatBrush_Regular9pt7bGlyphs[] PROGMEM = {
|
||||||
|
{ 0, 1, 1, 4, 0, 0 }, // 0x20 ' '
|
||||||
|
{ 1, 3, 15, 4, 0, -13 }, // 0x21 '!'
|
||||||
|
{ 7, 5, 6, 6, 1, -12 }, // 0x22 '"'
|
||||||
|
{ 11, 12, 13, 10, -1, -11 }, // 0x23 '#'
|
||||||
|
{ 31, 6, 15, 8, 1, -12 }, // 0x24 '$'
|
||||||
|
{ 43, 13, 14, 14, 1, -12 }, // 0x25 '%'
|
||||||
|
{ 66, 9, 13, 9, 0, -11 }, // 0x26 '&'
|
||||||
|
{ 81, 2, 6, 3, 1, -12 }, // 0x27 '''
|
||||||
|
{ 83, 5, 16, 5, 1, -13 }, // 0x28 '('
|
||||||
|
{ 93, 6, 14, 5, -1, -12 }, // 0x29 ')'
|
||||||
|
{ 104, 6, 6, 7, 0, -12 }, // 0x2A '*'
|
||||||
|
{ 109, 8, 8, 9, 1, -8 }, // 0x2B '+'
|
||||||
|
{ 117, 2, 5, 4, 1, -1 }, // 0x2C ','
|
||||||
|
{ 119, 6, 2, 7, 1, -4 }, // 0x2D '-'
|
||||||
|
{ 121, 2, 4, 4, 1, -2 }, // 0x2E '.'
|
||||||
|
{ 122, 6, 15, 5, 0, -11 }, // 0x2F '/'
|
||||||
|
{ 134, 8, 12, 8, 0, -11 }, // 0x30 '0'
|
||||||
|
{ 146, 6, 12, 6, 0, -11 }, // 0x31 '1'
|
||||||
|
{ 155, 7, 12, 7, 0, -11 }, // 0x32 '2'
|
||||||
|
{ 166, 7, 13, 8, 0, -11 }, // 0x33 '3'
|
||||||
|
{ 178, 9, 13, 8, 0, -11 }, // 0x34 '4'
|
||||||
|
{ 193, 8, 12, 8, 0, -11 }, // 0x35 '5'
|
||||||
|
{ 205, 8, 13, 8, 0, -11 }, // 0x36 '6'
|
||||||
|
{ 218, 7, 12, 7, 0, -11 }, // 0x37 '7'
|
||||||
|
{ 229, 8, 14, 8, 0, -12 }, // 0x38 '8'
|
||||||
|
{ 243, 8, 13, 8, 0, -11 }, // 0x39 '9'
|
||||||
|
{ 256, 2, 9, 4, 1, -7 }, // 0x3A ':'
|
||||||
|
{ 259, 2, 11, 4, 1, -7 }, // 0x3B ';'
|
||||||
|
{ 262, 7, 8, 9, 1, -8 }, // 0x3C '<'
|
||||||
|
{ 269, 7, 5, 7, 0, -5 }, // 0x3D '='
|
||||||
|
{ 274, 7, 8, 9, 1, -8 }, // 0x3E '>'
|
||||||
|
{ 281, 6, 14, 8, 1, -12 }, // 0x3F '?'
|
||||||
|
{ 292, 11, 14, 12, 0, -10 }, // 0x40 '@'
|
||||||
|
{ 312, 8, 12, 8, 0, -11 }, // 0x41 'A'
|
||||||
|
{ 324, 7, 13, 9, 1, -11 }, // 0x42 'B'
|
||||||
|
{ 336, 7, 13, 8, 1, -11 }, // 0x43 'C'
|
||||||
|
{ 348, 8, 13, 10, 1, -11 }, // 0x44 'D'
|
||||||
|
{ 361, 6, 13, 7, 1, -11 }, // 0x45 'E'
|
||||||
|
{ 371, 8, 13, 8, 1, -11 }, // 0x46 'F'
|
||||||
|
{ 384, 8, 13, 9, 1, -10 }, // 0x47 'G'
|
||||||
|
{ 397, 8, 12, 10, 1, -12 }, // 0x48 'H'
|
||||||
|
{ 409, 7, 13, 7, 0, -11 }, // 0x49 'I'
|
||||||
|
{ 421, 7, 13, 7, 0, -12 }, // 0x4A 'J'
|
||||||
|
{ 433, 8, 13, 9, 1, -11 }, // 0x4B 'K'
|
||||||
|
{ 446, 5, 12, 7, 1, -11 }, // 0x4C 'L'
|
||||||
|
{ 454, 10, 13, 12, 1, -11 }, // 0x4D 'M'
|
||||||
|
{ 471, 8, 12, 10, 1, -11 }, // 0x4E 'N'
|
||||||
|
{ 483, 7, 13, 9, 1, -11 }, // 0x4F 'O'
|
||||||
|
{ 495, 8, 14, 8, 0, -12 }, // 0x50 'P'
|
||||||
|
{ 509, 8, 14, 9, 1, -11 }, // 0x51 'Q'
|
||||||
|
{ 523, 8, 12, 9, 1, -11 }, // 0x52 'R'
|
||||||
|
{ 535, 7, 13, 8, 0, -11 }, // 0x53 'S'
|
||||||
|
{ 547, 9, 13, 9, 0, -12 }, // 0x54 'T'
|
||||||
|
{ 562, 8, 13, 9, 1, -11 }, // 0x55 'U'
|
||||||
|
{ 575, 9, 13, 9, 0, -12 }, // 0x56 'V'
|
||||||
|
{ 590, 10, 12, 12, 1, -10 }, // 0x57 'W'
|
||||||
|
{ 605, 9, 12, 9, 0, -12 }, // 0x58 'X'
|
||||||
|
{ 619, 8, 13, 8, 0, -11 }, // 0x59 'Y'
|
||||||
|
{ 632, 9, 13, 9, 0, -11 }, // 0x5A 'Z'
|
||||||
|
{ 647, 6, 17, 5, 1, -13 }, // 0x5B '['
|
||||||
|
{ 660, 6, 15, 5, 0, -11 }, // 0x5C '\'
|
||||||
|
{ 672, 6, 17, 5, -1, -12 }, // 0x5D ']'
|
||||||
|
{ 685, 6, 7, 9, 1, -12 }, // 0x5E '^'
|
||||||
|
{ 691, 10, 2, 12, 1, 2 }, // 0x5F '_'
|
||||||
|
{ 694, 4, 3, 6, 1, -12 }, // 0x60 '`'
|
||||||
|
{ 696, 7, 8, 8, 1, -7 }, // 0x61 'a'
|
||||||
|
{ 703, 6, 14, 8, 1, -12 }, // 0x62 'b'
|
||||||
|
{ 714, 5, 8, 6, 1, -7 }, // 0x63 'c'
|
||||||
|
{ 719, 6, 15, 8, 1, -12 }, // 0x64 'd'
|
||||||
|
{ 731, 5, 9, 7, 1, -7 }, // 0x65 'e'
|
||||||
|
{ 737, 7, 14, 6, 0, -12 }, // 0x66 'f'
|
||||||
|
{ 750, 5, 12, 7, 1, -7 }, // 0x67 'g'
|
||||||
|
{ 758, 6, 14, 8, 1, -12 }, // 0x68 'h'
|
||||||
|
{ 769, 2, 12, 4, 1, -11 }, // 0x69 'i'
|
||||||
|
{ 772, 6, 17, 4, -2, -11 }, // 0x6A 'j'
|
||||||
|
{ 785, 7, 13, 7, 1, -12 }, // 0x6B 'k'
|
||||||
|
{ 797, 3, 13, 4, 1, -11 }, // 0x6C 'l'
|
||||||
|
{ 802, 9, 8, 11, 1, -7 }, // 0x6D 'm'
|
||||||
|
{ 811, 7, 8, 8, 1, -7 }, // 0x6E 'n'
|
||||||
|
{ 818, 5, 8, 7, 1, -7 }, // 0x6F 'o'
|
||||||
|
{ 823, 6, 14, 8, 1, -8 }, // 0x70 'p'
|
||||||
|
{ 834, 7, 12, 8, 1, -7 }, // 0x71 'q'
|
||||||
|
{ 845, 5, 9, 6, 1, -7 }, // 0x72 'r'
|
||||||
|
{ 851, 5, 9, 6, 1, -7 }, // 0x73 's'
|
||||||
|
{ 857, 7, 13, 6, 0, -11 }, // 0x74 't'
|
||||||
|
{ 869, 6, 8, 8, 1, -7 }, // 0x75 'u'
|
||||||
|
{ 875, 6, 9, 7, 1, -7 }, // 0x76 'v'
|
||||||
|
{ 882, 8, 9, 9, 1, -7 }, // 0x77 'w'
|
||||||
|
{ 891, 7, 9, 7, 0, -7 }, // 0x78 'x'
|
||||||
|
{ 899, 5, 12, 7, 1, -7 }, // 0x79 'y'
|
||||||
|
{ 907, 7, 9, 7, 0, -7 }, // 0x7A 'z'
|
||||||
|
{ 915, 6, 18, 5, 0, -13 }, // 0x7B '{'
|
||||||
|
{ 929, 2, 15, 5, 1, -11 }, // 0x7C '|'
|
||||||
|
{ 933, 5, 17, 5, 0, -13 }, // 0x7D '}'
|
||||||
|
{ 944, 7, 3, 9, 1, -6 } }; // 0x7E '~'
|
||||||
|
|
||||||
|
const GFXfont CaveatBrush_Regular9pt7b PROGMEM = {
|
||||||
|
(uint8_t *)CaveatBrush_Regular9pt7bBitmaps,
|
||||||
|
(GFXglyph *)CaveatBrush_Regular9pt7bGlyphs,
|
||||||
|
0x20, 0x7E, 22 };
|
||||||
|
|
||||||
|
// Approx. 1619 bytes
|
@ -0,0 +1,123 @@
|
|||||||
|
#include <Arduino.h>
|
||||||
|
#include "xtensa/core-macros.h"
|
||||||
|
#include <ESP32-HUB75-MatrixPanel-I2S-DMA.h>
|
||||||
|
|
||||||
|
#include "main.h"
|
||||||
|
|
||||||
|
#include "caveatbrush9pt7b.h"
|
||||||
|
#include "overlay.h"
|
||||||
|
|
||||||
|
#define R1 42
|
||||||
|
#define G1 40
|
||||||
|
#define BL1 41
|
||||||
|
#define R2 38
|
||||||
|
#define G2 37
|
||||||
|
#define BL2 39
|
||||||
|
#define CH_A 45
|
||||||
|
#define CH_B 36
|
||||||
|
#define CH_C 48
|
||||||
|
#define CH_D 35
|
||||||
|
#define CH_E 21
|
||||||
|
#define CLK 2
|
||||||
|
#define LAT 47
|
||||||
|
#define OE 14
|
||||||
|
|
||||||
|
#define PIN_E 21
|
||||||
|
#define PANEL_WIDTH 64
|
||||||
|
#define PANEL_HEIGHT 32 // Panel height of 64 will required PIN_E to be defined.
|
||||||
|
|
||||||
|
#define PANELS_NUMBER 1
|
||||||
|
|
||||||
|
#define PANE_WIDTH PANEL_WIDTH * PANELS_NUMBER
|
||||||
|
#define PANE_HEIGHT PANEL_HEIGHT
|
||||||
|
#define NUM_LEDS PANE_WIDTH*PANE_HEIGHT
|
||||||
|
|
||||||
|
#define ONBOARD_LED 13
|
||||||
|
|
||||||
|
MatrixPanel_I2S_DMA *matrix = nullptr;
|
||||||
|
|
||||||
|
int line_pos[PANEL_WIDTH]; // where a rain marker is (y coordinate)
|
||||||
|
int line_length[PANEL_WIDTH]; // how long a line is for a given x coord
|
||||||
|
int line_speed[PANEL_WIDTH]; // how fast each line moves
|
||||||
|
unsigned long line_last_moved[PANEL_WIDTH];
|
||||||
|
|
||||||
|
void setup(){
|
||||||
|
Serial.begin(BAUD_RATE);
|
||||||
|
pinMode(ONBOARD_LED, OUTPUT);
|
||||||
|
|
||||||
|
for (int i = 0; i<PANEL_WIDTH; i++) {
|
||||||
|
line_pos[i] = 0 - random(24);
|
||||||
|
line_length[i] = random(20, 28);
|
||||||
|
line_speed[i] = random(25, 100);
|
||||||
|
line_last_moved[i] = millis();
|
||||||
|
}
|
||||||
|
// redefine pins if required
|
||||||
|
HUB75_I2S_CFG::i2s_pins _pins={R1, G1, BL1, R2, G2, BL2, CH_A, CH_B, CH_C, CH_D, CH_E, LAT, OE, CLK};
|
||||||
|
HUB75_I2S_CFG mxconfig(PANEL_WIDTH, PANEL_HEIGHT, PANELS_NUMBER, _pins);
|
||||||
|
|
||||||
|
mxconfig.gpio.e = PIN_E;
|
||||||
|
mxconfig.driver = HUB75_I2S_CFG::FM6126A; // for panels using FM6126A chips
|
||||||
|
|
||||||
|
mxconfig.latch_blanking = 4;
|
||||||
|
mxconfig.i2sspeed = HUB75_I2S_CFG::HZ_10M;
|
||||||
|
mxconfig.clkphase = false;
|
||||||
|
|
||||||
|
mxconfig.double_buff = true;
|
||||||
|
|
||||||
|
matrix = new MatrixPanel_I2S_DMA(mxconfig);
|
||||||
|
matrix->begin();
|
||||||
|
matrix->setBrightness8(64);
|
||||||
|
matrix->fillScreenRGB888(0, 0, 0);
|
||||||
|
matrix->setFont(&CaveatBrush_Regular9pt7b);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
matrix ->flipDMABuffer();
|
||||||
|
matrix->clearScreen();
|
||||||
|
delay(25);
|
||||||
|
//matrix ->drawBitmap(0, 0, overlay, 64, 32, matrix->color565(64, 0, 0));
|
||||||
|
unsigned long timestamp = millis();
|
||||||
|
for (int x = 0; x < PANEL_WIDTH; x++) {
|
||||||
|
if ((timestamp - line_last_moved[x]) > line_speed[x]) {
|
||||||
|
// step down a pixel
|
||||||
|
line_pos[x]++;
|
||||||
|
line_last_moved[x] = timestamp;
|
||||||
|
}
|
||||||
|
if (line_pos[x] > PANEL_HEIGHT) {
|
||||||
|
line_pos[x] = 0;
|
||||||
|
}
|
||||||
|
if (line_pos[x] >= 0) {
|
||||||
|
//draw our pixel
|
||||||
|
matrix->drawPixel(x, line_pos[x], matrix->color565(128, 255, 128));
|
||||||
|
// draw our trail
|
||||||
|
for (int trail_offset = 1; trail_offset < line_length[x]; trail_offset++) {
|
||||||
|
//if (random(10) > 8) {
|
||||||
|
// trail_offset++;
|
||||||
|
//}
|
||||||
|
int trail_y = line_pos[x] - trail_offset;
|
||||||
|
if (trail_y >= 0) {
|
||||||
|
int pixel_num = (trail_y * PANEL_WIDTH) + x;
|
||||||
|
if (overlay[ pixel_num / 8 ] & (1 << (7 - (pixel_num % 8)) )) {
|
||||||
|
matrix->drawPixel(x, trail_y, matrix->color565(128, 255, 128));
|
||||||
|
} else {
|
||||||
|
matrix->drawPixel(x, trail_y, matrix->color565(0, (255 / line_length[x]) * (line_length[x] - trail_offset), 0));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int pixel_num = ((PANEL_HEIGHT + trail_y) * PANEL_WIDTH) + x;
|
||||||
|
if (line_pos[x] >= 0) {
|
||||||
|
if (overlay[ pixel_num / 8 ] & (1 << (7 - (pixel_num % 8)) )) {
|
||||||
|
matrix->drawPixel(x, PANEL_HEIGHT + trail_y, matrix->color565(128, 255, 128));
|
||||||
|
} else {
|
||||||
|
matrix->drawPixel(x, PANEL_HEIGHT + trail_y, matrix->color565(0,(255 / line_length[x]) * (line_length[x] - trail_offset), 0));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//delay(25);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
#include <FastLED.h>
|
||||||
|
|
||||||
|
#define BAUD_RATE 115200 // serial debug port baud rate
|
||||||
|
|
||||||
|
void buffclear(CRGB *buf);
|
||||||
|
uint16_t XY16( uint16_t x, uint16_t y);
|
||||||
|
void mxfill(CRGB *leds);
|
||||||
|
uint16_t colorWheel(uint8_t pos);
|
||||||
|
void drawText(int colorWheelOffset);
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
const unsigned char overlay [] PROGMEM = {
|
||||||
|
// 'bw2, 64x32px
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00,
|
||||||
|
0x01, 0xf8, 0x00, 0x00, 0x00, 0x1c, 0x03, 0x80, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x1c, 0x03, 0x80,
|
||||||
|
0x01, 0xff, 0x00, 0x00, 0x00, 0x1c, 0x03, 0x80, 0x01, 0xc7, 0x80, 0x00, 0x00, 0x1c, 0x00, 0x00,
|
||||||
|
0x01, 0xc3, 0x80, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x01, 0xc3, 0x8f, 0xe1, 0xbe, 0x1c, 0x7b, 0x80,
|
||||||
|
0x01, 0xc3, 0x8f, 0xe1, 0xff, 0x1c, 0x73, 0x80, 0x01, 0xc3, 0x88, 0x71, 0xe7, 0x1c, 0xe3, 0x80,
|
||||||
|
0x01, 0xc3, 0x80, 0x71, 0xc3, 0x9d, 0xe3, 0x80, 0x01, 0xff, 0x00, 0x71, 0xc3, 0x9d, 0xc3, 0x80,
|
||||||
|
0x01, 0xff, 0x03, 0xf1, 0xc3, 0x9f, 0x83, 0x80, 0x01, 0xfc, 0x0f, 0xf1, 0xc3, 0x9f, 0xc3, 0x80,
|
||||||
|
0x01, 0xc0, 0x1f, 0x71, 0xc3, 0x9f, 0xc3, 0x80, 0x01, 0xc0, 0x3c, 0x71, 0xc3, 0x9d, 0xe3, 0x80,
|
||||||
|
0x01, 0xc0, 0x38, 0x71, 0xc3, 0x9c, 0xe3, 0x80, 0x01, 0xc0, 0x38, 0x71, 0xc3, 0x9c, 0xf3, 0x80,
|
||||||
|
0x01, 0xc0, 0x1c, 0xf1, 0xc3, 0x9c, 0x73, 0x80, 0x01, 0xc0, 0x1f, 0xf1, 0xc3, 0x9c, 0x7b, 0x80,
|
||||||
|
0x01, 0xc0, 0x0f, 0xb1, 0x83, 0x9c, 0x3b, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
Loading…
Reference in New Issue