Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[keyboard] Add rartpad #9614

Merged
merged 20 commits into from
Jul 11, 2020
Merged
65 changes: 65 additions & 0 deletions keyboards/rart/rartpad/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/*
Copyright 2020 Alabahuy

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"

/* USB Device descriptor parameter */
#define VENDOR_ID 0x414C // "AL"
#define PRODUCT_ID 0x0050 // "P"
#define DEVICE_VER 0x0001
#define MANUFACTURER Alabahuy
#define PRODUCT RARTPAD
#define DESCRIPTION 5x4 Macropad

/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 4

/* key matrix pins */
#define MATRIX_ROW_PINS { B6, F6, D0, D4, C6 }
#define MATRIX_COL_PINS { B2, D1, D2, D3 }
#define UNUSED_PINS

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

#define NUM_LOCK_LED_PIN D7

/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define ENCODERS_PAD_A { B3, F5 }
#define ENCODERS_PAD_B { B1, F4 }

#define RGB_DI_PIN F7
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 5
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 240
#define RGBLIGHT_SLEEP
#endif
62 changes: 62 additions & 0 deletions keyboards/rart/rartpad/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"keyboard_name": "RARTPAD",
"url": "",
"maintainer": "Alabahuy",
"width": 5,
"height": 4,
"layouts": {
"LAYOUT_ortho_5x4": {
"layout": [
{"label": "Numlock", "x": 0, "y": 0},
{"label": "/", "x": 1, "y": 0},
{"label": "*", "x": 2, "y": 0},
{"label": "-", "x": 3, "y": 0},

{"label": "7", "x": 0, "y": 1},
{"label": "8", "x": 1, "y": 1},
{"label": "9", "x": 2, "y": 1},
{"label": "=", "x": 3, "y": 1},

{"label": "4", "x": 0, "y": 2},
{"label": "5", "x": 1, "y": 2},
{"label": "6", "x": 2, "y": 2},
{"label": "+", "x": 3, "y": 2},

{"label": "1", "x": 0, "y": 3},
{"label": "2", "x": 1, "y": 3},
{"label": "3", "x": 2, "y": 3},
{"label": "Esc", "x": 3, "y": 3},

{"label": "0", "x": 0, "y": 4},
{"label": "00", "x": 1, "y": 4},
{"label": ".", "x": 2, "y": 4},
{"label": "Enter", "x": 3, "y": 4}
]
},
"LAYOUT_numpad_5x4": {
"layout": [
{"label": "Numlock", "x": 0, "y": 0},
{"label": "/", "x": 1, "y": 0},
{"label": "*", "x": 2, "y": 0},
{"label": "-", "x": 3, "y": 0},

{"label": "7", "x": 0, "y": 1},
{"label": "8", "x": 1, "y": 1},
{"label": "9", "x": 2, "y": 1},

{"label": "4", "x": 0, "y": 2},
{"label": "5", "x": 1, "y": 2},
{"label": "6", "x": 2, "y": 2},
{"label": "+", "x": 3, "y": 1, "h": 2},

{"label": "1", "x": 0, "y": 3},
{"label": "2", "x": 1, "y": 3},
{"label": "3", "x": 2, "y": 3},

{"label": "0", "x": 0, "y": 4, "w": 2},
{"label": ".", "x": 2, "y": 4},
{"label": "Enter", "x": 3, "y": 3, "h": 2}
]
}
}
}
54 changes: 54 additions & 0 deletions keyboards/rart/rartpad/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
Copyright 2020 Alabahuy

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


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_ortho_5x4(
KC_NLCK, KC_PSLS, KC_PAST, KC_INS,
KC_P7, KC_P8, KC_P9, KC_PEQL,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PMNS,
MO(1), KC_P0, KC_PDOT, KC_PENT
),

[1] = LAYOUT_ortho_5x4(
KC_TRNS, RGB_HUI, RGB_HUD, KC_TRNS,
RGB_SAI, RGB_SAD, KC_MNXT, KC_MPRV,
RGB_VAI, RGB_VAD, KC_MSTP, KC_MPLY,
KC_COPY, KC_PSTE, KC_MYCM, KC_CALC,
KC_TRNS, RGB_TOG, KC_TRNS, KC_TRNS
)
};

void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (index == 1) { /* Second encoder */
if (clockwise) {
tap_code(KC_WH_D);
} else {
tap_code(KC_WH_U);
}
}
}

45 changes: 45 additions & 0 deletions keyboards/rart/rartpad/keymaps/numpad/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
Copyright 2020 Alabahuy

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


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_numpad_5x4(
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3,
KC_P0, KC_PDOT, KC_PENT
)
};

void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (index == 1) { /* Second encoder */
if (clockwise) {
tap_code(KC_PGUP);
} else {
tap_code(KC_PGDN);
}
}
}
22 changes: 22 additions & 0 deletions keyboards/rart/rartpad/rartpad.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* Copyright 2020 Alabahuy
* 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 "rartpad.h"

bool led_update_kb(led_t led_state) {
if (led_update_user(led_state)) {
writePin(NUM_LOCK_LED_PIN, led_state.num_lock);
}
return true;
}
41 changes: 41 additions & 0 deletions keyboards/rart/rartpad/rartpad.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@

#pragma once

#include "quantum.h"

/* This 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_ortho_5x4( \
K00, K01, K02, K03, \
K10, K11, K12, K13, \
K20, K21, K22, K23, \
K30, K31, K32, K33, \
K40, K41, K42, K43 \
) \
{ \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, K13 }, \
{ K20, K21, K22, K23 }, \
{ K30, K31, K32, K33 }, \
{ K40, K41, K42, K43 }, \
}
#define LAYOUT_numpad_5x4( \
K00, K01, K02, K03, \
K10, K11, K12, \
K20, K21, K22, K13, \
K30, K31, K32, \
K40, K42, K33 \
) \
{ \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, K13 }, \
{ K20, K21, K22, KC_NO }, \
{ K30, K31, K32, K33 }, \
{ K40, KC_NO, K42, KC_NO }, \
}
14 changes: 14 additions & 0 deletions keyboards/rart/rartpad/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# [RARTPAD](https://github.com/alabahuy/RART/tree/master/RARTPAD)

Erovia marked this conversation as resolved.
Show resolved Hide resolved
![rartpad](https://user-images.githubusercontent.com/67696967/86514870-3931bf00-be3f-11ea-8177-29e80add2ce4.jpeg)
5x4 Macropad pcb with double encoder, based on IMKG (Indonesia Mechanical Keyboard Group)

* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy)
* Hardware Supported: RARTPAD PCB, Promicro, Mini USB, Encoders
* Hardware Availability: Private GB

Make example for this keyboard (after setting up your build environment):

make rart/rartpad:default

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).
29 changes: 29 additions & 0 deletions keyboards/rart/rartpad/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = caterina

# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
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
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
ENCODER_ENABLE = yes

LAYOUTS = ortho_5x4 numpad_5x4