Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions keyboards/morisoba/bitdeck10/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*
* config.h keymap configuration for BitDeck10
* Copyright (C) 2026 morisoba
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

#define I2C1_SDA_PIN GP6
#define I2C1_SCL_PIN GP7
#define OLED_FONT_H "keyboards/morisoba/bitdeck10/glcdfont.c"
#define ENCODER_MAP_KEY_DELAY 10
260 changes: 260 additions & 0 deletions keyboards/morisoba/bitdeck10/glcdfont.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,260 @@
/*
* glcdfont.c OLED font data
* Copyright (C) 2025 QMK
* Copyright (C) 2026 morisoba
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/

#include "progmem.h"

/**
* QMK 6x8 Font for LCD and OLED displays
*
* Derived from the first half of the Adafruit GFX Library font:
* https://github.com/adafruit/Adafruit-GFX-Library
*
* The first 128 characters match that of code page 437, the character set used by the original IBM PC, which includes all printable ASCII characters.
* Each byte represents a column of 8 pixels, with the least significant bit being the top of the glyph.
*
* A large 19x2 character BitDeck10 logo is encoded from 0x80-0x92 and 0xA0-0xB2.
* 1x1 character key and encoder status are encoded from 0xC0-0xC6.
* 2x2 character OS logos for Apple, Windows, Linux and Android are encoded from 0x95-0x9C and 0xB5-0xBC.
*/
static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
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, 0x5F, 0x00, 0x00, 0x00,
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3,
0xC3, 0xC3, 0xC3, 0xC3, 0x3C, 0x3C,
0x00, 0xC0, 0xC0, 0xCC, 0xCC, 0xCC,
0xCC, 0x00, 0x30, 0x30, 0x30, 0x30,
0xFC, 0xFC, 0xFC, 0xFC, 0x30, 0x30,
0x30, 0x30, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0x03, 0x03, 0x03, 0x03, 0x0F,
0x0F, 0xFC, 0xFC, 0xF0, 0xF0, 0x00,
0xC0, 0xC0, 0xF0, 0xF0, 0x30, 0x30,
0x30, 0x30, 0xF0, 0xF0, 0xC0, 0xC0,
0x00, 0xC0, 0xC0, 0xF0, 0xF0, 0x30,
0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0,
0xC0, 0x00, 0xFC, 0xFC, 0xFC, 0xFC,
0x00, 0x00, 0xC0, 0xC0, 0xF0, 0xF0,
0x30, 0x30, 0x00, 0x00, 0x00, 0x0C,
0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x00, 0x00, 0xF0, 0xF0, 0xFC,
0xFC, 0x03, 0x03, 0x03, 0x03, 0x0F,
0x0F, 0xFC, 0xFC, 0xF0, 0xF0, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x3F, 0x3F, 0x3F, 0x30, 0x30,
0x30, 0x30, 0x30, 0x30, 0x0F, 0x0F,
0x00, 0x30, 0x30, 0x3F, 0x3F, 0x3F,
0x3F, 0x30, 0x30, 0x00, 0x00, 0x00,
0x0F, 0x0F, 0x3F, 0x3F, 0x30, 0x30,
0x30, 0x30, 0x00, 0x3F, 0x3F, 0x3F,
0x3F, 0x30, 0x30, 0x30, 0x30, 0x3C,
0x3C, 0x0F, 0x0F, 0x03, 0x03, 0x00,
0x0F, 0x0F, 0x3F, 0x3F, 0x33, 0x33,
0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
0x00, 0x0F, 0x0F, 0x3F, 0x3F, 0x30,
0x30, 0x30, 0x30, 0x3C, 0x3C, 0x0C,
0x0C, 0x00, 0x3F, 0x3F, 0x3F, 0x3F,
0x03, 0x03, 0x0F, 0x0F, 0x3C, 0x3C,
0x30, 0x30, 0x00, 0x30, 0x30, 0x30,
0x30, 0x3F, 0x3F, 0x3F, 0x3F, 0x30,
0x30, 0x30, 0x30, 0x03, 0x03, 0x0F,
0x0F, 0x3C, 0x3C, 0x30, 0x30, 0x30,
0x30, 0x0F, 0x0F, 0x03, 0x03, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF8, 0x86, 0x82, 0x82, 0x86, 0xF8,
0xE0, 0xF8, 0xF8, 0xF8, 0xF8, 0xE0,
0x00, 0x7E, 0xDB, 0xBF, 0xDB, 0x7E,
0x00, 0x7E, 0xDD, 0xBF, 0xDD, 0x7E,
0x00, 0x7E, 0xD7, 0xBF, 0xD7, 0x7E,
0x00, 0x7C, 0xF6, 0x9E, 0xF6, 0x7C,
0x00, 0x7C, 0xFA, 0x9E, 0xFA, 0x7C,
0x00, 0x7C, 0xEE, 0x9E, 0xEE, 0x7C,
0x7E, 0x81, 0x24, 0x40, 0x24, 0x81,
0x7E, 0x81, 0x22, 0x40, 0x22, 0x81,
0x7E, 0x81, 0x28, 0x40, 0x28, 0x81,
0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 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, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
49 changes: 49 additions & 0 deletions keyboards/morisoba/bitdeck10/keyboard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"manufacturer": "morisoba",
"keyboard_name": "morisoba/bitdeck10",
"maintainer": "morisobaR",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"keycode_string": true,
"mousekey": true,
"nkro": true,
"oled": true
Comment thread
drashna marked this conversation as resolved.
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP2"],
"rows": ["GP26", "GP27", "GP28", "GP29"]
},
"processor": "RP2040",
"url": "https://github.com/morisobaR/BitDeck10",
"usb": {
"device_version": "1.0.0",
"vid": "0xFEED",
"pid": "0xB001"
},
"encoder": {
"rotary": [
{ "pin_a": "GP4", "pin_b": "GP3", "resolution": 2 }
]
},
"layouts": {
"LAYOUT": {
"layout": [
{ "x": 4, "y": 0, "matrix": [ 3, 2 ] },
{ "x": 0, "y": 1, "matrix": [ 0, 0 ] },
{ "x": 1, "y": 1, "matrix": [ 1, 0 ] },
{ "x": 2, "y": 1, "matrix": [ 2, 0 ] },
{ "x": 3, "y": 1, "matrix": [ 3, 0 ] },
{ "x": 4, "y": 1, "matrix": [ 0, 1 ] },
{ "x": 0, "y": 2, "matrix": [ 1, 1 ] },
{ "x": 1, "y": 2, "matrix": [ 2, 1 ] },
{ "x": 2, "y": 2, "matrix": [ 3, 1 ] },
{ "x": 3, "y": 2, "matrix": [ 0, 2 ] },
{ "x": 4, "y": 2, "matrix": [ 1, 2 ] }
]
}
}
}
Loading