aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilba <Jason.S.Williams@gmail.com>2019-01-21 06:01:12 +1100
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-01-20 11:01:12 -0800
commit6393135afaa8b99832f547bcb5e8aafd077a1c9e (patch)
tree8110d45610f188c2c157bf146be0516b417760b9
parent8df044b86828a374fc2c872c2bedc2f4b567f5bf (diff)
downloadqmk_firmware-6393135afaa8b99832f547bcb5e8aafd077a1c9e.tar.gz
qmk_firmware-6393135afaa8b99832f547bcb5e8aafd077a1c9e.zip
Added VIA Configurator support to Snagpad (#4890)
-rw-r--r--keyboards/snagpad/config.h26
-rw-r--r--keyboards/snagpad/keymaps/via/keymap.c76
-rw-r--r--keyboards/snagpad/keymaps/via/rules.mk76
3 files changed, 176 insertions, 2 deletions
diff --git a/keyboards/snagpad/config.h b/keyboards/snagpad/config.h
index a14ead67f..03906f33f 100644
--- a/keyboards/snagpad/config.h
+++ b/keyboards/snagpad/config.h
@@ -3,8 +3,8 @@
3#include "config_common.h" 3#include "config_common.h"
4 4
5/* USB Device descriptor parameter */ 5/* USB Device descriptor parameter */
6#define VENDOR_ID 0xFEED 6#define VENDOR_ID 0x4443 // "DC" = Don Chiou
7#define PRODUCT_ID 0x6060 7#define PRODUCT_ID 0x5350 // "SP" = Snagpad
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER Flehrad 9#define MANUFACTURER Flehrad
10#define PRODUCT Snagpad 10#define PRODUCT Snagpad
@@ -54,3 +54,25 @@
54#define RGBLIGHT_VAL_STEP 8 54#define RGBLIGHT_VAL_STEP 8
55#endif 55#endif
56 56
57// Does not use WT_MONO_BACKLIGHT
58// #define WT_MONO_BACKLIGHT
59
60#define DYNAMIC_KEYMAP_LAYER_COUNT 4
61
62// EEPROM usage
63
64// TODO: refactor with new user EEPROM code (coming soon)
65#define EEPROM_MAGIC 0x451F
66#define EEPROM_MAGIC_ADDR 32
67// Bump this every time we change what we store
68// This will automatically reset the EEPROM with defaults
69// and avoid loading invalid data from the EEPROM
70#define EEPROM_VERSION 0x08
71#define EEPROM_VERSION_ADDR 34
72
73// Dynamic keymap starts after EEPROM version
74#define DYNAMIC_KEYMAP_EEPROM_ADDR 35
75// Dynamic macro starts after dynamic keymaps (35+(4*5*4*2)) = (35+160)
76#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 195
77#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 829
78#define DYNAMIC_KEYMAP_MACRO_COUNT 16 \ No newline at end of file
diff --git a/keyboards/snagpad/keymaps/via/keymap.c b/keyboards/snagpad/keymaps/via/keymap.c
new file mode 100644
index 000000000..7fa226de7
--- /dev/null
+++ b/keyboards/snagpad/keymaps/via/keymap.c
@@ -0,0 +1,76 @@
1#include QMK_KEYBOARD_H
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 LAYOUT_ortho_5x4(
5 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
6 KC_P7, KC_P8, KC_P9, KC_PPLS,
7 KC_P4, KC_P5, KC_P6, KC_PPLS,
8 KC_P1, KC_P2, KC_P3, KC_PENT,
9 KC_P0, KC_P0, KC_PDOT, KC_PENT),
10
11 LAYOUT_ortho_5x4(
12 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
13 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
14 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
15 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
16 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
17
18 LAYOUT_ortho_5x4(
19 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
20 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
21 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
22 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
23 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
24
25 LAYOUT_ortho_5x4(
26 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
27 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
28 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
31};
32
33
34void matrix_init_user(void) {
35}
36
37void matrix_scan_user(void) {
38}
39
40bool process_record_user(uint16_t keycode, keyrecord_t *record) {
41 return true;
42}
43
44void led_set_user(uint8_t usb_led) {
45
46 if (usb_led & (1 << USB_LED_NUM_LOCK)) {
47
48 } else {
49
50 }
51
52 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
53
54 } else {
55
56 }
57
58 if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
59
60 } else {
61
62 }
63
64 if (usb_led & (1 << USB_LED_COMPOSE)) {
65
66 } else {
67
68 }
69
70 if (usb_led & (1 << USB_LED_KANA)) {
71
72 } else {
73
74 }
75
76}
diff --git a/keyboards/snagpad/keymaps/via/rules.mk b/keyboards/snagpad/keymaps/via/rules.mk
new file mode 100644
index 000000000..032d68c5e
--- /dev/null
+++ b/keyboards/snagpad/keymaps/via/rules.mk
@@ -0,0 +1,76 @@
1# MCU name
2MCU = atmega32u4
3
4# Processor frequency.
5# This will define a symbol, F_CPU, in all source code files equal to the
6# processor frequency in Hz. You can then use this symbol in your source code to
7# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
8# automatically to create a 32-bit value in your source code.
9#
10# This will be an integer division of F_USB below, as it is sourced by
11# F_USB after it has run through any CPU prescalers. Note that this value
12# does not *change* the processor frequency - it should merely be updated to
13# reflect the processor speed set externally so that the code can use accurate
14# software delays.
15F_CPU = 16000000
16
17#
18# LUFA specific
19#
20# Target architecture (see library "Board Types" documentation).
21ARCH = AVR8
22
23# Input clock frequency.
24# This will define a symbol, F_USB, in all source code files equal to the
25# input clock frequency (before any prescaling is performed) in Hz. This value may
26# differ from F_CPU if prescaling is used on the latter, and is required as the
27# raw input clock is fed directly to the PLL sections of the AVR for high speed
28# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
29# at the end, this will be done automatically to create a 32-bit value in your
30# source code.
31#
32# If no clock division is performed on the input clock inside the AVR (via the
33# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
34F_USB = $(F_CPU)
35
36# Interrupt driven control endpoint task(+60)
37OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
38
39# Bootloader selection
40# Teensy halfkay
41# Pro Micro caterina
42# Atmel DFU atmel-dfu
43# LUFA DFU lufa-dfu
44# QMK DFU qmk-dfu
45# atmega32a bootloadHID
46BOOTLOADER = caterina
47
48# Boot Section Size in *bytes*
49# OPT_DEFS += -DBOOTLOADER_SIZE=4096
50
51
52# Build Options
53# change yes to no to disable
54#
55BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
56MOUSEKEY_ENABLE = no # Mouse keys(+4700)
57EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
58CONSOLE_ENABLE = no # Console for debug(+400)
59COMMAND_ENABLE = no # Commands for debug and configuration
60# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
61SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
62# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
63NKRO_ENABLE = yes # USB Nkey Rollover
64BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
65MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
66UNICODE_ENABLE = no # Unicode
67BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
68AUDIO_ENABLE = no # Audio output on port C6
69FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
70
71# This is the VIA magic
72RAW_ENABLE = yes
73DYNAMIC_KEYMAP_ENABLE = yes
74SRC += keyboards/wilba_tech/wt_main.c
75
76LAYOUTS = ortho_5x4 numpad_5x4