Data-driven updates to overnumpad controller keyboards (#20259)

This commit is contained in:
Purdea Andrei 2023-04-03 08:45:46 +03:00 committed by GitHub
parent 12de0297ed
commit c58610bea3
Failed to generate hash of commit
32 changed files with 15220 additions and 858 deletions

File diff suppressed because it is too large Load diff

View file

@ -15,42 +15,17 @@
*/
#pragma once
#define DEF_SERIAL_NUMBER "purdea.ro:overnumpad_controller"
#define SERIAL_NUMBER "purdea.ro:overnumpad_controller"
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
// All pins in order from left-to-right, as seen on the keyboard:
// C3, C2, C1, C0, A3, A4, A5, A6, A7, C4, C5, B0, B1, B10, B12, B13, B14, B15, C6, C7, C8, C9, A8, A9, A10,
// On this chip A10, B10 have stronger pull-ups, so it's better to avoid them if possible.
// On this keyboard the right-most pin is not used, A10 can be ignored.
// On this keyboard the pins are ordered in the following way: (top/bottom meaning where the trace is routed on the membranes)
// top, top, top, top, top, top, top, top, bottom, top, bottom, top, bottom, top, bottom, top, bottom, bottom, top, top, top, top, bottom, bottom
#define MATRIX_COL_PINS { C3, C2, C1, C0, A3, A4, A5, A6, C4, B0, B10, B13, C6, C7, C8, C9 }
#define MATRIX_ROW_PINS { A7, C5, B1, B12, B14, B15, A8, A9 }
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
/* define if matrix has ghost (lacks anti-ghosting diodes) */
#define MATRIX_HAS_GHOST
#ifndef SERIAL_NUMBER
#define SERIAL_NUMBER DEF_SERIAL_NUMBER
#endif
#define STM32_HSECLK 16000000
#define SOLENOID_PIN B5
#define HAPTIC_ENABLE_PIN C13
#define SOLENOID_DEFAULT_DWELL 4
#define SOLENOID_DEFAULT_DWELL 20
#define SOLENOID_MIN_DWELL 4
#define HAPTIC_OFF_IN_LOW_POWER 1
#define NO_HAPTIC_MOD

View file

@ -1,13 +1,8 @@
{
"keyboard_name": "IBM Model M (4th generation)",
"keyboard_name": "IBM Model M (4th generation)",
"manufacturer": "IBM/Purdea Andrei",
"url": "https://github.com/purdeaandrei/overnumpad_controller_1xb",
"maintainer": "purdeaandrei",
"usb": {
"vid": "0x16C0",
"pid": "0x27DB",
"device_version": "0.0.1"
},
"url": "https://github.com/purdeaandrei/overnumpad_controller_1xb",
"maintainer": "purdeaandrei",
"indicators": {
"caps_lock": "C11",
"num_lock": "C12",
@ -15,15 +10,12 @@
},
"processor": "STM32F446", // RET6
"bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_all": {
"layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":18.5, "y":1.5}, {"x":19.5, "y":1.5}, {"x":20.5, "y":1.5}, {"x":21.5, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":18.5, "y":2.5}, {"x":19.5, "y":2.5}, {"x":20.5, "y":2.5}, {"x":21.5, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"x":13.75, "y":3.5, "w":1.25}, {"x":18.5, "y":3.5}, {"x":19.5, "y":3.5}, {"x":20.5, "y":3.5}, {"x":21.5, "y":3.5}, {"x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5}, {"x":13.25, "y":4.5, "w":1.75}, {"x":16.25, "y":4.5}, {"x":18.5, "y":4.5}, {"x":19.5, "y":4.5}, {"x":20.5, "y":4.5}, {"x":21.5, "y":4.5}, {"x":0, "y":5.5, "w":1.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5}, {"x":5, "y":5.5, "w":6}, {"x":11, "y":5.5, "w":1.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}, {"x":18.5, "y":5.5}, {"x":19.5, "y":5.5}, {"x":20.5, "y":5.5}, {"x":21.5, "y":5.5}]
},
"LAYOUT_ansi": {
"layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":18.5, "y":1.5}, {"x":19.5, "y":1.5}, {"x":20.5, "y":1.5}, {"x":21.5, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":18.5, "y":2.5}, {"x":19.5, "y":2.5}, {"x":20.5, "y":2.5}, {"x":21.5, "y":2.5, "h":2}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":18.5, "y":3.5}, {"x":19.5, "y":3.5}, {"x":20.5, "y":3.5}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":18.5, "y":4.5}, {"x":19.5, "y":4.5}, {"x":20.5, "y":4.5}, {"x":21.5, "y":4.5, "h":2}, {"x":0, "y":5.5, "w":1.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"x":11, "y":5.5, "w":1.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}, {"x":18.5, "y":5.5, "w":2}, {"x":20.5, "y":5.5}]
},
"LAYOUT_iso": {
"layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":18.5, "y":1.5}, {"x":19.5, "y":1.5}, {"x":20.5, "y":1.5}, {"x":21.5, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.75, "y":2.5, "w":1.25, "h":2}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":18.5, "y":2.5}, {"x":19.5, "y":2.5}, {"x":20.5, "y":2.5}, {"x":21.5, "y":2.5, "h":2}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"x":18.5, "y":3.5}, {"x":19.5, "y":3.5}, {"x":20.5, "y":3.5}, {"x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":18.5, "y":4.5}, {"x":19.5, "y":4.5}, {"x":20.5, "y":4.5}, {"x":21.5, "y":4.5, "h":2}, {"x":0, "y":5.5, "w":1.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"x":11, "y":5.5, "w":1.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}, {"x":18.5, "y":5.5, "w":2}, {"x":20.5, "y":5.5}]
}
"diode_direction": "ROW2COL",
"matrix_pins": {
// All pins in order from left-to-right, as seen on the keyboard:
// C3, C2, C1, C0, A3, A4, A5, A6, A7, C4, C5, B0, B1, B10, B12, B13, B14, B15, C6, C7, C8, C9, A8, A9, A10,
// On this keyboard columns and rows are staggered:
"cols": ["C3", "C2", "C1", "C0", "A3", "A4", "A5", "A6", "C4", "B0", "B10", "B13", "C6", "C7", "C8", "C9"],
"rows": ["A7", "C5", "B1", "B12", "B14", "B15", "A8", "A9"]
}
}

View file

@ -1,24 +0,0 @@
/* Copyright 2020 Purdea Andrei
*
* 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 "overnumpad_1xb.h"
void keyboard_post_init_kb(void)
{
//debug_enable=true;
//debug_matrix=true;
}

View file

@ -1,91 +0,0 @@
/* Copyright 2020 Purdea Andrei
*
* 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"
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT_all( \
k_esc, k_f1, k_f2, k_f3, k_f4, k_f5, k_f6, k_f7, k_f8, k_f9, k_f10, k_f11, k_f12, k_prscr, k_scrl, k_pause, \
k_tild, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8, k_9, k_0, k_minus, k_equals, k_bsp_hidden, k_backspace, k_ins, k_home, k_pgup, kp_nl, kp_div, kp_mult, kp_minus, \
k_tab, k_q, k_w, k_e, k_r, k_t, k_y, k_u, k_i, k_o, k_p, k_squarebrop, k_squarebrcl, k_backsl, k_del, k_end, k_pgdn, kp_7, kp_8, kp_9, kp_plus, \
k_caps, k_a, k_s, k_d, k_f, k_g, k_h, k_j, k_k, k_l, k_semicolon, k_singlequote, k_nuhs,k_return, kp_4, kp_5, kp_6, kp_plus_hidden, \
k_lshift,k_nubs,k_z, k_x, k_c, k_v, k_b, k_n, k_m, k_cm,k_period, k_fwslash, k_rshift_hidden, k_rshift, k_up, kp_1, kp_2, kp_3, kp_enter, \
k_lctrl, k_lalt, k_code, k_space, k_ralt, k_rctrl, k_left, k_down, k_right, kp_0_hidden, kp_0, kp_dot, kp_enter_hidden \
) \
{ \
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \
/* 0 */ { k_esc, k_g, k_h, k_f6, KC_NO, k_singlequote, k_f5, KC_NO, kp_0_hidden, kp_0, kp_dot, k_up, k_lalt, KC_NO, k_f4, k_nubs }, \
/* 1 */ { k_tab, k_t, k_y, k_squarebrcl, k_f7, k_squarebrop, k_backspace, k_lshift, kp_4, kp_5, kp_6, kp_plus_hidden, KC_NO, KC_NO, k_f3, k_caps }, \
/* 2 */ { k_tild, k_5, k_6, k_equals, k_f8, k_minus, k_f9, KC_NO, k_del, k_ins, k_pgup, k_home, KC_NO, k_lctrl, k_f2, k_f1 }, \
/* 3 */ { k_1, k_4, k_7, k_8, k_9, k_0, k_f10, KC_NO, k_f11, k_f12, k_pgdn, k_end, k_prscr, KC_NO, k_3, k_2 }, \
/* 4 */ { k_q, k_r, k_u, k_i, k_o, k_p, k_bsp_hidden, KC_NO, kp_7, kp_8, kp_9, kp_plus, k_scrl, KC_NO, k_e, k_w }, \
/* 5 */ { k_a, k_f, k_j, k_k, k_l, k_semicolon, k_backsl, KC_NO, kp_1, kp_2, kp_3, kp_enter, kp_enter_hidden, KC_NO, k_d, k_s }, \
/* 6 */ { k_z, k_v, k_m, k_cm, k_period, k_nuhs, k_return, k_rshift, kp_nl, kp_div, kp_mult, k_pause, KC_NO, k_rctrl, k_c, k_x }, \
/* 7 */ { KC_NO, k_b, k_n, k_rshift_hidden, KC_NO, k_fwslash, k_space, KC_NO, k_down, k_right, kp_minus, k_left, k_ralt, KC_NO, KC_NO, k_code } \
}
// the following three key mappings are informed guesses, based on similarity of the gen4 membrane to previous-gen membranes: kp_plus, k_ins, kp_0_hidden
#define LAYOUT_ansi( \
k_esc, k_f1, k_f2, k_f3, k_f4, k_f5, k_f6, k_f7, k_f8, k_f9, k_f10, k_f11, k_f12, k_prscr, k_scrl, k_pause, \
k_tild, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8, k_9, k_0, k_minus, k_equals, k_backspace, k_ins, k_home, k_pgup, kp_nl, kp_div, kp_mult, kp_minus, \
k_tab, k_q, k_w, k_e, k_r, k_t, k_y, k_u, k_i, k_o, k_p, k_squarebrop, k_squarebrcl, k_backsl, k_del, k_end, k_pgdn, kp_7, kp_8, kp_9, kp_plus, \
k_caps, k_a, k_s, k_d, k_f, k_g, k_h, k_j, k_k, k_l, k_semicolon, k_singlequote, k_return, kp_4, kp_5, kp_6, \
k_lshift, k_z, k_x, k_c, k_v, k_b, k_n, k_m, k_cm,k_period, k_fwslash, k_rshift, k_up, kp_1, kp_2, kp_3, kp_enter, \
k_lctrl, k_lalt, k_space, k_ralt, k_rctrl, k_left, k_down, k_right, kp_0, kp_dot \
) \
{ \
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \
/* 0 */ { k_esc, k_g, k_h, k_f6, KC_NO, k_singlequote, k_f5, KC_NO, KC_NO, kp_0, kp_dot, k_up, k_lalt, KC_NO, k_f4, KC_NO }, \
/* 1 */ { k_tab, k_t, k_y, k_squarebrcl, k_f7, k_squarebrop, k_backspace, k_lshift, kp_4, kp_5, kp_6, KC_NO, KC_NO, KC_NO, k_f3, k_caps }, \
/* 2 */ { k_tild, k_5, k_6, k_equals, k_f8, k_minus, k_f9, KC_NO, k_del, k_ins, k_pgup, k_home, KC_NO, k_lctrl, k_f2, k_f1 }, \
/* 3 */ { k_1, k_4, k_7, k_8, k_9, k_0, k_f10, KC_NO, k_f11, k_f12, k_pgdn, k_end, k_prscr, KC_NO, k_3, k_2 }, \
/* 4 */ { k_q, k_r, k_u, k_i, k_o, k_p, KC_NO, KC_NO, kp_7, kp_8, kp_9, kp_plus, k_scrl, KC_NO, k_e, k_w }, \
/* 5 */ { k_a, k_f, k_j, k_k, k_l, k_semicolon, k_backsl, KC_NO, kp_1, kp_2, kp_3, kp_enter, KC_NO, KC_NO, k_d, k_s }, \
/* 6 */ { k_z, k_v, k_m, k_cm, k_period, KC_NO, k_return, k_rshift, kp_nl, kp_div, kp_mult, k_pause, KC_NO, k_rctrl, k_c, k_x }, \
/* 7 */ { KC_NO, k_b, k_n, KC_NO, KC_NO, k_fwslash, k_space, KC_NO, k_down, k_right, kp_minus, k_left, k_ralt, KC_NO, KC_NO, KC_NO } \
}
#define LAYOUT_iso( \
k_esc, k_f1, k_f2, k_f3, k_f4, k_f5, k_f6, k_f7, k_f8, k_f9, k_f10, k_f11, k_f12, k_prscr, k_scrl, k_pause, \
k_tild, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8, k_9, k_0, k_minus, k_equals, k_backspace, k_ins, k_home, k_pgup, kp_nl, kp_div, kp_mult, kp_minus, \
k_tab, k_q, k_w, k_e, k_r, k_t, k_y, k_u, k_i, k_o, k_p, k_squarebrop, k_squarebrcl, k_return, k_del, k_end, k_pgdn, kp_7, kp_8, kp_9, kp_plus, \
k_caps, k_a, k_s, k_d, k_f, k_g, k_h, k_j, k_k, k_l, k_semicolon, k_singlequote, k_nuhs, kp_4, kp_5, kp_6, \
k_lshift,k_nubs,k_z, k_x, k_c, k_v, k_b, k_n, k_m, k_cm,k_period, k_fwslash, k_rshift, k_up, kp_1, kp_2, kp_3, kp_enter, \
k_lctrl, k_lalt, k_space, k_ralt, k_rctrl, k_left, k_down, k_right, kp_0, kp_dot \
) \
{ \
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \
/* 0 */ { k_esc, k_g, k_h, k_f6, KC_NO, k_singlequote, k_f5, KC_NO, KC_NO, kp_0, kp_dot, k_up, k_lalt, KC_NO, k_f4, k_nubs }, \
/* 1 */ { k_tab, k_t, k_y, k_squarebrcl, k_f7, k_squarebrop, k_backspace, k_lshift, kp_4, kp_5, kp_6, KC_NO, KC_NO, KC_NO, k_f3, k_caps }, \
/* 2 */ { k_tild, k_5, k_6, k_equals, k_f8, k_minus, k_f9, KC_NO, k_del, k_ins, k_pgup, k_home, KC_NO, k_lctrl, k_f2, k_f1 }, \
/* 3 */ { k_1, k_4, k_7, k_8, k_9, k_0, k_f10, KC_NO, k_f11, k_f12, k_pgdn, k_end, k_prscr, KC_NO, k_3, k_2 }, \
/* 4 */ { k_q, k_r, k_u, k_i, k_o, k_p, KC_NO, KC_NO, kp_7, kp_8, kp_9, kp_plus, k_scrl, KC_NO, k_e, k_w }, \
/* 5 */ { k_a, k_f, k_j, k_k, k_l, k_semicolon, KC_NO, KC_NO, kp_1, kp_2, kp_3, kp_enter, KC_NO, KC_NO, k_d, k_s }, \
/* 6 */ { k_z, k_v, k_m, k_cm, k_period, k_nuhs, k_return, k_rshift, kp_nl, kp_div, kp_mult, k_pause, KC_NO, k_rctrl, k_c, k_x }, \
/* 7 */ { KC_NO, k_b, k_n, KC_NO, KC_NO, k_fwslash, k_space, KC_NO, k_down, k_right, kp_minus, k_left, k_ralt, KC_NO, KC_NO, KC_NO } \
}