From b45d849da8aa5bb67931c2dd6b0335660cea378b Mon Sep 17 00:00:00 2001 From: silvinor <366673+silvinor@users.noreply.github.com> Date: Sat, 3 May 2025 11:16:06 +1000 Subject: [PATCH] post @waffle87 recommendations --- keyboards/binepad/candypad/candypad.c | 3 +- keyboards/binepad/candypad/candypad_oled.c | 6 - keyboards/binepad/candypad/config.h | 9 +- keyboards/binepad/candypad/glcdfont.c | 3 +- keyboards/binepad/candypad/keyboard.json | 227 ++++++++++++++++++--- keyboards/binepad/candypad/readme.md | 2 +- keyboards/binepad/candypad/rules.mk | 4 - 7 files changed, 205 insertions(+), 49 deletions(-) diff --git a/keyboards/binepad/candypad/candypad.c b/keyboards/binepad/candypad/candypad.c index c2afcda3304..7362385d3ab 100644 --- a/keyboards/binepad/candypad/candypad.c +++ b/keyboards/binepad/candypad/candypad.c @@ -23,12 +23,11 @@ void housekeeping_task_kb(void) { oled_repaint_requested = true; } } - housekeeping_task_user(); } void suspend_wakeup_init_kb(void) { - suspend_wakeup_init_user(); oled_on(); + suspend_wakeup_init_user(); } #endif // OLED_ENABLE diff --git a/keyboards/binepad/candypad/candypad_oled.c b/keyboards/binepad/candypad/candypad_oled.c index 99caa62ec66..3d335b30508 100644 --- a/keyboards/binepad/candypad/candypad_oled.c +++ b/keyboards/binepad/candypad/candypad_oled.c @@ -4,13 +4,7 @@ // work on the Satisfaction75 #include "candypad.h" -#include "oled_driver.h" #include "keymap_introspection.h" -#include // needed for `snprintf` -#ifdef CONSOLE_ENABLE -# include "print.h" -# include "debug.h" -#endif #ifdef OLED_ENABLE diff --git a/keyboards/binepad/candypad/config.h b/keyboards/binepad/candypad/config.h index 49d3a11af4d..80eb26b062b 100644 --- a/keyboards/binepad/candypad/config.h +++ b/keyboards/binepad/candypad/config.h @@ -14,18 +14,15 @@ # define I2C_DRIVER I2CD1 /* Configure oled driver for the 128x32 oled */ -# define OLED_DISPLAY_128X32 # define OLED_TIMEOUT (15 * 60 * 1000) // 15 minutes -# define OLED_BRIGHTNESS 128 # define OLED_UPDATE_INTERVAL 33 // ~30fps /* Font */ -# define OLED_FONT_H "glcdfont.c" -# define OLED_FONT_WIDTH 6 -# define OLED_FONT_HEIGHT 8 +# define OLED_FONT_H "keyboards/binepad/candypad/glcdfont.c" +# define OLED_FONT_END 127 #endif // OLED_ENABLE -/* ---- Direct pins, for use in `matrix.c` (please read that file) ----- */ +/* ---- Direct pins, for use in (custom) `matrix.c` (please read that file) ----- */ // *NB*: DIRECT_PINS_CUSTOM must match the MATRIX_ROWS / MATRIX_COLS matrix structure // clang-format off #define DIRECT_PINS_CUSTOM \ diff --git a/keyboards/binepad/candypad/glcdfont.c b/keyboards/binepad/candypad/glcdfont.c index b11ef12d032..3564aa0a7c9 100644 --- a/keyboards/binepad/candypad/glcdfont.c +++ b/keyboards/binepad/candypad/glcdfont.c @@ -4,6 +4,7 @@ #include "progmem.h" /* based on https://lexus2k.github.io/ssd1306/ssd1306__fonts_8c_source.html, chars 32 - 127 */ +/* generated and tested on https://joric.github.io/qle/ */ // clang-format off static const unsigned char PROGMEM font[] = { 0xFF, 0x81, 0x81, 0x81, 0x81, 0xFF, @@ -38,7 +39,7 @@ static const unsigned char PROGMEM font[] = { 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // by @lexus2k form here down 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, diff --git a/keyboards/binepad/candypad/keyboard.json b/keyboards/binepad/candypad/keyboard.json index cc8c8b3eeb8..1ad030d74e9 100644 --- a/keyboards/binepad/candypad/keyboard.json +++ b/keyboards/binepad/candypad/keyboard.json @@ -15,46 +15,215 @@ "extrakey": true, "mousekey": true, "nkro": true, - "encoder": true + "encoder": true, + "oled": true }, "diode_direction": "COL2ROW", "matrix_pins": { - "cols": ["GP15", "GP14", "GP13", "GP10"], - "rows": ["GP12", "GP9", "GP7", "GP6", "GP5", null] + "cols": [ + "GP15", + "GP14", + "GP13", + "GP10" + ], + "rows": [ + "GP12", + "GP9", + "GP7", + "GP6", + "GP5", + null + ] }, "encoder": { "rotary": [ - {"pin_a": "GP28", "pin_b": "GP27"}, - {"pin_a": "GP1", "pin_b": "GP2"} + { + "pin_a": "GP28", + "pin_b": "GP27" + }, + { + "pin_a": "GP1", + "pin_b": "GP2" + } ] }, "layouts": { "LAYOUT": { "layout": [ - { "matrix": [0, 0], "label": "Num Lock", "x": 0, "y": 1}, - { "matrix": [0, 1], "label": "/", "x": 1, "y": 1}, - { "matrix": [0, 2], "label": "*", "x": 2, "y": 1}, - { "matrix": [0, 3], "label": "-", "x": 3, "y": 1}, - - { "matrix": [1, 0], "label": "7", "x": 0, "y": 2}, - { "matrix": [1, 1], "label": "8", "x": 1, "y": 2}, - { "matrix": [1, 2], "label": "9", "x": 2, "y": 2}, - { "matrix": [1, 3], "label": "+", "x": 3, "y": 2, "h": 2}, - - { "matrix": [2, 0], "label": "4", "x": 0, "y": 3}, - { "matrix": [2, 1], "label": "5", "x": 1, "y": 3}, - { "matrix": [2, 2], "label": "6", "x": 2, "y": 3}, - - { "matrix": [3, 0], "label": "1", "x": 0, "y": 4}, - { "matrix": [3, 1], "label": "2", "x": 1, "y": 4}, - { "matrix": [3, 2], "label": "3", "x": 2, "y": 4}, - { "matrix": [3, 3], "label": "Enter", "x": 3, "y": 4, "h": 2}, - - { "matrix": [4, 0], "label": "0", "x": 0, "y": 5, "w": 2}, - { "matrix": [4, 2], "label": ".", "x": 2, "y": 5}, - - { "matrix": [5, 0], "label": "", "x": 2, "y": 0}, - { "matrix": [5, 1], "label": "", "x": 3, "y": 0} + { + "matrix": [ + 5, + 0 + ], + "label": "", + "x": 2, + "y": 0 + }, + { + "matrix": [ + 5, + 1 + ], + "label": "", + "x": 3, + "y": 0 + }, + { + "matrix": [ + 0, + 0 + ], + "label": "Num Lock", + "x": 0, + "y": 1 + }, + { + "matrix": [ + 0, + 1 + ], + "label": "/", + "x": 1, + "y": 1 + }, + { + "matrix": [ + 0, + 2 + ], + "label": "*", + "x": 2, + "y": 1 + }, + { + "matrix": [ + 0, + 3 + ], + "label": "-", + "x": 3, + "y": 1 + }, + { + "matrix": [ + 1, + 0 + ], + "label": "7", + "x": 0, + "y": 2 + }, + { + "matrix": [ + 1, + 1 + ], + "label": "8", + "x": 1, + "y": 2 + }, + { + "matrix": [ + 1, + 2 + ], + "label": "9", + "x": 2, + "y": 2 + }, + { + "matrix": [ + 1, + 3 + ], + "label": "+", + "x": 3, + "y": 2, + "h": 2 + }, + { + "matrix": [ + 2, + 0 + ], + "label": "4", + "x": 0, + "y": 3 + }, + { + "matrix": [ + 2, + 1 + ], + "label": "5", + "x": 1, + "y": 3 + }, + { + "matrix": [ + 2, + 2 + ], + "label": "6", + "x": 2, + "y": 3 + }, + { + "matrix": [ + 3, + 0 + ], + "label": "1", + "x": 0, + "y": 4 + }, + { + "matrix": [ + 3, + 1 + ], + "label": "2", + "x": 1, + "y": 4 + }, + { + "matrix": [ + 3, + 2 + ], + "label": "3", + "x": 2, + "y": 4 + }, + { + "matrix": [ + 3, + 3 + ], + "label": "Enter", + "x": 3, + "y": 4, + "h": 2 + }, + { + "matrix": [ + 4, + 0 + ], + "label": "0", + "x": 0, + "y": 5, + "w": 2 + }, + { + "matrix": [ + 4, + 2 + ], + "label": ".", + "x": 2, + "y": 5 + } ] } } diff --git a/keyboards/binepad/candypad/readme.md b/keyboards/binepad/candypad/readme.md index d2c1944e8ba..dd64ebbaf8f 100644 --- a/keyboards/binepad/candypad/readme.md +++ b/keyboards/binepad/candypad/readme.md @@ -26,4 +26,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0:0) in the matrix (the top left key) and plug in the keyboard * **Physical reset button**: Briefly press the PCB button located on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` or `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/binepad/candypad/rules.mk b/keyboards/binepad/candypad/rules.mk index c73142b210c..d0d3e2f4473 100644 --- a/keyboards/binepad/candypad/rules.mk +++ b/keyboards/binepad/candypad/rules.mk @@ -3,10 +3,6 @@ CUSTOM_MATRIX = yes -OLED_ENABLE = yes -OLED_DRIVER = ssd1306 -OLED_TRANSPORT = i2c - SRC += matrix.c \ candypad_oled.c