|
|
|
|
@ -32,6 +32,81 @@
|
|
|
|
|
//#define DEBUG
|
|
|
|
|
#define FORMAT_SPIFFS_IF_FAILED true
|
|
|
|
|
|
|
|
|
|
//FONTS
|
|
|
|
|
const uint8_t b_fonts[43][11] = {
|
|
|
|
|
{0x00, 0x18, 0x24, 0x62, 0x62, 0x62, 0x7E, 0x62, 0x62, 0x62, 0x00}, //00: A
|
|
|
|
|
{0x00, 0x7C, 0x32, 0x32, 0x32, 0x3C, 0x32, 0x32, 0x32, 0x7C, 0x00}, //01: B
|
|
|
|
|
{0x00, 0x3C, 0x62, 0x62, 0x60, 0x60, 0x60, 0x62, 0x62, 0x3C, 0x00}, //02: C
|
|
|
|
|
{0x00, 0x7C, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x7C, 0x00}, //03: D
|
|
|
|
|
{0x00, 0x7E, 0x60, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x7E, 0x00}, //04: E
|
|
|
|
|
{0x00, 0x7E, 0x60, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x60, 0x00}, //05: F
|
|
|
|
|
{0x00, 0x3C, 0x62, 0x62, 0x60, 0x60, 0x66, 0x62, 0x62, 0x3C, 0x00}, //06: G
|
|
|
|
|
{0x00, 0x62, 0x62, 0x62, 0x62, 0x7E, 0x62, 0x62, 0x62, 0x62, 0x00}, //07: H
|
|
|
|
|
{0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00}, //08: I
|
|
|
|
|
{0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x38, 0x00}, //09: J
|
|
|
|
|
{0x00, 0x62, 0x64, 0x68, 0x70, 0x68, 0x64, 0x62, 0x62, 0x62, 0x00}, //10: K
|
|
|
|
|
{0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00}, //11: L
|
|
|
|
|
{0x00, 0x42, 0x62, 0x76, 0x6A, 0x62, 0x62, 0x62, 0x62, 0x62, 0x00}, //12: M
|
|
|
|
|
{0x00, 0x42, 0x62, 0x72, 0x6A, 0x66, 0x62, 0x62, 0x62, 0x62, 0x00}, //13: N
|
|
|
|
|
{0x00, 0x3C, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x3C, 0x00}, //14: O
|
|
|
|
|
{0x00, 0x7C, 0x62, 0x62, 0x62, 0x7C, 0x60, 0x60, 0x60, 0x60, 0x00}, //15: P
|
|
|
|
|
{0x00, 0x3C, 0x62, 0x62, 0x62, 0x62, 0x62, 0x6A, 0x6A, 0x3C, 0x08}, //16: Q
|
|
|
|
|
{0x00, 0x7C, 0x62, 0x62, 0x62, 0x7C, 0x68, 0x64, 0x62, 0x62, 0x00}, //17: R
|
|
|
|
|
{0x00, 0x3C, 0x62, 0x60, 0x60, 0x3C, 0x06, 0x06, 0x46, 0x3C, 0x00}, //18: S
|
|
|
|
|
{0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00}, //19: T
|
|
|
|
|
{0x00, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x3C, 0x00}, //20: U
|
|
|
|
|
{0x00, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x22, 0x14, 0x08, 0x00}, //21: V
|
|
|
|
|
{0x00, 0x62, 0x62, 0x62, 0x62, 0x62, 0x6A, 0x76, 0x62, 0x42, 0x00}, //22: W
|
|
|
|
|
{0x00, 0x42, 0x62, 0x74, 0x38, 0x1C, 0x2E, 0x46, 0x42, 0x42, 0x00}, //23: X
|
|
|
|
|
{0x00, 0x42, 0x62, 0x74, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00}, //24: Y
|
|
|
|
|
{0x00, 0x7E, 0x06, 0x0E, 0x0C, 0x18, 0x30, 0x70, 0x60, 0x7E, 0x00}, //25: Z
|
|
|
|
|
{0x00, 0x3C, 0x62, 0x62, 0x66, 0x6A, 0x72, 0x62, 0x62, 0x3C, 0x00}, //26: 0
|
|
|
|
|
{0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00}, //27: 1
|
|
|
|
|
{0x00, 0x3C, 0x46, 0x06, 0x06, 0x1C, 0x20, 0x60, 0x60, 0x7E, 0x00}, //28: 2
|
|
|
|
|
{0x00, 0x3C, 0x46, 0x06, 0x06, 0x1C, 0x06, 0x06, 0x46, 0x3C, 0x00}, //29: 3
|
|
|
|
|
{0x00, 0x0C, 0x1C, 0x2C, 0x4C, 0x4C, 0x7E, 0x0C, 0x0C, 0x0C, 0x00}, //30: 4
|
|
|
|
|
{0x00, 0x7E, 0x60, 0x60, 0x60, 0x7C, 0x06, 0x06, 0x46, 0x3C, 0x00}, //31: 5
|
|
|
|
|
{0x00, 0x3C, 0x62, 0x60, 0x60, 0x7C, 0x62, 0x62, 0x62, 0x3C, 0x00}, //32: 6
|
|
|
|
|
{0x00, 0x7E, 0x06, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00}, //33: 7
|
|
|
|
|
{0x00, 0x3C, 0x62, 0x62, 0x62, 0x3C, 0x62, 0x62, 0x62, 0x3C, 0x00}, //34: 8
|
|
|
|
|
{0x00, 0x3C, 0x46, 0x46, 0x46, 0x3E, 0x06, 0x06, 0x46, 0x3C, 0x00}, //35: 9
|
|
|
|
|
{0x00, 0x00, 0x02, 0x06, 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x40, 0x00}, //36: /
|
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00}, //37: -
|
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00}, //38: .
|
|
|
|
|
{0x00, 0x3C, 0x46, 0x06, 0x06, 0x0C, 0x10, 0x00, 0x30, 0x30, 0x00}, //39: ?
|
|
|
|
|
{0x00, 0x18, 0x18, 0x18, 0x18, 0x10, 0x10, 0x00, 0x18, 0x18, 0x00}, //40: !
|
|
|
|
|
{0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, //41: :
|
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} //42: space
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Nibble font table
|
|
|
|
|
const uint8_t l_fonts[23][5] = {
|
|
|
|
|
{ 0xE2, 0xA6, 0xA2, 0xA2, 0xE2 }, // 0: 01
|
|
|
|
|
{ 0xEE, 0x22, 0xE6, 0x82, 0xEE }, // 1: 23
|
|
|
|
|
{ 0xAE, 0xA8, 0xEE, 0x22, 0x2E }, // 2: 45
|
|
|
|
|
{ 0x8E, 0x82, 0xE2, 0xA2, 0xE2 }, // 3: 67
|
|
|
|
|
{ 0xEE, 0xAA, 0xEE, 0xA2, 0xE2 }, // 4: 89
|
|
|
|
|
{ 0x00, 0x22, 0x00, 0x22, 0x04 }, // 5: :;
|
|
|
|
|
{ 0x20, 0x4E, 0x80, 0x4E, 0x20 }, // 6: <=
|
|
|
|
|
{ 0x8E, 0x42, 0x26, 0x40, 0x84 }, // 7: >?
|
|
|
|
|
{ 0x64, 0x9A, 0xBE, 0x8A, 0x7A }, // 8: @A
|
|
|
|
|
{ 0xC6, 0xA8, 0xC8, 0xA8, 0xC6 }, // 9: BC
|
|
|
|
|
{ 0xCE, 0xA8, 0xAC, 0xA8, 0xCE }, // 10: DE
|
|
|
|
|
{ 0xE6, 0x88, 0xCE, 0x8A, 0x86 }, // 11: FG
|
|
|
|
|
{ 0xA4, 0xA4, 0xE4, 0xA4, 0xA4 }, // 12: HI
|
|
|
|
|
{ 0x69, 0x2A, 0x2C, 0x2A, 0x49 }, // 13: JK
|
|
|
|
|
{ 0x8A, 0x8E, 0x8E, 0x8A, 0xEA }, // 14: LM
|
|
|
|
|
{ 0x04, 0x9A, 0xDA, 0xBA, 0x94 }, // 15: NO
|
|
|
|
|
{ 0xC4, 0xAA, 0xCA, 0x8E, 0x86 }, // 16: PQ
|
|
|
|
|
{ 0xC6, 0xA8, 0xC4, 0xA2, 0xAC }, // 17: RS
|
|
|
|
|
{ 0xE0, 0x4A, 0x4A, 0x4A, 0x44 }, // 18: TU
|
|
|
|
|
{ 0x09, 0xA9, 0xA9, 0x6F, 0x26 }, // 19: vW (sort of..)
|
|
|
|
|
{ 0x0A, 0xAA, 0x46, 0xA2, 0x04 }, // 20: XY
|
|
|
|
|
{ 0xE6, 0x24, 0x44, 0x84, 0xE6 }, // 21: Z[
|
|
|
|
|
{ 0x00, 0x00, 0x00, 0x00, 0x00 } // 22: SPACE
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void app_main();
|
|
|
|
|
void send_image_serial(char *filename);
|
|
|
|
|
void save_camera_image(char* filename);
|
|
|
|
|
@ -52,6 +127,9 @@ bool file_flag = false;
|
|
|
|
|
camera_fb_t *pic;
|
|
|
|
|
File inFile;
|
|
|
|
|
File outFile;
|
|
|
|
|
int blocks = 0;
|
|
|
|
|
//int counter = 0;
|
|
|
|
|
bool write_complete = false;
|
|
|
|
|
|
|
|
|
|
// example code from https://github.com/espressif/arduino-esp32/blob/master/libraries/LittleFS/examples/LITTLEFS_test/LITTLEFS_test.ino
|
|
|
|
|
//
|
|
|
|
|
|