Skip to content

Commit

Permalink
Merge pull request #49 from PPUC/main_issue-35
Browse files Browse the repository at this point in the history
added a tiny font, fixed int types, improved debug output
  • Loading branch information
mkalkbrenner authored Jan 21, 2024
2 parents 1be204a + fd011ba commit d8043df
Show file tree
Hide file tree
Showing 4 changed files with 1,966 additions and 1,789 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.DS_Store
/.pio/
/.vscode/
16 changes: 12 additions & 4 deletions platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ default_envs = 128x32

[env:128x32]
framework = arduino
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.06.01/platform-espressif32.zip
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.01/platform-espressif32.zip
board = esp32dev
board_build.partitions = partitions.csv
board_build.filesystem = littlefs
Expand All @@ -30,10 +30,12 @@ build_flags =
-DMINIZ_NO_ARCHIVE_APIS=1
-DMINIZ_NO_ARCHIVE_WRITING_APIS=1
-DMINIZ_NO_ZLIB_COMPATIBLE_NAMES=1
-Os
build_unflags = -Og

[env:256x64]
framework = arduino
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.06.01/platform-espressif32.zip
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.01/platform-espressif32.zip
board = esp32dev
board_build.partitions = partitions.csv
board_build.filesystem = littlefs
Expand All @@ -51,10 +53,12 @@ build_flags =
-DMINIZ_NO_ARCHIVE_APIS=1
-DMINIZ_NO_ARCHIVE_WRITING_APIS=1
-DMINIZ_NO_ZLIB_COMPATIBLE_NAMES=1
-Os
build_unflags = -Og

[env:128x32_wifi]
framework = arduino
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.06.01/platform-espressif32.zip
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.01/platform-espressif32.zip
board = esp32dev
board_build.partitions = partitions.csv
board_build.filesystem = littlefs
Expand All @@ -72,10 +76,12 @@ build_flags =
-DMINIZ_NO_ARCHIVE_APIS=1
-DMINIZ_NO_ARCHIVE_WRITING_APIS=1
-DMINIZ_NO_ZLIB_COMPATIBLE_NAMES=1
-Os
build_unflags = -Og

[env:256x64_wifi]
framework = arduino
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.06.01/platform-espressif32.zip
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.01/platform-espressif32.zip
board = esp32dev
board_build.partitions = partitions.csv
board_build.filesystem = littlefs
Expand All @@ -94,3 +100,5 @@ build_flags =
-DMINIZ_NO_ARCHIVE_APIS=1
-DMINIZ_NO_ARCHIVE_WRITING_APIS=1
-DMINIZ_NO_ZLIB_COMPATIBLE_NAMES=1
-Os
build_unflags = -Og
122 changes: 122 additions & 0 deletions src/fonts/tiny4x6.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
// A Tiny 4x6 Pixel Font That Will Fit On Almost Any Microcontroller (License: MIT)
// https://hackaday.io/project/6309-vga-graphics-over-spi-and-serial-vgatonic/log/20759-a-tiny-4x6-pixel-font-that-will-fit-on-almost-any-microcontroller-license-mit

// Font Definition
const uint8_t font4x6[96][2] = {
{0x00, 0x00}, /*SPACE*/
{0x49, 0x08}, /*'!'*/
{0xb4, 0x00}, /*'"'*/
{0xbe, 0xf6}, /*'#'*/
{0x7b, 0x7a}, /*'$'*/
{0xa5, 0x94}, /*'%'*/
{0x55, 0xb8}, /*'&'*/
{0x48, 0x00}, /*'''*/
{0x29, 0x44}, /*'('*/
{0x44, 0x2a}, /*')'*/
{0x15, 0xa0}, /*'*'*/
{0x0b, 0x42}, /*'+'*/
{0x00, 0x50}, /*','*/
{0x03, 0x02}, /*'-'*/
{0x00, 0x08}, /*'.'*/
{0x25, 0x90}, /*'/'*/
{0x76, 0xba}, /*'0'*/
{0x59, 0x5c}, /*'1'*/
{0xc5, 0x9e}, /*'2'*/
{0xc5, 0x38}, /*'3'*/
{0x92, 0xe6}, /*'4'*/
{0xf3, 0x3a}, /*'5'*/
{0x73, 0xba}, /*'6'*/
{0xe5, 0x90}, /*'7'*/
{0x77, 0xba}, /*'8'*/
{0x77, 0x3a}, /*'9'*/
{0x08, 0x40}, /*':'*/
{0x08, 0x50}, /*';'*/
{0x2a, 0x44}, /*'<'*/
{0x1c, 0xe0}, /*'='*/
{0x88, 0x52}, /*'>'*/
{0xe5, 0x08}, /*'?'*/
{0x56, 0x8e}, /*'@'*/
{0x77, 0xb6}, /*'A'*/
{0x77, 0xb8}, /*'B'*/
{0x72, 0x8c}, /*'C'*/
{0xd6, 0xba}, /*'D'*/
{0x73, 0x9e}, /*'E'*/
{0x73, 0x92}, /*'F'*/
{0x72, 0xae}, /*'G'*/
{0xb7, 0xb6}, /*'H'*/
{0xe9, 0x5c}, /*'I'*/
{0x64, 0xaa}, /*'J'*/
{0xb7, 0xb4}, /*'K'*/
{0x92, 0x9c}, /*'L'*/
{0xbe, 0xb6}, /*'M'*/
{0xd6, 0xb6}, /*'N'*/
{0x56, 0xaa}, /*'O'*/
{0xd7, 0x92}, /*'P'*/
{0x76, 0xee}, /*'Q'*/
{0x77, 0xb4}, /*'R'*/
{0x71, 0x38}, /*'S'*/
{0xe9, 0x48}, /*'T'*/
{0xb6, 0xae}, /*'U'*/
{0xb6, 0xaa}, /*'V'*/
{0xb6, 0xf6}, /*'W'*/
{0xb5, 0xb4}, /*'X'*/
{0xb5, 0x48}, /*'Y'*/
{0xe5, 0x9c}, /*'Z'*/
{0x69, 0x4c}, /*'['*/
{0x91, 0x24}, /*'\'*/
{0x64, 0x2e}, /*']'*/
{0x54, 0x00}, /*'^'*/
{0x00, 0x1c}, /*'_'*/
{0x44, 0x00}, /*'`'*/
{0x0e, 0xae}, /*'a'*/
{0x9a, 0xba}, /*'b'*/
{0x0e, 0x8c}, /*'c'*/
{0x2e, 0xae}, /*'d'*/
{0x0e, 0xce}, /*'e'*/
{0x56, 0xd0}, /*'f'*/
{0x55, 0x3B}, /*'g'*/
{0x93, 0xb4}, /*'h'*/
{0x41, 0x44}, /*'i'*/
{0x41, 0x51}, /*'j'*/
{0x97, 0xb4}, /*'k'*/
{0x49, 0x44}, /*'l'*/
{0x17, 0xb6}, /*'m'*/
{0x1a, 0xb6}, /*'n'*/
{0x0a, 0xaa}, /*'o'*/
{0xd6, 0xd3}, /*'p'*/
{0x76, 0x67}, /*'q'*/
{0x17, 0x90}, /*'r'*/
{0x0f, 0x38}, /*'s'*/
{0x9a, 0x8c}, /*'t'*/
{0x16, 0xae}, /*'u'*/
{0x16, 0xba}, /*'v'*/
{0x16, 0xf6}, /*'w'*/
{0x15, 0xb4}, /*'x'*/
{0xb5, 0x2b}, /*'y'*/
{0x1c, 0x5e}, /*'z'*/
{0x6b, 0x4c}, /*'{'*/
{0x49, 0x48}, /*'|'*/
{0xc9, 0x5a}, /*'}'*/
{0x54, 0x00}, /*'~'*/
{0x56, 0xe2} /*''*/
};

// Font retreival function - ugly, but needed.
char getFontLine(const char data, uint8_t line_num) {
const uint8_t index = (data - 32);
char pixel = 0;
if (font4x6[index][1] & 1 == 1) line_num -= 1;
if (line_num == 0) {
pixel = font4x6[index][0] >> 4;
} else if (line_num == 1) {
pixel = font4x6[index][0] >> 1;
} else if (line_num == 2) {
// Split over 2 bytes
return ((font4x6[index][0] & 0x03) << 2) | (font4x6[index][1] & 0x02);
} else if (line_num == 3) {
pixel = font4x6[index][1] >> 4;
} else if (line_num == 4) {
pixel = font4x6[index][1] >> 1;
}
return pixel & 0xe;
}
Loading

0 comments on commit d8043df

Please sign in to comment.