aboutsummaryrefslogtreecommitdiff
path: root/keyboards/evyd13/atom47
diff options
context:
space:
mode:
authorJames Young <18669334+noroadsleft@users.noreply.github.com>2020-11-28 12:02:18 -0800
committerGitHub <noreply@github.com>2020-11-28 12:02:18 -0800
commitc66df1664497546f32662409778731143e45a552 (patch)
treeda73a2d532a27685a31d932b3a44a707d4a3af81 /keyboards/evyd13/atom47
parent15385d4113414d42bd062c60c9de5df797d3157f (diff)
downloadqmk_firmware-c66df1664497546f32662409778731143e45a552.tar.gz
qmk_firmware-c66df1664497546f32662409778731143e45a552.zip
2020 November 28 Breaking Changes Update (#11053)
* Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
Diffstat (limited to 'keyboards/evyd13/atom47')
-rw-r--r--keyboards/evyd13/atom47/keymaps/LEdiodes/keymap.c33
-rw-r--r--keyboards/evyd13/atom47/keymaps/LEdiodes/rules.mk64
-rw-r--r--keyboards/evyd13/atom47/keymaps/default/keymap.c50
-rw-r--r--keyboards/evyd13/atom47/keymaps/default/readme.md1
-rw-r--r--keyboards/evyd13/atom47/keymaps/evyd13/keymap.c68
-rw-r--r--keyboards/evyd13/atom47/keymaps/evyd13/readme.md1
-rw-r--r--keyboards/evyd13/atom47/keymaps/junonum_a47/keymap.c150
-rw-r--r--keyboards/evyd13/atom47/keymaps/junonum_a47/readme.md1
-rw-r--r--keyboards/evyd13/atom47/readme.md26
-rw-r--r--keyboards/evyd13/atom47/rev2/config.h68
-rw-r--r--keyboards/evyd13/atom47/rev2/info.json12
-rw-r--r--keyboards/evyd13/atom47/rev2/readme.md23
-rw-r--r--keyboards/evyd13/atom47/rev2/rev2.c34
-rw-r--r--keyboards/evyd13/atom47/rev2/rev2.h25
-rw-r--r--keyboards/evyd13/atom47/rev2/rules.mk2
-rw-r--r--keyboards/evyd13/atom47/rev3/config.h63
-rw-r--r--keyboards/evyd13/atom47/rev3/info.json12
-rw-r--r--keyboards/evyd13/atom47/rev3/rev3.c27
-rw-r--r--keyboards/evyd13/atom47/rev3/rev3.h23
-rw-r--r--keyboards/evyd13/atom47/rev3/rules.mk2
-rw-r--r--keyboards/evyd13/atom47/rules.mk28
21 files changed, 713 insertions, 0 deletions
diff --git a/keyboards/evyd13/atom47/keymaps/LEdiodes/keymap.c b/keyboards/evyd13/atom47/keymaps/LEdiodes/keymap.c
new file mode 100644
index 000000000..87e124421
--- /dev/null
+++ b/keyboards/evyd13/atom47/keymaps/LEdiodes/keymap.c
@@ -0,0 +1,33 @@
1#include QMK_KEYBOARD_H
2
3// These are all aliases for the function layers.
4#define _L0 0
5#define _L1 1
6#define _L2 2
7#define _L3 3
8
9const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
10[_L0] = LAYOUT(
11 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \
12 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
13 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_L1), \
14 KC_LCTL, KC_LGUI, KC_LALT, TG(_L3), KC_SPC, KC_SPC, MO(_L2), KC_RALT, KC_APP, KC_RCTRL), \
15
16[_L2] = LAYOUT(
17 _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \
18 KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \
19 _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \
20 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
21
22[_L1] = LAYOUT(
23 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
24 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
25 _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \
26 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
27
28[_L3] = LAYOUT(
29 _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, \
30 _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______, \
31 _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______, \
32 _______, _______, _______, _______, KC_0, KC_DOT, _______, _______, _______, RESET), \
33};
diff --git a/keyboards/evyd13/atom47/keymaps/LEdiodes/rules.mk b/keyboards/evyd13/atom47/keymaps/LEdiodes/rules.mk
new file mode 100644
index 000000000..9334aaf28
--- /dev/null
+++ b/keyboards/evyd13/atom47/keymaps/LEdiodes/rules.mk
@@ -0,0 +1,64 @@
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#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = AVR8
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU)
36
37# Interrupt driven control endpoint task(+60)
38OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
39
40
41# Boot Section Size in *bytes*
42# Teensy halfKay 512
43# Teensy++ halfKay 1024
44# Atmel DFU loader 4096
45# LUFA bootloader 4096
46# USBaspLoader 2048
47OPT_DEFS += -DBOOTLOADER_SIZE=4096
48
49
50# Build Options
51# comment out to disable the options.
52#
53BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
54MOUSEKEY_ENABLE = no # Mouse keys(+4700)
55EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
56CONSOLE_ENABLE = no # Console for debug(+400)
57COMMAND_ENABLE = no # Commands for debug and configuration
58NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
59RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870)
60BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150)
61MIDI_ENABLE = no # MIDI controls
62AUDIO_ENABLE = no
63UNICODE_ENABLE = no # Unicode
64BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/evyd13/atom47/keymaps/default/keymap.c b/keyboards/evyd13/atom47/keymaps/default/keymap.c
new file mode 100644
index 000000000..dc87b5a52
--- /dev/null
+++ b/keyboards/evyd13/atom47/keymaps/default/keymap.c
@@ -0,0 +1,50 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7
8#define _MA 0 //Main layer
9#define _FN 1 //Fn
10#define _FN1 2 //Fn1
11#define _PN 3 //Pn
12
13const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
14[_MA] = LAYOUT(
15 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \
16 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
17 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_FN1), \
18 KC_LCTL, KC_LGUI, KC_LALT, MO(_PN), KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_APP, KC_RCTRL), \
19
20[_FN] = LAYOUT(
21 _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \
22 KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \
23 _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \
24 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
25
26[_FN1] = LAYOUT(
27 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
28 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
29 _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
31
32[_PN] = LAYOUT(
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
34 RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, \
35 RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, \
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET),
37};
38
39void led_set_user(uint8_t usb_led) {
40 if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
41 // Turn capslock on
42 PORTE &= ~(1 << 6);
43
44
45 } else {
46 // Turn capslock off
47 PORTE |= (1 << 6);
48 }
49}
50
diff --git a/keyboards/evyd13/atom47/keymaps/default/readme.md b/keyboards/evyd13/atom47/keymaps/default/readme.md
new file mode 100644
index 000000000..679595385
--- /dev/null
+++ b/keyboards/evyd13/atom47/keymaps/default/readme.md
@@ -0,0 +1 @@
This is the default keymap as found on the Vortex Core, with some added buttons for RGB and backlight control.
diff --git a/keyboards/evyd13/atom47/keymaps/evyd13/keymap.c b/keyboards/evyd13/atom47/keymaps/evyd13/keymap.c
new file mode 100644
index 000000000..c01ace92a
--- /dev/null
+++ b/keyboards/evyd13/atom47/keymaps/evyd13/keymap.c
@@ -0,0 +1,68 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7
8#define _MA 0 //Main layer
9#define _LO 1 //FN1
10#define _RA 2 //FN
11
12enum custom_keycodes {
13 CTRLZ = SAFE_RANGE,
14 CTRLX,
15 CTRLC,
16 CTRLV
17};
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20[_MA] = LAYOUT(
21 KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \
22 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
24 KC_LCTL, KC_LGUI, KC_LALT, MO(_LO), KC_SPC, KC_SPC, MO(_RA), KC_RALT, KC_APP, KC_RCTRL), \
25
26[_LO] = LAYOUT(
27 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
28 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
29 _______, CTRLZ, CTRLX, CTRLC, CTRLV, _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______, \
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), \
31
32[_RA] = LAYOUT(
33 _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, \
34 KC_CAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, \
35 _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, \
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
37
38};
39
40void led_set_user(uint8_t usb_led) {
41 if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
42 // Turn capslock on
43 PORTE &= ~(1 << 6);
44 } else {
45 // Turn capslock off
46 PORTE |= (1 << 6);
47 }
48}
49
50bool process_record_user(uint16_t keycode, keyrecord_t *record) {
51 if (record->event.pressed) {
52 switch(keycode) {
53 case CTRLZ:
54 SEND_STRING(SS_LCTRL("z"));
55 return false;
56 case CTRLX:
57 SEND_STRING(SS_LCTRL("x"));
58 return false;
59 case CTRLC:
60 SEND_STRING(SS_LCTRL("c"));
61 return false;
62 case CTRLV:
63 SEND_STRING(SS_LCTRL("v"));
64 return false;
65 }
66 }
67 return true;
68};
diff --git a/keyboards/evyd13/atom47/keymaps/evyd13/readme.md b/keyboards/evyd13/atom47/keymaps/evyd13/readme.md
new file mode 100644
index 000000000..679595385
--- /dev/null
+++ b/keyboards/evyd13/atom47/keymaps/evyd13/readme.md
@@ -0,0 +1 @@
This is the default keymap as found on the Vortex Core, with some added buttons for RGB and backlight control.
diff --git a/keyboards/evyd13/atom47/keymaps/junonum_a47/keymap.c b/keyboards/evyd13/atom47/keymaps/junonum_a47/keymap.c
new file mode 100644
index 000000000..ebd52ffd0
--- /dev/null
+++ b/keyboards/evyd13/atom47/keymaps/junonum_a47/keymap.c
@@ -0,0 +1,150 @@
1#include QMK_KEYBOARD_H
2
3/* enum custom_keycodes {
4 SHIFTEN = SAFE_RANGE,
5 LOWER,
6 RAISE,
7 SPACFNL,
8 SPACFNR,
9 MAIN,
10 ADJUST
11}; */
12
13#define _MAIN 0
14#define _SPLEFT 1
15#define _SPRIGHT 2
16#define _LOWER 3
17#define _RAISE 4
18#define _ADJUST 5
19
20#define _DPAD 6
21#define _DPADNUM 7
22
23
24#define SHIFTEN RSFT_T(KC_ENT)
25#define LOWER MO(_LOWER)
26#define RAISE MO(_RAISE)
27#define SPACFNL LT(_SPLEFT, KC_SPC)
28#define SPACFNR LT(_SPRIGHT, KC_SPC)
29
30#define DP_ON TO(_DPAD)
31#define DP_OFF TO(_MAIN)
32#define DPADNUM MO(_DPADNUM)
33
34
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36
37 // Primary layer
38 [_MAIN] = LAYOUT(
39 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC,
40 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
41 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SHIFTEN,
42 KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACFNL, SPACFNR, RAISE, KC_RALT, KC_APP, KC_RCTRL
43 ),
44
45 // Main Fn navigation layer
46 [_SPLEFT] = LAYOUT(
47 _______, KC_VOLU, KC_PGUP, KC_UP, KC_PGDN, KC_INS, _______, _______, KC_UP, _______, KC_PSCR, _______, _______,
48 _______, KC_VOLD, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_DEL ,
49 _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
51 ),
52
53 // Primary numeric layer using right Spacebar
54 [_SPRIGHT] = LAYOUT(
55 KC_GRV, _______, _______, KC_LBRC, KC_RBRC, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, _______,
56 _______, _______, _______, KC_LCBR, KC_RCBR, _______, _______, KC_4, KC_5, KC_6, KC_MINUS, KC_BSLS,
57 _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_EQUAL, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
59 ),
60
61 // Secondary symbol layer, also Lower
62 [_LOWER] = LAYOUT(
63 KC_TILD, _______, _______, _______, _______, _______, _______, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_SLCK, KC_PAUS,
64 KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_DLR, KC_PERC, KC_CIRC, KC_UNDS, KC_PIPE,
65 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_EXLM, KC_AT, KC_HASH, KC_PLUS, _______,
66 _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY
67 ),
68
69 // Numpad layer // Also a homage to Planck with the media player/pause button
70 [_RAISE] = LAYOUT(
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
74 _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY
75 ),
76
77 // Safety layer for special functions
78 [_ADJUST] = LAYOUT(
79 _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
80 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
81 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DP_ON,
82 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
83 ),
84
85 [_DPAD] = LAYOUT(
86 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC,
87 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
88 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT,
89 KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, DPADNUM, KC_SPC, DP_OFF, KC_LEFT, KC_DOWN, KC_RGHT
90 ),
91
92 [_DPADNUM] = LAYOUT(
93 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______,
94 _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______,
95 _______, _______, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
97 ),
98};
99
100bool process_record_user(uint16_t keycode, keyrecord_t *record) {
101 switch (keycode) {
102/* case MAIN:
103 if (record->event.pressed) {
104 persistant_default_layer_set(1UL<<_MAIN);
105 }
106 return false;
107 break; */
108 case LOWER:
109 if (record->event.pressed) {
110 layer_on(_LOWER);
111 update_tri_layer(_LOWER, _RAISE, _ADJUST);
112 } else {
113 layer_off(_LOWER);
114 update_tri_layer(_LOWER, _RAISE, _ADJUST);
115 }
116 return false;
117 break;
118 case RAISE:
119 if (record->event.pressed) {
120 layer_on(_RAISE);
121 update_tri_layer(_LOWER, _RAISE, _ADJUST);
122 } else {
123 layer_off(_RAISE);
124 update_tri_layer(_LOWER, _RAISE, _ADJUST);
125 }
126 return false;
127 break;
128/* case ADJUST:
129 if (record->event.pressed) {
130 layer_on(_ADJUST);
131 } else {
132 layer_off(_ADJUST);
133 }
134 return false;
135 break; */
136 }
137 return true;
138}
139
140void led_set_user(uint8_t usb_led) {
141 if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
142 // Turn capslock on
143 writePinLow(E6);
144
145
146 } else {
147 // Turn capslock off
148 writePinHigh(E6);
149 }
150}
diff --git a/keyboards/evyd13/atom47/keymaps/junonum_a47/readme.md b/keyboards/evyd13/atom47/keymaps/junonum_a47/readme.md
new file mode 100644
index 000000000..42d837023
--- /dev/null
+++ b/keyboards/evyd13/atom47/keymaps/junonum_a47/readme.md
@@ -0,0 +1 @@
Juno's junonum keymap adapted for Atom47. \ No newline at end of file
diff --git a/keyboards/evyd13/atom47/readme.md b/keyboards/evyd13/atom47/readme.md
new file mode 100644
index 000000000..70171c04d
--- /dev/null
+++ b/keyboards/evyd13/atom47/readme.md
@@ -0,0 +1,26 @@
1# Atom47
2
3![Atom47](https://i.imgur.com/Wwflqvt.png)
4
5## Support
6Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
7Hardware Supported: Atom47 rev2/rev3
8Hardware Availability: [GeekHack.com Group Buy](https://geekhack.org/index.php?topic=93447.msg2545221)
9
10
11## Features (rev3 and up)
12- QMK Firmware
13- 6 Underglow RGB leds
14- In-switch leds
15- Through-hole micro usb connector (less likely to break off!)
16- South facing leds for the QMX/Zealencio users
17- Multiple layouts
18- Easily reachable reset button under the spacebar
19- CapsLock indicator
20
21## Build
22To build the default keymap for the latest revision, simply run `make atom47:default`. Specifiy the revision like so: `make atom47/rev3:default`.
23
24See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
25
26![Atom47](https://i.imgur.com/JfYnOba.jpg)
diff --git a/keyboards/evyd13/atom47/rev2/config.h b/keyboards/evyd13/atom47/rev2/config.h
new file mode 100644
index 000000000..74061726c
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev2/config.h
@@ -0,0 +1,68 @@
1/*
2Copyright 2012 Evy Dekkers
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef REV2_CONFIG_H
19#define REV2_CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6060
26#define DEVICE_VER 0x0003
27#define MANUFACTURER Vortex
28#define PRODUCT Core
29#define DESCRIPTION Atom47 PCB for the Vortex Core Rev.2
30
31/* key matrix size */
32#define MATRIX_ROWS 4
33#define MATRIX_COLS 13
34
35// ROWS: Top to bottom, COLS: Left to right
36
37#define MATRIX_ROW_PINS {B1,B2,B3,B7}
38#define MATRIX_COL_PINS {D7,D5,F0,F1,F4,F6,F7,D4,C7,C6,D6,B5,B4}
39#define UNUSED_PINS
40
41#define BACKLIGHT_PIN B6
42
43/* COL2ROW or ROW2COL */
44#define DIODE_DIRECTION COL2ROW
45
46/* define if matrix has ghost */
47//#define MATRIX_HAS_GHOST
48
49/* Set 0 if debouncing isn't needed */
50#define DEBOUNCE 5
51
52/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
53#define LOCKING_SUPPORT_ENABLE
54/* Locking resynchronize hack */
55#define LOCKING_RESYNC_ENABLE
56
57/* Backlight configuration
58 */
59#define BACKLIGHT_LEVELS 4
60
61#define RGB_DI_PIN D0 // The pin the LED strip is connected to
62#define RGBLED_NUM 1 // Number of LEDs in your strip
63
64#define QMK_ESC_OUTPUT D7 // usually COL
65#define QMK_ESC_INPUT B1 // usually ROW
66#define QMK_LED B6
67
68#endif
diff --git a/keyboards/evyd13/atom47/rev2/info.json b/keyboards/evyd13/atom47/rev2/info.json
new file mode 100644
index 000000000..aa15e7606
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev2/info.json
@@ -0,0 +1,12 @@
1{
2 "keyboard_name": "Atom47",
3 "url": "",
4 "maintainer": "evyd13",
5 "width": 13,
6 "height": 4,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"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, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2, "w":1.25}, {"x":12, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3, "w":1.75}, {"x":6, "y":3, "w":2.75}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3, "w":1.25}]
10 }
11 }
12}
diff --git a/keyboards/evyd13/atom47/rev2/readme.md b/keyboards/evyd13/atom47/rev2/readme.md
new file mode 100644
index 000000000..b63e1bb44
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev2/readme.md
@@ -0,0 +1,23 @@
1# Atom47 rev2
2
3This is the keymap for rev2 of the Atom47. Only 9 of those have been sold for testing purposes. It had a slightly misaligned usb port and the pcb was too thick (should've been 1.2mm instead of 1.6mm). The pcb only supports the default hardware layout, although /u/ChrisSwires has [modified his](https://www.reddit.com/r/MechanicalKeyboards/comments/7n2dua/not_your_average_core_with_honeywell/) and put a big spacebar in it.
4
5## Support
6Keyboard Maintainer: [Matthew Kerfoot](https://github.com/mkerfoot)
7Hardware Supported: Atom47 rev2
8Hardware Availability: None
9
10
11## Features
12- QMK Firmware
13- In-switch leds
14- Through-hole micro usb connector (less likely to break off!)
15- Easily reachable reset button under the spacebar
16- In-switch CapsLock indicator
17
18## Build
19To build the default keymap, simply run `make atom47/rev2:default`.
20
21For an alternative, heavily modified layout you would just need to run `make atom47/rev2:LEdiodes`.
22
23See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/evyd13/atom47/rev2/rev2.c b/keyboards/evyd13/atom47/rev2/rev2.c
new file mode 100644
index 000000000..06fce06da
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev2/rev2.c
@@ -0,0 +1,34 @@
1#include "rev2.h"
2#include "led.h"
3
4void matrix_init_kb(void) {
5 // put your keyboard start-up code here
6 // runs once when the firmware starts up
7 matrix_init_user();
8 led_init_ports();
9};
10
11void matrix_scan_kb(void) {
12 // put your looping keyboard code here
13 // runs every cycle (a lot)
14 matrix_scan_user();
15};
16
17void led_init_ports(void) {
18 // * Set our LED pins as output
19 DDRB &= ~(1<<5);
20
21 //Set output high, so the capslock led is off
22 PORTB |= (1 << 5);
23}
24
25void led_set_kb(uint8_t usb_led) {
26 if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
27 // Turn capslock on
28 PORTF |= (1<<5);
29 } else {
30 // Turn capslock off
31 PORTF &= ~(1<<5);
32 }
33 led_set_user(usb_led);
34}
diff --git a/keyboards/evyd13/atom47/rev2/rev2.h b/keyboards/evyd13/atom47/rev2/rev2.h
new file mode 100644
index 000000000..bfea34e06
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev2/rev2.h
@@ -0,0 +1,25 @@
1#ifndef ATOM47_H
2#define ATOM47_H
3
4#include "quantum.h"
5
6// readability
7#define XXX KC_NO
8
9#define LAYOUT( \
10 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \
11 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \
12 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
13 k30, k31, k32, k33, k34, k36, k38, k39, k3a, k3c \
14) \
15{ \
16 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c}, \
17 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, XXX, k1c}, \
18 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, XXX, k2c}, \
19 {k30, k31, k32, k33, k34, XXX, k36, XXX, k38, k39, k3a, XXX, k3c} \
20}
21
22void matrix_init_user(void);
23void matrix_scan_user(void);
24
25#endif
diff --git a/keyboards/evyd13/atom47/rev2/rules.mk b/keyboards/evyd13/atom47/rev2/rules.mk
new file mode 100644
index 000000000..0b6b87998
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev2/rules.mk
@@ -0,0 +1,2 @@
1NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
2RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality
diff --git a/keyboards/evyd13/atom47/rev3/config.h b/keyboards/evyd13/atom47/rev3/config.h
new file mode 100644
index 000000000..f255ee5a7
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev3/config.h
@@ -0,0 +1,63 @@
1/*
2Copyright 2012 Evy Dekkers
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef REV3_CONFIG_H
19#define REV3_CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6060
26#define DEVICE_VER 0x0003
27#define MANUFACTURER Vortex
28#define PRODUCT Core
29#define DESCRIPTION Atom47 PCB for the Vortex Core Rev.3
30
31/* key matrix size */
32#define MATRIX_ROWS 4
33#define MATRIX_COLS 13
34
35// ROWS: Top to bottom, COLS: Left to right
36
37#define MATRIX_ROW_PINS {B3,B2,B1,B0}
38#define MATRIX_COL_PINS {B7,F0,F1,F4,F6,D4,D6,D7,B4,B5,C6,C7,F7}
39#define UNUSED_PINS
40
41#define BACKLIGHT_PIN B6
42
43/* COL2ROW or ROW2COL */
44#define DIODE_DIRECTION COL2ROW
45
46/* define if matrix has ghost */
47//#define MATRIX_HAS_GHOST
48
49/* Set 0 if debouncing isn't needed */
50#define DEBOUNCE 5
51
52/* Backlight configuration
53 */
54#define BACKLIGHT_LEVELS 4
55
56#define RGB_DI_PIN F5 // The pin the LED strip is connected to
57#define RGBLED_NUM 6 // Number of LEDs in your strip
58#define RGBLIGHT_ANIMATIONS
59#define QMK_ESC_OUTPUT B7 // usually COL
60#define QMK_ESC_INPUT B3 // usually ROW
61#define QMK_LED E6
62
63#endif
diff --git a/keyboards/evyd13/atom47/rev3/info.json b/keyboards/evyd13/atom47/rev3/info.json
new file mode 100644
index 000000000..aa15e7606
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev3/info.json
@@ -0,0 +1,12 @@
1{
2 "keyboard_name": "Atom47",
3 "url": "",
4 "maintainer": "evyd13",
5 "width": 13,
6 "height": 4,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"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, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2, "w":1.25}, {"x":12, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3, "w":1.75}, {"x":6, "y":3, "w":2.75}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3, "w":1.25}]
10 }
11 }
12}
diff --git a/keyboards/evyd13/atom47/rev3/rev3.c b/keyboards/evyd13/atom47/rev3/rev3.c
new file mode 100644
index 000000000..c541ed559
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev3/rev3.c
@@ -0,0 +1,27 @@
1#include "rev3.h"
2#include "led.h"
3
4void matrix_init_kb(void) {
5 // put your keyboard start-up code here
6 // runs once when the firmware starts up
7 matrix_init_user();
8 led_init_ports();
9};
10
11void matrix_scan_kb(void) {
12 // put your looping keyboard code here
13 // runs every cycle (a lot)
14 matrix_scan_user();
15};
16
17void led_init_ports(void) {
18 // * Set our LED pins as output
19 DDRE |= (1 << 6);
20
21 //Set output high, so the capslock led is off
22 PORTE |= (1 << 6);
23}
24
25void led_set_kb(uint8_t usb_led) {
26 led_set_user(usb_led);
27}
diff --git a/keyboards/evyd13/atom47/rev3/rev3.h b/keyboards/evyd13/atom47/rev3/rev3.h
new file mode 100644
index 000000000..ad875bb40
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev3/rev3.h
@@ -0,0 +1,23 @@
1#ifndef ATOM47_REV3_H
2#define ATOM47_REV3_H
3
4#include "quantum.h"
5
6// readability
7#define XXX KC_NO
8
9#define LAYOUT( \
10 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \
11 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \
12 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
13 k30, k31, k32, k33, k35, k37, k39, k3a, k3b, k3c \
14) \
15{ \
16 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c}, \
17 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, XXX, k1c}, \
18 {k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c}, \
19 {k30, k31, k32, k33, XXX, k35, XXX, k37, XXX, k39, k3a, k3b, k3c} \
20}
21
22
23#endif
diff --git a/keyboards/evyd13/atom47/rev3/rules.mk b/keyboards/evyd13/atom47/rev3/rules.mk
new file mode 100644
index 000000000..2df225e38
--- /dev/null
+++ b/keyboards/evyd13/atom47/rev3/rules.mk
@@ -0,0 +1,2 @@
1NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
2RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
diff --git a/keyboards/evyd13/atom47/rules.mk b/keyboards/evyd13/atom47/rules.mk
new file mode 100644
index 000000000..72c0b219b
--- /dev/null
+++ b/keyboards/evyd13/atom47/rules.mk
@@ -0,0 +1,28 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = qmk-dfu
13
14# Build Options
15# comment out to disable the options.
16#
17BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = no # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = no # Console for debug
21COMMAND_ENABLE = no # Commands for debug and configuration
22BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
23MIDI_ENABLE = no # MIDI controls
24AUDIO_ENABLE = no
25UNICODE_ENABLE = no # Unicode
26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
27
28DEFAULT_FOLDER = evyd13/atom47/rev3