Add Unicomp PC122 keyboard (#18326)

This commit is contained in:
Purdea Andrei 2022-09-30 09:02:24 +03:00 committed by GitHub
parent b77ff4edf4
commit e1e86cb1fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 377 additions and 0 deletions

View File

@ -0,0 +1,16 @@
{
"keyboard_name": "Unicomp PC122",
"manufacturer": "Unicomp/Purdea Andrei",
"url": "https://github.com/purdeaandrei/overnumpad_controller_1xb",
"maintainer": "purdeaandrei",
"usb": {
"vid": "0x16C0",
"pid": "0x27DB",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_all": {
"layout": [{"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1}, {"x":12.25, "y":1}, {"x":13.25, "y":1}, {"x":14.25, "y":1}, {"x":0, "y":2.5}, {"x":1, "y":2.5}, {"x":2.25, "y":2.5}, {"x":3.25, "y":2.5}, {"x":4.25, "y":2.5}, {"x":5.25, "y":2.5}, {"x":6.25, "y":2.5}, {"x":7.25, "y":2.5}, {"x":8.25, "y":2.5}, {"x":9.25, "y":2.5}, {"x":10.25, "y":2.5}, {"x":11.25, "y":2.5}, {"x":12.25, "y":2.5}, {"x":13.25, "y":2.5}, {"x":14.25, "y":2.5}, {"x":15.25, "y":2.5, "w":2}, {"x":17.75, "y":2.5}, {"x":18.75, "y":2.5}, {"x":19.75, "y":2.5}, {"x":21.25, "y":2.5}, {"x":22.25, "y":2.5}, {"x":23.25, "y":2.5}, {"x":24.25, "y":2.5}, {"x":0, "y":3.5}, {"x":1, "y":3.5}, {"x":2.25, "y":3.5, "w":1.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}, {"x":14.75, "y":3.5}, {"x":15.75, "y":3.5, "w":1.5}, {"x":17.75, "y":3.5}, {"x":18.75, "y":3.5}, {"x":19.75, "y":3.5}, {"x":21.25, "y":3.5}, {"x":22.25, "y":3.5}, {"x":23.25, "y":3.5}, {"x":24.25, "y":3.5}, {"x":0, "y":4.5}, {"x":1, "y":4.5}, {"x":2.25, "y":4.5, "w":1.75}, {"x":4, "y":4.5}, {"x":5, "y":4.5}, {"x":6, "y":4.5}, {"x":7, "y":4.5}, {"x":8, "y":4.5}, {"x":9, "y":4.5}, {"x":10, "y":4.5}, {"x":11, "y":4.5}, {"x":12, "y":4.5}, {"x":13, "y":4.5}, {"x":14, "y":4.5}, {"x":15, "y":4.5}, {"x":16, "y":4.5, "w":1.25}, {"x":18.75, "y":4.5}, {"x":21.25, "y":4.5}, {"x":22.25, "y":4.5}, {"x":23.25, "y":4.5}, {"x":24.25, "y":4.5}, {"x":0, "y":5.5}, {"x":1, "y":5.5}, {"x":2.25, "y":5.5, "w":1.25}, {"x":3.5, "y":5.5}, {"x":4.5, "y":5.5}, {"x":5.5, "y":5.5}, {"x":6.5, "y":5.5}, {"x":7.5, "y":5.5}, {"x":8.5, "y":5.5}, {"x":9.5, "y":5.5}, {"x":10.5, "y":5.5}, {"x":11.5, "y":5.5}, {"x":12.5, "y":5.5}, {"x":13.5, "y":5.5}, {"x":14.5, "y":5.5, "w":2.75}, {"x":17.75, "y":5.5}, {"x":18.75, "y":5.5}, {"x":19.75, "y":5.5}, {"x":21.25, "y":5.5}, {"x":22.25, "y":5.5}, {"x":23.25, "y":5.5}, {"x":24.25, "y":5.5, "h":2}, {"x":0, "y":6.5}, {"x":1, "y":6.5}, {"x":2.25, "y":6.5, "w":1.5}, {"x":4.75, "y":6.5, "w":1.5}, {"x":6.25, "y":6.5, "w":7}, {"x":13.25, "y":6.5, "w":1.5}, {"x":15.75, "y":6.5, "w":1.5}, {"x":18.75, "y":6.5}, {"x":21.25, "y":6.5, "w":2}, {"x":23.25, "y":6.5}]
}
}
}

View File

@ -0,0 +1,34 @@
/* 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 QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_BASE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_all(
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_ESC, KC_SLCK, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_PSCR, KC_PAUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_PSCR, KC_F1, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_NUHS, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_RGUI, KC_MPLY, KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_ENT, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LGUI, KC_APP, KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT
)
};

View File

@ -0,0 +1,3 @@
# The default keymap for unicomp/pc122/$(CONTROLLER)
This keymap is designed for those who prefer modern 10X-key layouts, and want to start out from there customizing their keyboard.

View File

@ -0,0 +1,34 @@
/* 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 QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_BASE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_all(
S(KC_F1), S(KC_F2), S(KC_F3), S(KC_F4), S(KC_F5), S(KC_F6), S(KC_F7), S(KC_F8), S(KC_F9), S(KC_F10), S(KC_F11), S(KC_F12),
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
S(KC_ESC), C(KC_F9), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, C(KC_F8), KC_PGUP, KC_PGDN, KC_ESC, KC_NLCK, KC_PAST, KC_PSLS,
C(KC_F1), KC_PAUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, KC_INS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS,
C(KC_F2), C(KC_F5), KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_NUHS, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PMNS,
KC_PSCR, C(KC_F6), KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_HOME, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_SLCK, C(KC_F7), KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT
)
};

View File

@ -0,0 +1,6 @@
# The "PC122/3270 Keyboard (USB and PS/2)" keymap for unicomp/pc122/$(CONTROLLER)
This keymap is designed to match the following official keymap from Unicomp:
https://support.pckeyboard.com/knowledgebase.php?article=58
https://support.pckeyboard.com/download_attachment.php?kb_att=56

View File

@ -0,0 +1,34 @@
/* 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 QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_BASE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_all(
S(KC_F1), S(KC_F2), S(KC_F3), S(KC_F4), S(KC_F5), S(KC_F6), S(KC_F7), S(KC_F8), S(KC_F9), S(KC_F10), S(KC_F11), S(KC_F12),
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_ESC, KC_SLCK, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, S(KC_TAB), KC_INS, KC_PGUP, KC_END, KC_NLCK, KC_PSLS, KC_PAST,
KC_PSCR, KC_PAUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, S(KC_RCTRL), KC_DEL, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS,
C(KC_PAUS), A(KC_F1), KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_NUHS, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS,
S(C(KC_4)), S(C(KC_3)), KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_HOME, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LGUI, KC_APP, KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT
)
};

View File

@ -0,0 +1,6 @@
# The "PS2 PC5250" keymap for unicomp/pc122/$(CONTROLLER)
This keymap is designed to match the following official keymap from Unicomp:
https://support.pckeyboard.com/knowledgebase.php?article=70
https://support.pckeyboard.com/download_attachment.php?kb_att=83

View File

@ -0,0 +1,34 @@
/* 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 QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_BASE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_all(
S(KC_F1), S(KC_F2), S(KC_F3), S(KC_F4), S(KC_F5), S(KC_F6), S(KC_F7), S(KC_F8), S(KC_F9), S(KC_F10), S(KC_F11), S(KC_F12),
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_ESC, KC_SLCK, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, S(KC_TAB), KC_INS, KC_PGUP, KC_END, KC_NLCK, KC_PSLS, KC_PAST,
KC_PSCR, KC_PAUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, C(KC_F6), KC_DEL, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS,
C(KC_F3), C(KC_F1), KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_NUHS, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS,
C(KC_F5), C(KC_F2), KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_HOME, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LGUI, KC_APP, KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT
)
};

View File

@ -0,0 +1,6 @@
# The "USB/5250" keymap for unicomp/pc122/$(CONTROLLER)
This keymap is designed to match the following official keymap from Unicomp:
https://support.pckeyboard.com/knowledgebase.php?article=69
https://support.pckeyboard.com/download_attachment.php?kb_att=82

View File

@ -0,0 +1,68 @@
/* 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 "config_common.h"
#define SERIAL_NUMBER "purdea.ro:overnumpad_controller"
/* key matrix size */
#define MATRIX_ROWS 8
#define MATRIX_COLS 16
/*
* 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, so that is A10.
// On this keyboard the right-most 8 pins (excluding the unused pin) are routed on the bottom.
#define MATRIX_COL_PINS { C3, C2, C1, C0, A3, A4, A5, A6, A7, C4, C5, B0, B1, B10, B12, B13 }
#define MATRIX_ROW_PINS { B14, B15, C6, C7, C8, C9, A8, A9 }
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
#define MATRIX_HAS_GHOST
#define STM32_HSECLK 16000000
#define SOLENOID_PIN B5
#define HAPTIC_ENABLE_PIN C13
#define SOLENOID_DEFAULT_DWELL 4
#define SOLENOID_MIN_DWELL 4
#define HAPTIC_OFF_IN_LOW_POWER 1
#define NO_HAPTIC_MOD
#define LED_NUM_LOCK_PIN C12
#define LED_CAPS_LOCK_PIN C11
#define LED_SCROLL_LOCK_PIN C10
#define LED_ON_STATE 1

View File

@ -0,0 +1,24 @@
/* 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

@ -0,0 +1,49 @@
/* 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_f13, k_f14, k_f15, k_f16, k_f17, k_f18, k_f19, k_f20, k_f21, k_f22, k_f23, k_f24, \
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_lb1, k_lb2, 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_lb3, k_lb4, 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_lb5, k_lb6, 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, k_up, kp_4, kp_5, kp_6, kp_plus_hidden, \
k_lb7, k_lb8, 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_left, k_navmid, k_right, kp_1, kp_2, kp_3, kp_enter, \
k_lb9, k_lb10, k_lctrl, k_lalt, k_space, k_ralt, k_rctrl, k_down, kp_0, kp_dot \
) \
{ \
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \
/* 0 */ { k_lb1, k_lb4, k_f3, k_f1, k_ins, k_3, k_4, k_6, k_f5, k_f7, k_f9, k_f11, k_lb3, k_right, k_lb2, k_lb6 }, \
/* 1 */ { k_tab, k_f21, k_del, k_pgdn, k_f22, k_e, k_t, k_u, k_backspace, k_minus, k_down, k_end, k_home, k_f23, k_f14, k_caps }, \
/* 2 */ { k_1, k_f19, kp_nl, k_pgup, k_f17, k_i, k_r, k_y, k_equals, k_9, k_0, kp_mult, kp_div, k_up, k_lb9, k_f16 }, \
/* 3 */ { k_q, k_rshift, kp_9, k_2, KC_NO, k_k, k_f, k_h, k_squarebrcl, k_o, k_semicolon, kp_8, kp_7, k_f24, k_f13, k_lctrl }, \
/* 4 */ { k_a, KC_NO, kp_6, k_w, k_lalt, k_d, k_g, k_j, k_backsl, k_squarebrop, k_singlequote, kp_5, kp_4, k_f20, k_f15, k_lb10 }, \
/* 5 */ { k_z, k_lshift, kp_dot, k_x, KC_NO, k_cm, k_b, k_m, k_return, k_period, k_p, kp_0, kp_1, k_navmid, kp_plus_hidden, k_rctrl }, \
/* 6 */ { k_nubs, KC_NO, kp_3, k_s, k_ralt, k_c, k_v, k_n, k_left, k_l, k_fwslash, kp_2, kp_plus, k_nuhs, k_lb7, KC_NO }, \
/* 7 */ { k_tild, k_f18, kp_minus, k_f2, k_f4, k_8, k_5, k_7, k_f6, k_f8, k_f10, k_f12, k_lb8, k_space, kp_enter, k_lb5 } \
}

View File

@ -0,0 +1,40 @@
# unicomp/pc122/overnumpad_1xb
![unicomp/pc122/overnumpad_1xb](https://sharktastica.co.uk/resources/images/model_ms/shark_UB40T56_unicomp.jpg)
Will support the Unicomp PC122 keyboard
* Keyboard Maintainer: [Purdea Andrei](https://github.com/purdeaandrei)
* Hardware Supported: OverNumpad controller v1.Xb
* Hardware Availability:
* [controller](https://github.com/purdeaandrei/overnumpad_controller_1xb)
* [keyboard](https://www.pckeyboard.com/)
To place the keyboard into bootloader mode in order to flash it, hold the top-left key of the
left-side block of the keyboard, while plugging the board in. It's possible to accidentally
brick this feature, if the wrong firmware is flashed onto the keyboard. If that happens,
open up the keyboard, and press the RST&PROG button to enter bootloader mode.
Note: LAYOUT_all is incomplete, because certain pairs of possible key positions are mapped to the same matrix position:
* The hidden key position under the numeric keypad 2-unit vertical enter key overlaps with the key in the 1st column, 4th row of the left-side block (the one that usually comes with "Record" or "Print/Ident" printed on it by default)
* The hidden key position under the numeric keypad 2-unit horizontal 0 key overlaps with the key position that is normally hidden by a 2u vertical keypad plus key. (This key position is usually exposed as a Field + key, or as a keypad - key)
* The hidden key position under the 2-unit backspace key overlaps with F19.
* The hidden key position under the right-shift key overlaps with F20.
As such it's not possible to make a LAYOUT_all macro that shows all key position.
The user may still make use of these normally hidden key positions, by hiding the other key they overlap to (or by leaving them accessible but the other key must have the same keycode):
* To make use of the hidden key under the 2-unit vertical enter key, a 2-unit horizontal key could be used on the 4th row of the left-side block.
* To make use of the hidden key under the 2-unit horizontal keypad 0 key, a 2-unit vertical + key could be used.
* To make use of the hidden key under the backspace key, a 2-unit horizontal key could be used over what is normally F19 and F20.
* To make use of the hidden key under the right-shift key, a 2-unit horizontal key could be used over what is normally F20 and F21.
As such, mathematically there are 2 * 2 * 3 = 12 possible LAYOUT_all combinations, and we have chosen to only provide the default LAYOUT_all layout. If the user chooses to implement one or more of the above mods,
they can still make this firmware work with the single default LAYOUT_all, using the above information, by assigning keycodes to their conventional key position.
Make example for this keyboard (after setting up your build environment):
make unicomp/pc122/overnumpad_1xb:default
Flashing example for this keyboard:
make unicomp/pc122/overnumpad_1xb: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).

View File

@ -0,0 +1,23 @@
# MCU name
MCU = STM32F446 # STM32F446RET6
# Bootloader selection
BOOTLOADER = stm32-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
ENCODER_ENABLE = no # Enable rotary encoder support
AUDIO_ENABLE = no # Audio output
KEYBOARD_SHARED_EP = yes # Free up some extra endpoints - needed if console+mouse+extra
HAPTIC_ENABLE = yes
HAPTIC_DRIVER = SOLENOID