[Keyboard] Add IDOBAO Abacus ID42 Keyboard (#16923)

by vinorodrigues
This commit is contained in:
Vino Rodrigues 2022-09-04 01:21:00 +10:00 committed by GitHub
parent f27c70fffc
commit 0c76a3c7d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 568 additions and 0 deletions

76
keyboards/idobao/id42/config.h Executable file
View file

@ -0,0 +1,76 @@
// Copyright 2022 Vino Rodrigues (@vinorodrigues)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "config_common.h"
/* Other settings */
/* NKRO by default is required to be turned on. This forces it on
during keyboard startup regardless of EEPROM setting. */
#define FORCE_NKRO
/* Change the USB polling rate [default = 1000Hz (1ms)] and
* use larger value of keys per scan for elite games */
#define USB_POLLING_INTERVAL_MS 2 // 500Hz
#define QMK_KEYS_PER_SCAN 12
/* LED Matrix & Animations */
#ifdef RGB_MATRIX_ENABLE
#define RGB_DI_PIN B3
#define DRIVER_LED_TOTAL 42
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGB_MATRIX_KEYPRESSES // enable key press effects
#define ENABLE_RGB_MATRIX_SOLID_COLOR // Static single color
#define ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes
#define ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation
#define ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right
#define ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness
#define ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient Chevron shaped scrolling left to right
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard
#define ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard
#define ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation
#define ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back
#define ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left
#define ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right
/* #if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES) */
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out
#define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
#define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out
#define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
/* #endif // RGB_MATRIX_KEYPRESSES | RGB_MATRIX_KEYRELEASES */
#endif // RGB_MATRIX_ENABLE

45
keyboards/idobao/id42/id42.c Executable file
View file

@ -0,0 +1,45 @@
// Copyright 2022 Vino Rodrigues (@vinorodrigues)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "id42.h"
#define __ NO_LED
#ifdef RGB_MATRIX_ENABLE
/*
*
* 41 40 39 38 37 36 35 34 33 32 31 30
*
* 29 28 27 26 25 24 23 22 21 20 19
*
* 18 17 16 15 14 13 12 11 10 9 8
*
* 7 6 5 4 3 2 1 0
*
*/
led_config_t g_led_config = { {
// Key Matrix to LED Index
// WS2812 LED strings are addressed from 0 (1st) to DRIVER_LED_TOTAL-1 (last)
{ 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 },
{ 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, __, 19 },
{ 18, 17, 16, 15, 14, 13, 12, 11, 10, __, 9, 8 },
{ 7, 6, 5, 4, __, __, 3, __, __, 2, 1, 0 }
}, {
// LED Index to Physical Position
// **NB**: Reversed order
// Generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser
{224,64 }, {204,64 }, {183,64 }, {135,64 }, { 84,64 }, { 48,64 }, { 25,64 }, { 3,64 },
{224,43 }, {204,43 }, {181,43 }, {158,43 }, {137,43 }, {117,43 }, { 97,43 }, { 76,43 }, { 56,43 }, { 36,43 }, { 8,43 },
{216,21 }, {188,21 }, {168,21 }, {148,21 }, {127,21 }, {107,21 }, { 87,21 }, { 66,21 }, { 46,21 }, { 25,21 }, { 3,21 },
{224,0 }, {204,0 }, {183,0 }, {163,0 }, {143,0 }, {122,0 }, {102,0 }, { 81,0 }, { 61,0 }, { 41,0 }, { 20,0 }, { 0,0 }
}, {
// LED Index to Flag
// **NB**: Reversed order
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 4,
4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4
} };
#endif // RGB_MATRIX_ENABLE

6
keyboards/idobao/id42/id42.h Executable file
View file

@ -0,0 +1,6 @@
// Copyright 2022 Vino Rodrigues (@vinorodrigues)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "quantum.h"

View file

@ -0,0 +1,80 @@
{
"manufacturer": "IDOBAO",
"keyboard_name": "Abacus ID42",
"maintainer": "vinorodrigues",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"debounce": 5,
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"console": false,
"command": false,
"nkro": true,
"backlight": false,
"rgblight": false
},
"matrix_pins": {
"cols": ["B4", "D7", "D6", "D4", "B5", "C7", "F0", "F7", "F6", "F1", "F4", "F5"],
"rows": ["D5", "C6", "B6", "E6"]
},
"processor": "atmega32u4",
"url": "https://idobao.net/search?type=product&q=ID42*",
"usb": {
"vid": "0x6964",
"pid": "0x0042",
"device_version": "1.0.0"
},
"layouts": {
"LAYOUT": {
"layout": [
{ "matrix": [0, 0], "label": "Esc", "x": 0, "y": 0 },
{ "matrix": [0, 1], "label": "Q", "x": 1, "y": 0 },
{ "matrix": [0, 2], "label": "W", "x": 2, "y": 0 },
{ "matrix": [0, 3], "label": "E", "x": 3, "y": 0 },
{ "matrix": [0, 4], "label": "R", "x": 4, "y": 0 },
{ "matrix": [0, 5], "label": "T", "x": 5, "y": 0 },
{ "matrix": [0, 6], "label": "Y", "x": 6, "y": 0 },
{ "matrix": [0, 7], "label": "U", "x": 7, "y": 0 },
{ "matrix": [0, 8], "label": "I", "x": 8, "y": 0 },
{ "matrix": [0, 9], "label": "O", "x": 9, "y": 0 },
{ "matrix": [0, 10], "label": "P", "x": 10, "y": 0 },
{ "matrix": [0, 11], "label": "BSpc", "x": 11, "y": 0 },
{ "matrix": [1, 0], "label": "Tab", "x": 0, "y": 1, "w": 1.25 },
{ "matrix": [1, 1], "label": "A", "x": 1.25, "y": 1 },
{ "matrix": [1, 2], "label": "S", "x": 2.25, "y": 1 },
{ "matrix": [1, 3], "label": "D", "x": 3.25, "y": 1 },
{ "matrix": [1, 4], "label": "F", "x": 4.25, "y": 1 },
{ "matrix": [1, 5], "label": "G", "x": 5.25, "y": 1 },
{ "matrix": [1, 6], "label": "H", "x": 6.25, "y": 1 },
{ "matrix": [1, 7], "label": "J", "x": 7.25, "y": 1 },
{ "matrix": [1, 8], "label": "K", "x": 8.25, "y": 1 },
{ "matrix": [1, 9], "label": "L", "x": 9.25, "y": 1 },
{ "matrix": [1, 11], "label": "Ent", "x": 10.25, "y": 1, "w": 1.75 },
{ "matrix": [2, 0], "label": "Shft", "x": 0, "y": 2, "w": 1.75 },
{ "matrix": [2, 1], "label": "Z", "x": 1.75, "y": 2 },
{ "matrix": [2, 2], "label": "X", "x": 2.75, "y": 2 },
{ "matrix": [2, 3], "label": "C", "x": 3.75, "y": 2 },
{ "matrix": [2, 4], "label": "V", "x": 4.75, "y": 2 },
{ "matrix": [2, 5], "label": "B", "x": 5.75, "y": 2 },
{ "matrix": [2, 6], "label": "N", "x": 6.75, "y": 2 },
{ "matrix": [2, 7], "label": "M", "x": 7.75, "y": 2 },
{ "matrix": [2, 8], "label": "Shft", "x": 8.75, "y": 2, "w": 1.25 },
{ "matrix": [2, 10], "label": "\u21E7", "x": 10, "y": 2 },
{ "matrix": [2, 11], "label": "Del", "x": 11, "y": 2 },
{ "matrix": [3, 0], "label": "Ctrl", "x": 0, "y": 3, "w": 1.25 },
{ "matrix": [3, 1], "label": "Win", "x": 1.25, "y": 3 },
{ "matrix": [3, 2], "label": "Alt", "x": 2.25, "y": 3, "w": 1.25 },
{ "matrix": [3, 3], "label": "", "x": 3.5, "y": 3, "w": 2.75 },
{ "matrix": [3, 6], "label": "Fn", "x": 6.25, "y": 3, "w": 2.75 },
{ "matrix": [3, 9], "label": "\u21E6", "x": 9, "y": 3 },
{ "matrix": [3, 10], "label": "\u21E9", "x": 10, "y": 3 },
{ "matrix": [3, 11], "label": "\u21E8", "x": 11, "y": 3 }
]
}
}
}

View file

@ -0,0 +1,114 @@
// Copyright 2022 Vino Rodrigues (@vinorodrigues)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_keycodes {
FN_MO13 = SAFE_RANGE,
FN_MO23,
};
// more Layer Tap stuff
#define SPC_FN1 LT(1, KC_SPC)
#define SPC_FN2 LT(2, KC_SPC)
#define SPC_FN3 LT(3, KC_SPC)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 1
*
* Esc Q W E R T Y U I O P BSp
*
* Tab A S D F G H J K L Entr
*
* Sft Z X C V B N M Sft Del
*
* CtrlWin AltSpace/Fn2 Fn1/Fn3
*
*/
[0] = LAYOUT(
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, SPC_FN2, FN_MO13, KC_LEFT, KC_DOWN, KC_RIGHT
),
/* Layer 2
*
* ~ 1 2 3 4 5 6 7 8 9 0
*
* -_ =+ [{ ]} \|
*
* ;: '" │,< │.> │/? │ ▿ │PUp│Ins│
*
* Fn3 HomPdnEnd
*
*/
[1] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______,
_______, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_COMM, KC_DOT, KC_SLSH, _______, KC_PGUP, KC_INS,
_______, _______, _______, MO(3), _______, KC_HOME, KC_PGDN, KC_END
),
/* Layer 3
*
* EscF1 F2 F3 F4 F5 F6 F7 F8 F9 F10
*
* F11F12PscSLkPau
*
* Menu Vl+Mut
*
* StoVl-Ply
*
*/
[2] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, KC_VOLU, KC_MUTE,
KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_MSTP, KC_VOLD, KC_MPLY
),
/* Layer 4
*
* Rst
*
* TogModHu-Hu+St-St+
*
* mod NRO Br+
*
* Sp-Br-Sp+
*
*/
[3] = LAYOUT(
_______, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX,
_______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI
),
};
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case FN_MO13:
if (record->event.pressed) {
layer_on(1);
update_tri_layer(1, 2, 3);
} else {
layer_off(1);
update_tri_layer(1, 2, 3);
}
return false;
break;
case FN_MO23:
if (record->event.pressed) {
layer_on(2);
update_tri_layer(1, 2, 3);
} else {
layer_off(2);
update_tri_layer(1, 2, 3);
}
return false;
break;
}
return true;
}

View file

@ -0,0 +1,119 @@
// Copyright 2022 Vino Rodrigues (@vinorodrigues)
// SPDX-License-Identifier: GPL-2.0-or-later
/* ------------------------------------------------------------------
* This is the IDOBAO factory default keymap ;)
* ------------------------------------------------------------------ */
#include QMK_KEYBOARD_H
#include "version.h"
enum {
KB_VRSN = USER09 // debug, type version
};
#define SPC_FN1 LT(1, KC_SPC)
#define SPC_FN2 LT(2, KC_SPC)
#define SPC_FN3 LT(3, KC_SPC)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0
*
* Esc Q W E R T Y U I O P BSp
*
* Tab A S D F G H J K L Entr
*
* Sft Z X C V B N M Sft Del
*
* CtrlWin AltSpace/Fn2 Fn1/Fn3
*
*/
[0] = LAYOUT(
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, SPC_FN2, FN_MO13, KC_LEFT, KC_DOWN, KC_RIGHT
),
/* Layer 1
*
* ~ 1 2 3 4 5 6 7 8 9 0
*
* -_ =+ [{ ]} \|
*
* ;: '" │,< │.> │/? │ ▿ │PUp│Ins│
*
* Fn3 HomPdnEnd
*
*/
[1] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______,
_______, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_COMM, KC_DOT, KC_SLSH, _______, KC_PGUP, KC_INS,
_______, _______, _______, MO(3), _______, KC_HOME, KC_PGDN, KC_END
),
/* Layer 2
*
* EscF1 F2 F3 F4 F5 F6 F7 F8 F9 F10
*
* F11F12PscSLkPau
*
* Menu Vl+Mut
*
* StoVl-Ply
*
*/
[2] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, KC_VOLU, KC_MUTE,
KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_MSTP, KC_VOLD, KC_MPLY
),
/* Layer 3
*
* Rst
*
* TogModHu-Hu+St-St+
*
* mod Ver NRO Br+
*
* Sp-Br-Sp+
*
*/
[3] = LAYOUT(
_______, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, RGB_RMOD, XXXXXXX, XXXXXXX, KB_VRSN, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX,
_______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI
),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
#ifdef RGB_MATRIX_ENABLE
case QK_BOOT:
if (record->event.pressed) {
rgb_matrix_set_color_all(RGB_MATRIX_MAXIMUM_BRIGHTNESS, 0, 0); // All red
rgb_matrix_driver.flush();
}
return true;
#endif // RGB_MATRIX_ENABLE
// print firmware version
case KB_VRSN:
if (!get_mods()) {
if (!record->event.pressed) {
SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " (v" QMK_VERSION ")");
}
}
return false;
default:
return true; /* Process all other keycodes normally */
}
}

View file

@ -0,0 +1,3 @@
LTO_ENABLE = yes
VIA_ENABLE = yes

View file

@ -0,0 +1,82 @@
// Copyright 2022 Vino Rodrigues (@vinorodrigues)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define SPC_FN1 LT(1, KC_SPC)
#define SPC_FN2 LT(2, KC_SPC)
#define SPC_FN3 LT(3, KC_SPC)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* Esc Q W E R T Y U I O P BSp
*
* Tab A S D F G H J K L Entr
*
* Sft Z X C V B N M Sft Del
*
* CtrlWin AltSpace/Fn2 Fn1/Fn3
*
*/
[0] = LAYOUT(
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, SPC_FN2, FN_MO13, KC_LEFT, KC_DOWN, KC_RIGHT
),
/*
*
* ~ 1 2 3 4 5 6 7 8 9 0
*
* -_ =+ [{ ]} \|
*
* ;: '" │,< │.> │/? │ ▿ │PUp│Ins│
*
* Fn3 HomPdnEnd
*
*/
[1] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______,
_______, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_COMM, KC_DOT, KC_SLSH, _______, KC_PGUP, KC_INS,
_______, _______, _______, MO(3), _______, KC_HOME, KC_PGDN, KC_END
),
/*
*
* EscF1 F2 F3 F4 F5 F6 F7 F8 F9 F10
*
* F11F12PscSLkPau
*
* Menu Vl+Mut
*
* StoVl-Ply
*
*/
[2] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, KC_VOLU, KC_MUTE,
KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_MSTP, KC_VOLD, KC_MPLY
),
/*
*
* Rst
*
* TogModHu-Hu+St-St+
*
* mod NRO Br+
*
* Sp-Br-Sp+
*
*/
[3] = LAYOUT(
_______, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX,
_______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI
),
};

View file

@ -0,0 +1,3 @@
LTO_ENABLE = yes
VIA_ENABLE = yes

View file

@ -0,0 +1,35 @@
# IDOBAO Abacus ID42
![IDOBAO Abacus ID42](https://idobao.github.io/assets/img/idobao-id42.png)
Sized just right at 40% — with a compact configuration the IDOBAO Abacus ID42 makes a great fit for any desk.
## 42 Keys
* Keyboard Maintainer: [Vino Rodrigues](https://github.com/vinorodrigues)
* Hardware Supported: **IDOBAO Abacus ID42**
* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=ID42*)
## Layout
![](https://cdn.jsdelivr.net/gh/Idobao/idobao.github.io/kle/idobao-id42-all.png)
## Compiling and Flashing
Make example for this keyboard (after setting up your build environment):
make idobao/id42:default
Flashing example for this keyboard:
make idobao/id42: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. <br>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 [Esc] key and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to *`RESET`* *(Default = `[Fn]`+`[R]`)* if it is available

5
keyboards/idobao/id42/rules.mk Executable file
View file

@ -0,0 +1,5 @@
# This file intentionally left blank
# ** settings are data driven & stored in `info.json` **
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812