From e1f0b5147d6edd626b9e177dd482687331638a6f Mon Sep 17 00:00:00 2001 From: Orangerot Date: Mon, 6 Jan 2025 04:07:55 +0100 Subject: feat: add sample QMK firmware --- geeboard_firmware/qmk/keyboard.json | 77 ++++++++++++++++++++++++++ geeboard_firmware/qmk/keymaps/default/keymap.c | 24 ++++++++ geeboard_firmware/qmk/readme.md | 27 +++++++++ 3 files changed, 128 insertions(+) create mode 100644 geeboard_firmware/qmk/keyboard.json create mode 100644 geeboard_firmware/qmk/keymaps/default/keymap.c create mode 100644 geeboard_firmware/qmk/readme.md (limited to 'geeboard_firmware/qmk') diff --git a/geeboard_firmware/qmk/keyboard.json b/geeboard_firmware/qmk/keyboard.json new file mode 100644 index 0000000..25a446e --- /dev/null +++ b/geeboard_firmware/qmk/keyboard.json @@ -0,0 +1,77 @@ +{ + "manufacturer": "Gero Beckmann", + "keyboard_name": "geeboard", + "maintainer": "Orangerot", + "development_board": "kb2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP19", "GP27"], + "rows": ["GP0", "GP20", "GP18", "GP26"] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 11], "x": 11, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3}, + {"matrix": [3, 9], "x": 9, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3} + ] + } + } +} diff --git a/geeboard_firmware/qmk/keymaps/default/keymap.c b/geeboard_firmware/qmk/keymaps/default/keymap.c new file mode 100644 index 0000000..9a901fc --- /dev/null +++ b/geeboard_firmware/qmk/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ K │ L │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ K │ L │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ K │ L │ + * ├───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┼───┤ + * │ A │ B │ C │ D │ E │ │ H │ I │ J │ K │ L │ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, KC_K, KC_L, + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, KC_K, KC_L, + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, KC_K, KC_L, + KC_A, KC_B, KC_C, KC_D, KC_E, KC_H, KC_I, KC_J, KC_K, KC_L + ) +}; diff --git a/geeboard_firmware/qmk/readme.md b/geeboard_firmware/qmk/readme.md new file mode 100644 index 0000000..13db351 --- /dev/null +++ b/geeboard_firmware/qmk/readme.md @@ -0,0 +1,27 @@ +# geeboard + +![geeboard](imgur.com image replace me!) + +*A short description of the keyboard/project* + +* Keyboard Maintainer: [Gero Beckmann](https://github.com/Orangerot) +* Hardware Supported: *The PCBs, controllers supported* +* Hardware Availability: *Links to where you can find this hardware* + +Make example for this keyboard (after setting up your build environment): + + make geeboard:default + +Flashing example for this keyboard: + + make geeboard:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -- cgit v1.2.3