From c8a8f3147737c535c6c676fefdb312f14a923520 Mon Sep 17 00:00:00 2001 From: gitProtogen Date: Tue, 27 Jan 2026 07:59:50 +0100 Subject: [PATCH] fixed characters drawing orientation and array handling --- fonts.h | 943 +++++++++++++++++++++++++++++++++++++++++++++++++++++ ledy.ino | 106 +++--- maker.html | 178 ++++++++++ server.ino | 31 +- 4 files changed, 1192 insertions(+), 66 deletions(-) create mode 100644 fonts.h create mode 100644 maker.html diff --git a/fonts.h b/fonts.h new file mode 100644 index 0000000..dc86dc9 --- /dev/null +++ b/fonts.h @@ -0,0 +1,943 @@ +constexpr bool font7x5[95][7][5] = { + // ! (ASCII 33) + { + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, false, false, false}, + {false, false, true, false, false} + }, + // " (ASCII 34) + { + {false, true, false, true, false}, + {false, true, false, true, false}, + {false, true, false, true, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false} + }, + // # (ASCII 35) + { + {false, true, false, true, false}, + {false, true, false, true, false}, + {true, true, true, true, true}, + {false, true, false, true, false}, + {true, true, true, true, true}, + {false, true, false, true, false}, + {false, true, false, true, false} + }, + // $ (ASCII 36) + { + {false, false, true, false, false}, + {false, true, true, true, true}, + {true, false, true, false, false}, + {false, true, true, true, false}, + {false, false, true, false, true}, + {true, true, true, true, false}, + {false, false, true, false, false} + }, + // % (ASCII 37) + { + {true, true, false, false, true}, + {true, true, false, false, true}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false}, + {true, false, false, true, true}, + {true, false, false, true, true} + }, + // & (ASCII 38) + { + {false, true, true, false, false}, + {true, false, false, true, false}, + {true, false, false, true, false}, + {false, true, true, false, false}, + {true, false, true, false, true}, + {true, false, false, true, false}, + {false, true, true, false, true} + }, + // ' (ASCII 39) + { + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false} + }, + // ( (ASCII 40) + { + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false}, + {false, true, false, false, false}, + {false, true, false, false, false}, + {false, false, true, false, false}, + {false, false, false, true, false} + }, + // ) (ASCII 41) + { + {false, true, false, false, false}, + {false, false, true, false, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false} + }, + // * (ASCII 42) + { + {false, false, false, false, false}, + {false, true, false, true, false}, + {false, false, true, false, false}, + {true, true, true, true, true}, + {false, false, true, false, false}, + {false, true, false, true, false}, + {false, false, false, false, false} + }, + // + (ASCII 43) + { + {false, false, false, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {true, true, true, true, true}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, false, false, false} + }, + // , (ASCII 44) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, true, true, false}, + {false, false, true, true, false}, + {false, true, true, false, false} + }, + // - (ASCII 45) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, true, true, true, true}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false} + }, + // . (ASCII 46) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, true, true, false, false}, + {false, true, true, false, false} + }, + // / (ASCII 47) + { + {false, false, false, false, true}, + {false, false, false, false, true}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, false} + }, + // 0 (ASCII 48) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, true, true}, + {true, false, true, false, true}, + {true, true, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // 1 (ASCII 49) + { + {false, false, true, false, false}, + {false, true, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, true, true, true, false} + }, + // 2 (ASCII 50) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {false, false, false, false, true}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false}, + {true, true, true, true, true} + }, + // 3 (ASCII 51) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {false, false, false, false, true}, + {false, false, true, true, false}, + {false, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // 4 (ASCII 52) + { + {false, false, false, true, false}, + {false, false, true, true, false}, + {false, true, false, true, false}, + {true, false, false, true, false}, + {true, true, true, true, true}, + {false, false, false, true, false}, + {false, false, false, true, false} + }, + // 5 (ASCII 53) + { + {true, true, true, true, true}, + {true, false, false, false, false}, + {true, true, true, true, false}, + {false, false, false, false, true}, + {false, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // 6 (ASCII 54) + { + {false, false, true, true, false}, + {false, true, false, false, false}, + {true, false, false, false, false}, + {true, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // 7 (ASCII 55) + { + {true, true, true, true, true}, + {false, false, false, false, true}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false}, + {false, true, false, false, false}, + {false, true, false, false, false} + }, + // 8 (ASCII 56) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // 9 (ASCII 57) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, true}, + {false, false, false, false, true}, + {false, false, false, true, false}, + {false, true, true, false, false} + }, + // : (ASCII 58) + { + {false, false, false, false, false}, + {false, true, true, false, false}, + {false, true, true, false, false}, + {false, false, false, false, false}, + {false, true, true, false, false}, + {false, true, true, false, false}, + {false, false, false, false, false} + }, + // ; (ASCII 59) + { + {false, false, false, false, false}, + {false, true, true, false, false}, + {false, true, true, false, false}, + {false, false, false, false, false}, + {false, false, true, true, false}, + {false, false, true, true, false}, + {false, true, true, false, false} + }, + // < (ASCII 60) + { + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false}, + {true, false, false, false, false}, + {false, true, false, false, false}, + {false, false, true, false, false}, + {false, false, false, true, false} + }, + // = (ASCII 61) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, true, true, true, true}, + {false, false, false, false, false}, + {true, true, true, true, true}, + {false, false, false, false, false}, + {false, false, false, false, false} + }, + // > (ASCII 62) + { + {false, true, false, false, false}, + {false, false, true, false, false}, + {false, false, false, true, false}, + {false, false, false, false, true}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false} + }, + // ? (ASCII 63) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {false, false, false, false, true}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, false, false, false, false}, + {false, false, true, false, false} + }, + // @ (ASCII 64) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {false, false, false, false, true}, + {false, true, true, false, true}, + {true, false, true, false, true}, + {true, false, true, true, true}, + {false, true, true, false, false} + }, + // A (ASCII 65) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, true, true, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true} + }, + // B (ASCII 66) + { + {true, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, true, true, false} + }, + // C (ASCII 67) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // D (ASCII 68) + { + {true, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, true, true, false} + }, + // E (ASCII 69) + { + {true, true, true, true, true}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, true, true, true, false}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, true, true, true, true} + }, + // F (ASCII 70) + { + {true, true, true, true, true}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, true, true, true, false}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, false} + }, + // G (ASCII 71) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, false}, + {true, false, true, true, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, true} + }, + // H (ASCII 72) + { + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, true, true, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true} + }, + // I (ASCII 73) + { + {false, true, true, true, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, true, true, true, false} + }, + // J (ASCII 74) + { + {false, false, true, true, true}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {true, false, false, true, false}, + {false, true, true, false, false} + }, + // K (ASCII 75) + { + {true, false, false, false, true}, + {true, false, false, true, false}, + {true, false, true, false, false}, + {true, true, false, false, false}, + {true, false, true, false, false}, + {true, false, false, true, false}, + {true, false, false, false, true} + }, + // L (ASCII 76) + { + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, true, true, true, true} + }, + // M (ASCII 77) + { + {true, false, false, false, true}, + {true, true, false, true, true}, + {true, false, true, false, true}, + {true, false, true, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true} + }, + // N (ASCII 78) + { + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, false, false, true}, + {true, false, true, false, true}, + {true, false, false, true, true}, + {true, false, false, false, true}, + {true, false, false, false, true} + }, + // O (ASCII 79) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // P (ASCII 80) + { + {true, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, true, true, false}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, false} + }, + // Q (ASCII 81) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, true, false, true}, + {true, false, false, true, false}, + {false, true, true, false, true} + }, + // R (ASCII 82) + { + {true, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, true, true, false}, + {true, false, true, false, false}, + {true, false, false, true, false}, + {true, false, false, false, true} + }, + // S (ASCII 83) + { + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, false}, + {false, true, true, true, false}, + {false, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // T (ASCII 84) + { + {true, true, true, true, true}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false} + }, + // U (ASCII 85) + { + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // V (ASCII 86) + { + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, false, true, false}, + {false, false, true, false, false} + }, + // W (ASCII 87) + { + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, true, false, true}, + {true, false, true, false, true}, + {true, true, false, true, true}, + {true, false, false, false, true} + }, + // X (ASCII 88) + { + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, false, true, false}, + {false, false, true, false, false}, + {false, true, false, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true} + }, + // Y (ASCII 89) + { + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, false, true, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false} + }, + // Z (ASCII 90) + { + {true, true, true, true, true}, + {false, false, false, false, true}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false}, + {true, false, false, false, false}, + {true, true, true, true, true} + }, + // [ (ASCII 91) + { + {false, true, true, true, false}, + {false, true, false, false, false}, + {false, true, false, false, false}, + {false, true, false, false, false}, + {false, true, false, false, false}, + {false, true, false, false, false}, + {false, true, true, true, false} + }, + // \ (ASCII 92) + { + {true, false, false, false, false}, + {true, false, false, false, false}, + {false, true, false, false, false}, + {false, false, true, false, false}, + {false, false, false, true, false}, + {false, false, false, false, true}, + {false, false, false, false, true} + }, + // ] (ASCII 93) + { + {false, true, true, true, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {false, true, true, true, false} + }, + // ^ (ASCII 94) + { + {false, false, true, false, false}, + {false, true, false, true, false}, + {true, false, false, false, true}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false} + }, + // _ (ASCII 95) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, true, true, true, true} + }, + // ` (ASCII 96) + { + {false, true, true, false, false}, + {false, false, true, false, false}, + {false, false, false, true, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false} + }, + // a (ASCII 97) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, true, true, true, false}, + {false, false, false, false, true}, + {false, true, true, true, true}, + {true, false, false, false, true}, + {false, true, true, true, true} + }, + // b (ASCII 98) + { + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, true, true, false}, + {true, true, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, true, true, false} + }, + // c (ASCII 99) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, false}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // d (ASCII 100) + { + {false, false, false, false, true}, + {false, false, false, false, true}, + {false, true, true, false, true}, + {true, false, false, true, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, true} + }, + // e (ASCII 101) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, true, true, true, true}, + {true, false, false, false, false}, + {false, true, true, true, false} + }, + // f (ASCII 102) + { + {false, false, true, true, false}, + {false, true, false, false, true}, + {false, true, false, false, false}, + {true, true, true, false, false}, + {false, true, false, false, false}, + {false, true, false, false, false}, + {false, true, false, false, false} + }, + // g (ASCII 103) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, true, true, true, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, true}, + {false, false, false, false, true}, + // Note: This would typically have a 7th row showing the descender + }, + // h (ASCII 104) + { + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, true, true, false}, + {true, true, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true} + }, + // i (ASCII 105) + { + {false, false, true, false, false}, + {false, false, false, false, false}, + {false, true, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, true, true, true, false} + }, + // j (ASCII 106) + { + {false, false, false, true, false}, + {false, false, false, false, false}, + {false, false, true, true, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {false, false, false, true, false}, + {true, false, false, true, false} + }, + // k (ASCII 107) + { + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, true, false}, + {true, false, true, false, false}, + {true, true, false, false, false}, + {true, false, true, false, false}, + {true, false, false, true, false} + }, + // l (ASCII 108) + { + {false, true, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, true, true, true, false} + }, + // m (ASCII 109) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, true, false, true, false}, + {true, false, true, false, true}, + {true, false, true, false, true}, + {true, false, true, false, true}, + {true, false, true, false, true} + }, + // n (ASCII 110) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, false, true, true, false}, + {true, true, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true} + }, + // o (ASCII 111) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, false} + }, + // p (ASCII 112) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, true, true, true, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, true, true, true, false}, + {true, false, false, false, false} + }, + // q (ASCII 113) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, true, true, false, true}, + {true, false, false, true, true}, + {true, false, false, false, true}, + {false, true, true, true, true}, + {false, false, false, false, true} + }, + // r (ASCII 114) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, false, true, true, false}, + {true, true, false, false, true}, + {true, false, false, false, false}, + {true, false, false, false, false}, + {true, false, false, false, false} + }, + // s (ASCII 115) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, true, true, true, false}, + {true, false, false, false, false}, + {false, true, true, true, false}, + {false, false, false, false, true}, + {true, true, true, true, false} + }, + // t (ASCII 116) + { + {false, true, false, false, false}, + {false, true, false, false, false}, + {true, true, true, true, false}, + {false, true, false, false, false}, + {false, true, false, false, false}, + {false, true, false, false, true}, + {false, false, true, true, false} + }, + // u (ASCII 117) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, true, true}, + {false, true, true, false, true} + }, + // v (ASCII 118) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, false, true, false}, + {false, false, true, false, false} + }, + // w (ASCII 119) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, true, false, true}, + {true, false, true, false, true}, + {false, true, false, true, false} + }, + // x (ASCII 120) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, false, false, false, true}, + {false, true, false, true, false}, + {false, false, true, false, false}, + {false, true, false, true, false}, + {true, false, false, false, true} + }, + // y (ASCII 121) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {true, false, false, false, true}, + {false, true, true, true, true}, + {false, false, false, false, true} + }, + // z (ASCII 122) + { + {false, false, false, false, false}, + {false, false, false, false, false}, + {true, true, true, true, true}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, true, false, false, false}, + {true, true, true, true, true} + }, + // { (ASCII 123) + { + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, true, false, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, false, true, false} + }, + // | (ASCII 124) + { + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false} + }, + // } (ASCII 125) + { + {false, true, false, false, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, false, false, true, false}, + {false, false, true, false, false}, + {false, false, true, false, false}, + {false, true, false, false, false} + }, + // ~ (ASCII 126) + { + {false, false, false, false, false}, + {false, true, false, false, false}, + {true, false, true, false, true}, + {false, false, false, true, false}, + {false, false, false, false, false}, + {false, false, false, false, false}, + {false, false, false, false, false} + } +}; \ No newline at end of file diff --git a/ledy.ino b/ledy.ino index 82f2739..35d2a94 100644 --- a/ledy.ino +++ b/ledy.ino @@ -3,10 +3,7 @@ #include #include #include "index.h" - -// For ESP8266, you would use: -// #include -// #include +#include "fonts.h" #ifdef __AVR__ #include // Required for 16 MHz Adafruit Trinket @@ -19,70 +16,63 @@ Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); -struct Pixel -{ - unsigned short x = 0; - unsigned short y = 0; - uint32_t color; -}; +unsigned char saved_images_count = 0; -Pixel new_image[PANEL_PIXEL_COUNT][PANEL_PIXEL_COUNT]; - -// dont change this -Pixel saved_imaged[12][16][16] = { +uint32_t saved_imaged[12][16][16] = { { { - {0, 0, 0xFF000000}, {1, 0, 0xFF000000}, {2, 0, 0xFF000000}, {3, 0, 0xFF000000}, {4, 0, 0xFF000000}, {5, 0, 0xFF000000}, {6, 0, 0xFF000000}, {7, 0, 0xFF000000}, {8, 0, 0xFF000000}, {9, 0, 0xFF000000}, {10, 0, 0xFF000000}, {11, 0, 0xFF000000}, {12, 0, 0xFF000000}, {13, 0, 0xFF000000}, {14, 0, 0xFF000000}, {15, 0, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000 }, { - {0, 1, 0xFF000000}, {1, 1, 0xFF000000}, {2, 1, 0xFF000000}, {3, 1, 0xFF000000}, {4, 1, 0xFF000000}, {5, 1, 0xFF000000}, {6, 1, 0xFF000000}, {7, 1, 0xFF000000}, {8, 1, 0xFF000000}, {9, 1, 0xFF000000}, {10, 1, 0xFF000000}, {11, 1, 0xFF000000}, {12, 1, 0xFF000000}, {13, 1, 0xFF000000}, {14, 1, 0xFF000000}, {15, 1, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000 }, { - {0, 2, 0xFF000000}, {1, 2, 0xFF000000}, {2, 2, 0xFF000000}, {3, 2, 0xFF000000}, {4, 2, 0xFF000000}, {5, 2, 0xFFFFFF00}, {6, 2, 0xFFFFFF00}, {7, 2, 0xFFFFFF00}, {8, 2, 0xFFFFFF00}, {9, 2, 0xFFFFFF00}, {10, 2, 0xFFFFFF00}, {11, 2, 0xFF000000}, {12, 2, 0xFF000000}, {13, 2, 0xFF000000}, {14, 2, 0xFF000000}, {15, 2, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000 }, { - {0, 3, 0xFF000000}, {1, 3, 0xFF000000}, {2, 3, 0xFF000000}, {3, 3, 0xFFFFFF00}, {4, 3, 0xFFFFFF00}, {5, 3, 0xFFFFFF00}, {6, 3, 0xFFFFFF00}, {7, 3, 0xFFFFFF00}, {8, 3, 0xFFFFFF00}, {9, 3, 0xFFFFFF00}, {10, 3, 0xFFFFFF00}, {11, 3, 0xFFFFFF00}, {12, 3, 0xFFFFFF00}, {13, 3, 0xFF000000}, {14, 3, 0xFF000000}, {15, 3, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFF000000 }, { - {0, 4, 0xFF000000}, {1, 4, 0xFF000000}, {2, 4, 0xFF000000}, {3, 4, 0xFFFFFF00}, {4, 4, 0xFFFFFF00}, {5, 4, 0xFFFFFF00}, {6, 4, 0xFFFFFF00}, {7, 4, 0xFFFFFF00}, {8, 4, 0xFFFFFF00}, {9, 4, 0xFFFFFF00}, {10, 4, 0xFFFFFF00}, {11, 4, 0xFFFFFF00}, {12, 4, 0xFFFFFF00}, {13, 4, 0xFF000000}, {14, 4, 0xFF000000}, {15, 4, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFF000000 }, { - {0, 5, 0xFF000000}, {1, 5, 0xFF000000}, {2, 5, 0xFFFFFF00}, {3, 5, 0xFFFFFF00}, {4, 5, 0xFF000000}, {5, 5, 0xFF000000}, {6, 5, 0xFFFFFF00}, {7, 5, 0xFFFFFF00}, {8, 5, 0xFFFFFF00}, {9, 5, 0xFFFFFF00}, {10, 5, 0xFF000000}, {11, 5, 0xFF000000}, {12, 5, 0xFFFFFF00}, {13, 5, 0xFFFFFF00}, {14, 5, 0xFF000000}, {15, 5, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000 }, { - {0, 6, 0xFF000000}, {1, 6, 0xFF000000}, {2, 6, 0xFFFFFF00}, {3, 6, 0xFFFFFF00}, {4, 6, 0xFF000000}, {5, 6, 0xFF000000}, {6, 6, 0xFFFFFF00}, {7, 6, 0xFFFFFF00}, {8, 6, 0xFFFFFF00}, {9, 6, 0xFFFFFF00}, {10, 6, 0xFF000000}, {11, 6, 0xFF000000}, {12, 6, 0xFFFFFF00}, {13, 6, 0xFFFFFF00}, {14, 6, 0xFF000000}, {15, 6, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000 }, { - {0, 7, 0xFF000000}, {1, 7, 0xFF000000}, {2, 7, 0xFFFFFF00}, {3, 7, 0xFFFFFF00}, {4, 7, 0xFF000000}, {5, 7, 0xFF000000}, {6, 7, 0xFFFFFF00}, {7, 7, 0xFFFFFF00}, {8, 7, 0xFFFFFF00}, {9, 7, 0xFFFFFF00}, {10, 7, 0xFF000000}, {11, 7, 0xFF000000}, {12, 7, 0xFFFFFF00}, {13, 7, 0xFFFFFF00}, {14, 7, 0xFF000000}, {15, 7, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000 }, { - {0, 8, 0xFF000000}, {1, 8, 0xFF000000}, {2, 8, 0xFFFFFF00}, {3, 8, 0xFFFFFF00}, {4, 8, 0xFFFFFF00}, {5, 8, 0xFFFFFF00}, {6, 8, 0xFFFFFF00}, {7, 8, 0xFFFFFF00}, {8, 8, 0xFFFFFF00}, {9, 8, 0xFFFFFF00}, {10, 8, 0xFFFFFF00}, {11, 8, 0xFFFFFF00}, {12, 8, 0xFFFFFF00}, {13, 8, 0xFFFFFF00}, {14, 8, 0xFF000000}, {15, 8, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000 }, { - {0, 9, 0xFF000000}, {1, 9, 0xFF000000}, {2, 9, 0xFFFFFF00}, {3, 9, 0xFFFFFF00}, {4, 9, 0xFFFFFF00}, {5, 9, 0xFFFFFF00}, {6, 9, 0xFFFFFF00}, {7, 9, 0xFFFFFF00}, {8, 9, 0xFF000000}, {9, 9, 0xFF000000}, {10, 9, 0xFFFFFF00}, {11, 9, 0xFFFFFF00}, {12, 9, 0xFFFFFF00}, {13, 9, 0xFFFFFF00}, {14, 9, 0xFF000000}, {15, 9, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000 }, { - {0, 10, 0xFF000000}, {1, 10, 0xFF000000}, {2, 10, 0xFFFFFF00}, {3, 10, 0xFFFFFF00}, {4, 10, 0xFFFFFF00}, {5, 10, 0xFFFFFF00}, {6, 10, 0xFFFFFF00}, {7, 10, 0xFF000000}, {8, 10, 0xFF000000}, {9, 10, 0xFFFFFF00}, {10, 10, 0xFF000000}, {11, 10, 0xFFFFFF00}, {12, 10, 0xFFFFFF00}, {13, 10, 0xFFFFFF00}, {14, 10, 0xFF000000}, {15, 10, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000 }, { - {0, 11, 0xFF000000}, {1, 11, 0xFF000000}, {2, 11, 0xFF000000}, {3, 11, 0xFFFFFF00}, {4, 11, 0xFFFFFF00}, {5, 11, 0xFFFFFF00}, {6, 11, 0xFFFFFF00}, {7, 11, 0xFF000000}, {8, 11, 0xFF000000}, {9, 11, 0xFFFFFF00}, {10, 11, 0xFF000000}, {11, 11, 0xFFFFFF00}, {12, 11, 0xFFFFFF00}, {13, 11, 0xFF000000}, {14, 11, 0xFF000000}, {15, 11, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFF000000 }, { - {0, 12, 0xFF000000}, {1, 12, 0xFF000000}, {2, 12, 0xFF000000}, {3, 12, 0xFFFFFF00}, {4, 12, 0xFFFFFF00}, {5, 12, 0xFFFFFF00}, {6, 12, 0xFFFFFF00}, {7, 12, 0xFFFFFF00}, {8, 12, 0xFF000000}, {9, 12, 0xFF000000}, {10, 12, 0xFFFFFF00}, {11, 12, 0xFFFFFF00}, {12, 12, 0xFFFFFF00}, {13, 12, 0xFF000000}, {14, 12, 0xFF000000}, {15, 12, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFF000000 }, { - {0, 13, 0xFF000000}, {1, 13, 0xFF000000}, {2, 13, 0xFF000000}, {3, 13, 0xFF000000}, {4, 13, 0xFF000000}, {5, 13, 0xFFFFFF00}, {6, 13, 0xFFFFFF00}, {7, 13, 0xFFFFFF00}, {8, 13, 0xFFFFFF00}, {9, 13, 0xFFFFFF00}, {10, 13, 0xFFFFFF00}, {11, 13, 0xFF000000}, {12, 13, 0xFF000000}, {13, 13, 0xFF000000}, {14, 13, 0xFF000000}, {15, 13, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000 }, { - {0, 14, 0xFF000000}, {1, 14, 0xFF000000}, {2, 14, 0xFF000000}, {3, 14, 0xFF000000}, {4, 14, 0xFF000000}, {5, 14, 0xFF000000}, {6, 14, 0xFF000000}, {7, 14, 0xFF000000}, {8, 14, 0xFF000000}, {9, 14, 0xFF000000}, {10, 14, 0xFF000000}, {11, 14, 0xFF000000}, {12, 14, 0xFF000000}, {13, 14, 0xFF000000}, {14, 14, 0xFF000000}, {15, 14, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000 }, { - {0, 15, 0xFF000000}, {1, 15, 0xFF000000}, {2, 15, 0xFF000000}, {3, 15, 0xFF000000}, {4, 15, 0xFF000000}, {5, 15, 0xFF000000}, {6, 15, 0xFF000000}, {7, 15, 0xFF000000}, {8, 15, 0xFF000000}, {9, 15, 0xFF000000}, {10, 15, 0xFF000000}, {11, 15, 0xFF000000}, {12, 15, 0xFF000000}, {13, 15, 0xFF000000}, {14, 15, 0xFF000000}, {15, 15, 0xFF000000} + 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000 } } }; -void setPixel(unsigned short x, unsigned short y, uint32_t color) + +void setPixel(unsigned short y, unsigned short x, uint32_t color) { if (y % 2 == 1) { @@ -91,48 +81,35 @@ void setPixel(unsigned short x, unsigned short y, uint32_t color) pixels.setPixelColor(x + (y * PANEL_PIXEL_COUNT), color); } -Pixel getPixelFromSaved(unsigned char i, int row, int col) -{ - return saved_imaged[i][row][col]; -} - -Pixel getPixel(int row, int col) -{ - return new_image[row][col]; -} - -void drawImageFromArr(int offset_x, int offset_y) { +void drawImageFromSaved(unsigned short offset_x, unsigned short offset_y, unsigned char i) { for (int row = 0; row < 16; row++) { for (int col = 0; col < 16; col++) { - Pixel px = getPixel(row, col); - if (px.color == 0) { + uint32_t px_color = saved_imaged[i][row][col]; + if (!px_color) { continue; } - - int pixel_x = px.x + offset_x; - int pixel_y = px.y + offset_y; + unsigned short pixel_x = col + offset_x; + unsigned short pixel_y = row + offset_y; if (pixel_x >= 0 && pixel_x < PANEL_PIXEL_COUNT && pixel_y >= 0 && pixel_y < PANEL_PIXEL_COUNT) { - setPixel(pixel_x, pixel_y, px.color); + setPixel(pixel_x, pixel_y, px_color); } } } } -void drawImageFromSaved(int offset_x, int offset_y, unsigned char i) { - for (int row = 0; row < 16; row++) { - for (int col = 0; col < 16; col++) { - Pixel px = getPixelFromSaved(i, row, col); - if (px.color == 0) { - continue; - } - int pixel_x = px.x + offset_x; - int pixel_y = px.y + offset_y; - - if (pixel_x >= 0 && pixel_x < PANEL_PIXEL_COUNT && - pixel_y >= 0 && pixel_y < PANEL_PIXEL_COUNT) { - setPixel(pixel_x, pixel_y, px.color); +void drawCharacter(const bool (*character)[5], unsigned char offset_x, unsigned char offset_y, uint32_t color) { + for (unsigned char row = 0; row < 7; row++) { + for (unsigned char col = 0; col < 5; col++) { + if (character[row][col]) { + unsigned short pixel_x = col + offset_x; + unsigned short pixel_y = row + offset_y; + + if (pixel_x >= 0 && pixel_x < PANEL_PIXEL_COUNT && + pixel_y >= 0 && pixel_y < PANEL_PIXEL_COUNT) { + setPixel(pixel_x, pixel_y, color); + } } } } @@ -140,13 +117,16 @@ void drawImageFromSaved(int offset_x, int offset_y, unsigned char i) { void setup() { Serial.begin(115200); + pixels.begin(); pixels.clear(); + + drawCharacter(font7x5[0], 7, 5, 0xFFFFFFFF); + pixels.show(); - drawImageFromSaved(0, 0, 0); start_server(); } void loop() { handle_server(); -} +} \ No newline at end of file diff --git a/maker.html b/maker.html new file mode 100644 index 0000000..2348daf --- /dev/null +++ b/maker.html @@ -0,0 +1,178 @@ + + + + + + + + +
+ +
+ + + +
+ + + + + + diff --git a/server.ino b/server.ino index aa13007..57dc059 100644 --- a/server.ino +++ b/server.ino @@ -1,8 +1,21 @@ +#include +#include +#include + const char* ssid = "PPIA"; const char* password = "pawelpdaldonejta"; WebServer server(80); +// Declare the new_image buffer to temporarily store uploaded image +struct Pixel { + unsigned short x; + unsigned short y; + uint32_t color; +}; + +Pixel new_image[16][16]; + void handleRoot() { server.send(200, "text/html", index_html); } @@ -20,15 +33,27 @@ void handleUpload() { for (JsonVariant val : arr) { int col = 0; for (JsonVariant val2 : val.as()) { - long color = strtol(val2.as(), NULL, 16); + unsigned long color = strtoul(val2.as(), NULL, 16); new_image[row][col] = { (unsigned short)col, (unsigned short)row, (uint32_t)color }; col++; } row++; } + // Save the new image to the next slot + if (saved_images_count < 11) { // Ensure we don't overflow (max index is 11) + saved_images_count++; + } + + // Copy new_image data to saved_imaged array + for (int r = 0; r < 16; r++) { + for (int c = 0; c < 16; c++) { + saved_imaged[saved_images_count][r][c] = new_image[r][c].color; + } + } + pixels.clear(); - drawImageFromArr(0, 0); + drawImageFromSaved(0, 0, saved_images_count); pixels.show(); server.send(200, "text/plain", "OK"); } @@ -57,4 +82,4 @@ void start_server() { void handle_server() { server.handleClient(); -} \ No newline at end of file +}