Add Chocopad keyboard
parent
c73514a2b7
commit
9a91b42e92
|
@ -0,0 +1,14 @@
|
||||||
|
Chocopad
|
||||||
|
========
|
||||||
|
|
||||||
|
A 4x4 macropad keyboard using Kailh PG1350 Lower Profile Choc switches.
|
||||||
|
|
||||||
|
Keyboard Maintainer: Keebio
|
||||||
|
Hardware Supported: Chocopad PCB, Arduino Pro Micro
|
||||||
|
Hardware Availability: [Keebio](https://keeb.io)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make chocopad:default
|
||||||
|
|
||||||
|
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
|
@ -0,0 +1 @@
|
||||||
|
#include "chocopad.h"
|
|
@ -0,0 +1,32 @@
|
||||||
|
#ifndef CHOCOPAD_H
|
||||||
|
#define CHOCOPAD_H
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define KEYMAP( \
|
||||||
|
A1, A2, A3, A4, \
|
||||||
|
B1, B2, B3, B4, \
|
||||||
|
C1, C2, C3, C4, \
|
||||||
|
D1, D2, D3, D4 \
|
||||||
|
) { \
|
||||||
|
{ A1, A2, A3, A4 }, \
|
||||||
|
{ B1, B2, B3, B4 }, \
|
||||||
|
{ C1, C2, C3, C4 }, \
|
||||||
|
{ D1, D2, D3, D4 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
// Used to create a keymap using only KC_ prefixed keys
|
||||||
|
#define KC_KEYMAP( \
|
||||||
|
A1, A2, A3, A4, \
|
||||||
|
B1, B2, B3, B4, \
|
||||||
|
C1, C2, C3, C4, \
|
||||||
|
D1, D2, D3, D4 \
|
||||||
|
) \
|
||||||
|
KEYMAP( \
|
||||||
|
KC_##A1, KC_##A2, KC_##A3, KC_##A4, \
|
||||||
|
KC_##B1, KC_##B2, KC_##B3, KC_##B4, \
|
||||||
|
KC_##C1, KC_##C2, KC_##C3, KC_##C4, \
|
||||||
|
KC_##D1, KC_##D2, KC_##D3, KC_##D4 \
|
||||||
|
)
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,59 @@
|
||||||
|
#ifndef CONFIG_H
|
||||||
|
#define CONFIG_H
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xCEEB
|
||||||
|
#define PRODUCT_ID 0x1144
|
||||||
|
#define DEVICE_VER 0x0100
|
||||||
|
#define MANUFACTURER Keebio
|
||||||
|
#define PRODUCT Chocopad
|
||||||
|
#define DESCRIPTION 4x4 macropad using Kailh Choc low-profile switches
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 4
|
||||||
|
#define MATRIX_COLS 4
|
||||||
|
|
||||||
|
/* key matrix pins */
|
||||||
|
#define MATRIX_ROW_PINS { D7, E6, B3, B2 }
|
||||||
|
#define MATRIX_COL_PINS { D2, D4, F6, F5 }
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* number of backlight levels */
|
||||||
|
#define BACKLIGHT_PIN B5
|
||||||
|
#define BACKLIGHT_LEVELS 6
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCING_DELAY 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
|
||||||
|
|
||||||
|
/* key combination for command */
|
||||||
|
#define IS_COMMAND() ( \
|
||||||
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
/* prevent stuck modifiers */
|
||||||
|
#define PREVENT_STUCK_MODIFIERS
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#endif
|
||||||
|
#define RGB_DI_PIN D3
|
||||||
|
#define RGBLIGHT_TIMER
|
||||||
|
#define RGBLED_NUM 4
|
||||||
|
#define ws2812_PORTREG PORTD
|
||||||
|
#define ws2812_DDRREG DDRD
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,6 @@
|
||||||
|
#ifndef CONFIG_USER_H
|
||||||
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
|
#include "../../config.h"
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,61 @@
|
||||||
|
#include "chocopad.h"
|
||||||
|
|
||||||
|
#define _BASE 0
|
||||||
|
#define _FN1 1
|
||||||
|
#define _FN2 2
|
||||||
|
|
||||||
|
#define KC_ KC_TRNS
|
||||||
|
#define _______ KC_TRNS
|
||||||
|
|
||||||
|
#define KC_X1 MO(_FN1)
|
||||||
|
#define KC_X2 MO(_FN2)
|
||||||
|
#define KC_RST RESET
|
||||||
|
#define KC_BSTP BL_STEP
|
||||||
|
#define KC_RTOG RGB_TOG
|
||||||
|
#define KC_RMOD RGB_MOD
|
||||||
|
#define KC_RHUI RGB_HUI
|
||||||
|
#define KC_RHUD RGB_HUD
|
||||||
|
#define KC_RSAI RGB_SAI
|
||||||
|
#define KC_RSAD RGB_SAD
|
||||||
|
#define KC_RVAI RGB_VAI
|
||||||
|
#define KC_RVAD RGB_VAD
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = KC_KEYMAP(
|
||||||
|
//,----+----+----+----.
|
||||||
|
PGUP,HOME, UP ,END ,
|
||||||
|
//|----+----+----+----|
|
||||||
|
PGDN,LEFT,DOWN,RGHT,
|
||||||
|
//|----+----+----+----|
|
||||||
|
X2 ,VOLU,MPLY,MPRV,
|
||||||
|
//|----+----+----+----|
|
||||||
|
X1 ,VOLD,MUTE,MNXT
|
||||||
|
//`----+----+----+----'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = KC_KEYMAP(
|
||||||
|
//,----+----+----+----.
|
||||||
|
ESC , P7 , P8 , P9 ,
|
||||||
|
//|----+----+----+----|
|
||||||
|
TAB , P4 , P5 , P6 ,
|
||||||
|
//|----+----+----+----|
|
||||||
|
ENT , P1 , P2 , P3 ,
|
||||||
|
//|----+----+----+----|
|
||||||
|
, P0 , P0 ,DOT
|
||||||
|
//`----+----+----+----'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN2] = KC_KEYMAP(
|
||||||
|
//,----+----+----+----.
|
||||||
|
RTOG,RHUI,RSAI,RVAI,
|
||||||
|
//|----+----+----+----|
|
||||||
|
RMOD,RHUD,RSAD,RVAD,
|
||||||
|
//|----+----+----+----|
|
||||||
|
, , ,RST ,
|
||||||
|
//|----+----+----+----|
|
||||||
|
BSTP, , ,
|
||||||
|
//`----+----+----+----'
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
|
@ -0,0 +1,5 @@
|
||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR
|
||||||
|
include ../../../../Makefile
|
||||||
|
endif
|
|
@ -0,0 +1,56 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Processor frequency.
|
||||||
|
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||||
|
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||||
|
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||||
|
# automatically to create a 32-bit value in your source code.
|
||||||
|
#
|
||||||
|
# This will be an integer division of F_USB below, as it is sourced by
|
||||||
|
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||||
|
# does not *change* the processor frequency - it should merely be updated to
|
||||||
|
# reflect the processor speed set externally so that the code can use accurate
|
||||||
|
# software delays.
|
||||||
|
F_CPU = 16000000
|
||||||
|
|
||||||
|
#
|
||||||
|
# LUFA specific
|
||||||
|
#
|
||||||
|
# Target architecture (see library "Board Types" documentation).
|
||||||
|
ARCH = AVR8
|
||||||
|
|
||||||
|
# Input clock frequency.
|
||||||
|
# This will define a symbol, F_USB, in all source code files equal to the
|
||||||
|
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||||
|
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||||
|
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||||
|
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||||
|
# at the end, this will be done automatically to create a 32-bit value in your
|
||||||
|
# source code.
|
||||||
|
#
|
||||||
|
# If no clock division is performed on the input clock inside the AVR (via the
|
||||||
|
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||||
|
F_USB = $(F_CPU)
|
||||||
|
|
||||||
|
# Interrupt driven control endpoint task(+60)
|
||||||
|
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
|
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 = yes # Enable keyboard backlight functionality
|
||||||
|
AUDIO_ENABLE = no
|
||||||
|
RGBLIGHT_ENABLE = yes
|
Loading…
Reference in New Issue