From 3f66e25b41cdb9192f1a9efb2771fed36559afb0 Mon Sep 17 00:00:00 2001
From: Nabos <9805355+nab-os@users.noreply.github.com>
Date: Wed, 13 Apr 2022 08:03:49 +0200
Subject: [PATCH] [Keyboard] add 10k (#16531)

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nicolas Ballet <balletn@igbmc.fr>
---
 keyboards/handwired/10k/10k.c                 | 18 ++++++++
 keyboards/handwired/10k/10k.h                 | 20 ++++++++
 keyboards/handwired/10k/config.h              | 24 ++++++++++
 keyboards/handwired/10k/info.json             | 46 +++++++++++++++++++
 .../handwired/10k/keymaps/default/keymap.c    | 42 +++++++++++++++++
 keyboards/handwired/10k/keymaps/via/keymap.c  | 42 +++++++++++++++++
 keyboards/handwired/10k/keymaps/via/rules.mk  |  1 +
 keyboards/handwired/10k/readme.md             | 24 ++++++++++
 keyboards/handwired/10k/rules.mk              |  8 ++++
 9 files changed, 225 insertions(+)
 create mode 100644 keyboards/handwired/10k/10k.c
 create mode 100644 keyboards/handwired/10k/10k.h
 create mode 100644 keyboards/handwired/10k/config.h
 create mode 100644 keyboards/handwired/10k/info.json
 create mode 100644 keyboards/handwired/10k/keymaps/default/keymap.c
 create mode 100644 keyboards/handwired/10k/keymaps/via/keymap.c
 create mode 100644 keyboards/handwired/10k/keymaps/via/rules.mk
 create mode 100644 keyboards/handwired/10k/readme.md
 create mode 100644 keyboards/handwired/10k/rules.mk

diff --git a/keyboards/handwired/10k/10k.c b/keyboards/handwired/10k/10k.c
new file mode 100644
index 0000000000..bd0babd956
--- /dev/null
+++ b/keyboards/handwired/10k/10k.c
@@ -0,0 +1,18 @@
+/*
+Copyright 2022 Nabos <nabos at glargh dot fr>
+
+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 2 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 <http://www.gnu.org/licenses/>.
+*/
+#include "10k.h"
+
diff --git a/keyboards/handwired/10k/10k.h b/keyboards/handwired/10k/10k.h
new file mode 100644
index 0000000000..8fbabcf6ca
--- /dev/null
+++ b/keyboards/handwired/10k/10k.h
@@ -0,0 +1,20 @@
+/*
+Copyright 2022 Nabos <nabos at glargh dot fr>
+
+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 2 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 <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#include "quantum.h"
+
diff --git a/keyboards/handwired/10k/config.h b/keyboards/handwired/10k/config.h
new file mode 100644
index 0000000000..4ec6d94128
--- /dev/null
+++ b/keyboards/handwired/10k/config.h
@@ -0,0 +1,24 @@
+/*
+Copyright 2022 Nabos <nabos at glargh dot fr>
+
+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 2 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 <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+#include "config_common.h"
+
+/* Enables This makes it easier for fast typists to use dual-function keys */
+#define PERMISSIVE_HOLD
+
+#define USE_I2C
+#define MASTER_RIGHT
diff --git a/keyboards/handwired/10k/info.json b/keyboards/handwired/10k/info.json
new file mode 100644
index 0000000000..7601788ddc
--- /dev/null
+++ b/keyboards/handwired/10k/info.json
@@ -0,0 +1,46 @@
+{
+  "keyboard_name": "10k",
+  "maintainer": "Nabos",
+  "manufacturer": "Nabos",
+  "debounce": 5,
+  "diode_direction": "COL2ROW",
+  "matrix_pins": {
+    "cols": ["C6", "D7", "E6", "B4", "B5"],
+    "rows": ["B6"]
+  },
+  "features": {
+    "audio": false,
+    "backlight": false,
+    "bootmagic": false,
+    "command": false,
+    "console": false,
+    "extrakey": false,
+    "mousekey": false,
+    "nkro": false,
+    "rgblight": false
+  },
+  "usb": {
+    "vid": "0x6869",
+    "pid": "0x0001",
+    "device_version": "0.0.1"
+  },
+  "layout_aliases": {
+    "LAYOUT": "LAYOUT_split_1x5"
+  },
+  "layouts": {
+    "LAYOUT_split_1x5": {
+      "layout": [
+        {"label": "L00", "matrix": [0, 0], "x":0.4295, "y":1.011},
+        {"label": "L01", "matrix": [0, 1], "x":1.445, "y":0.819},
+        {"label": "L02", "matrix": [0, 2], "x":2.5385, "y":0.7555},
+        {"label": "L03", "matrix": [0, 3], "x":3.568, "y":1.3745},
+        {"label": "L04", "matrix": [0, 4], "x":4.2, "y":3.987},
+        {"label": "R00", "matrix": [1, 0], "x":5.2, "y":3.987},
+        {"label": "R01", "matrix": [1, 1], "x":5.832, "y":1.3745},
+        {"label": "R02", "matrix": [1, 2], "x":6.8615, "y":0.7555},
+        {"label": "R03", "matrix": [1, 3], "x":7.955, "y":0.819},
+        {"label": "R04", "matrix": [1, 4], "x":8.9705, "y":1.011}
+      ]
+    }
+  }
+}
diff --git a/keyboards/handwired/10k/keymaps/default/keymap.c b/keyboards/handwired/10k/keymaps/default/keymap.c
new file mode 100644
index 0000000000..3bbcff563c
--- /dev/null
+++ b/keyboards/handwired/10k/keymaps/default/keymap.c
@@ -0,0 +1,42 @@
+/*
+Copyright 2022 Nabos <nabos at glargh dot fr>
+
+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 2 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 <http://www.gnu.org/licenses/>.
+*/
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+  _QWERTY,
+  _LOWER,
+  _RAISE,
+  _ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_QWERTY] = LAYOUT_split_1x5(
+       KC_A  , KC_S  , KC_D  , KC_F  ,KC_SPC ,              KC_SPC , KC_J  , KC_K  , KC_L  ,KC_SCLN
+  ),
+
+  [_LOWER] = LAYOUT_split_1x5(
+      _______,_______,_______,_______,_______,              _______,_______,_______,_______,_______
+  ),
+
+  [_RAISE] = LAYOUT_split_1x5(
+      _______,_______,_______,_______,_______,              _______,_______,_______,_______,_______
+  ),
+
+  [_ADJUST] = LAYOUT_split_1x5(
+      _______,_______,_______,_______,_______,              _______,_______,_______,_______,_______
+  )
+};
diff --git a/keyboards/handwired/10k/keymaps/via/keymap.c b/keyboards/handwired/10k/keymaps/via/keymap.c
new file mode 100644
index 0000000000..3bbcff563c
--- /dev/null
+++ b/keyboards/handwired/10k/keymaps/via/keymap.c
@@ -0,0 +1,42 @@
+/*
+Copyright 2022 Nabos <nabos at glargh dot fr>
+
+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 2 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 <http://www.gnu.org/licenses/>.
+*/
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+  _QWERTY,
+  _LOWER,
+  _RAISE,
+  _ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_QWERTY] = LAYOUT_split_1x5(
+       KC_A  , KC_S  , KC_D  , KC_F  ,KC_SPC ,              KC_SPC , KC_J  , KC_K  , KC_L  ,KC_SCLN
+  ),
+
+  [_LOWER] = LAYOUT_split_1x5(
+      _______,_______,_______,_______,_______,              _______,_______,_______,_______,_______
+  ),
+
+  [_RAISE] = LAYOUT_split_1x5(
+      _______,_______,_______,_______,_______,              _______,_______,_______,_______,_______
+  ),
+
+  [_ADJUST] = LAYOUT_split_1x5(
+      _______,_______,_______,_______,_______,              _______,_______,_______,_______,_______
+  )
+};
diff --git a/keyboards/handwired/10k/keymaps/via/rules.mk b/keyboards/handwired/10k/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/handwired/10k/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/handwired/10k/readme.md b/keyboards/handwired/10k/readme.md
new file mode 100644
index 0000000000..270297e927
--- /dev/null
+++ b/keyboards/handwired/10k/readme.md
@@ -0,0 +1,24 @@
+# 10k
+
+Simple 10 keys chord keyboard
+
+* Keyboard Maintainer: [Nabos](https://github.com/nab-os)
+* Hardware Supported: Tested with Elite-C V4 and ProMicro
+
+Make example for this keyboard (after setting up your build environment):
+
+  make handwired/10k:default
+
+Flashing example for this keyboard:
+
+  make handwired/10k: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 `RESET` if it is available
diff --git a/keyboards/handwired/10k/rules.mk b/keyboards/handwired/10k/rules.mk
new file mode 100644
index 0000000000..af5f432a63
--- /dev/null
+++ b/keyboards/handwired/10k/rules.mk
@@ -0,0 +1,8 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+SPLIT_KEYBOARD = yes
+LTO_ENABLE = yes