1
0
Fork 0

[Keyboard] Add S7 Elephant Rev2 Support (#9398)

* Add S7 Elephant Rev2 Support

* Apply suggestions from code review

I tested the changes on my board as well, thanks for the suggestions!

* Added a default folder in the makefile so that this would no longer be a breaking change
This commit is contained in:
George Mao 2020-06-13 23:39:57 -07:00 committed by James Young
parent ba7f52aaeb
commit 622e94c6cd
No known key found for this signature in database
GPG key ID: CE359FA964686FFB
23 changed files with 670 additions and 37 deletions

View file

@ -4,13 +4,16 @@
A high-end 70% custom keyboard designed and produced by [jacky](https://geekhack.org/index.php?action=profile;u=63864) from Geekhack. A high-end 70% custom keyboard designed and produced by [jacky](https://geekhack.org/index.php?action=profile;u=63864) from Geekhack.
Keyboard Maintainer: QMK Community **Firmware files are SPECIFIC to each revision. Firmware files from rev1 will not work on rev2 and vice versa.** Please use the `.hex` appropriate for your board.
Hardware Supported: S7 Elephant
Hardware Availability: [The GB has ended with little chance to run again.](https://geekhack.org/index.php?topic=96434.0) * Keyboard Maintainer: QMK Community
* Hardware Supported: S7 Elephant rev1, rev2
* Hardware Availability: [The GB has had 2 rounds with little chance to run again.](https://geekhack.org/index.php?topic=96434.0)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make s7_elephant:default:dfu make s7_elephant/rev1:default # 2018 run
make s7_elephant/rev2:default # 2019 run
To enter the bootloader, either short the pins on the PCB or the RESET button on the FN layer. To enter the bootloader, either short the pins on the PCB or the RESET button on the FN layer.

View file

@ -3,7 +3,7 @@
#include "config_common.h" #include "config_common.h"
/* USB Device descriptor parameter */ /* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED #define VENDOR_ID 0xA13B // Hexidecimal A13B will be Jacky's vendor ID
#define PRODUCT_ID 0x0007 #define PRODUCT_ID 0x0007
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER jacky #define MANUFACTURER jacky
@ -22,9 +22,6 @@
/* COL2ROW or ROW2COL */ /* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW #define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE #define LOCKING_SUPPORT_ENABLE
@ -40,3 +37,12 @@
#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP #define RGBLIGHT_SLEEP
#endif #endif
/* 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

View file

@ -0,0 +1,17 @@
# S7 Elephant
![S7 Elephant](https://i.imgur.com/CaHxKBJ.jpg)
A high-end 70% custom keyboard designed and produced by [jacky](https://geekhack.org/index.php?action=profile;u=63864) from Geekhack.
* Keyboard Maintainer: QMK Community
* Hardware Supported: S7 Elephant
* Hardware Availability: [The GB has ended with little chance to run again.](https://geekhack.org/index.php?topic=96434.0)
Make example for this keyboard (after setting up your build environment):
make s7_elephant/rev1:default
To enter the bootloader, either short the pins on the PCB or the RESET button on the FN layer.
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).

View file

@ -0,0 +1 @@
#include "rev1.h"

View file

@ -1,5 +1,4 @@
#ifndef S7_ELEPHANT_H #pragma once
#define S7_ELEPHANT_H
#include "quantum.h" #include "quantum.h"
@ -852,4 +851,3 @@ K400, K401, K402, K403, K407, K410, K4
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \
{ K400, K401, K402, K403, ____, ____, ____, K407, ____, ____, K410, ____, ____, K413, K414, K415 } \ { K400, K401, K402, K403, ____, ____, ____, K407, ____, ____, K410, ____, ____, K413, K414, K415 } \
} }
#endif

View file

@ -0,0 +1,25 @@
# 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 = atmel-dfu
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = no # 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
RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality

View file

@ -0,0 +1,83 @@
/*
Copyright 2020 MudkipMao
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 0xA13B // Hexidecimal A13B will be Jacky's vendor ID
#define PRODUCT_ID 0x0008 // 8 for S7++
#define DEVICE_VER 0x0002
#define MANUFACTURER Jacky
#define PRODUCT Jacky S7 Elephant Rev 2
#define DESCRIPTION A high-end 70% custom keyboard
/* Don't remove this without also removing LTO_ENABLE=yes in rules.mk */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 16
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*
* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7 }
#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, F7, F6, F5, F4, F1, F0, E6 }
/* Setting the matrix value of top left key for bootmagic lite */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 15
#define DIODE_DIRECTION ROW2COL
#define BACKLIGHT_PIN B6
// #define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 15
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 2
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#endif // RGB_DI_PIN
/* 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
// generated by KBFirmware JSON to QMK Parser
// https://noroadsleft.github.io/kbf_qmk_converter/

View file

@ -0,0 +1,167 @@
{
"keyboard_name": "S7 Elephant Rev2",
"url": "https://geekhack.org/index.php?topic=103148.0",
"maintainer": "qmk",
"width": 17.25,
"height": 5,
"layouts": {
"LAYOUT_all": {
"key_count": 75,
"layout": [
{"label":"K0F (B0,E6)", "x":0, "y":0},
{"label":"K00 (B0,D0)", "x":1.25, "y":0},
{"label":"K01 (B0,D1)", "x":2.25, "y":0},
{"label":"K02 (B0,D2)", "x":3.25, "y":0},
{"label":"K03 (B0,D3)", "x":4.25, "y":0},
{"label":"K04 (B0,D5)", "x":5.25, "y":0},
{"label":"K05 (B0,D4)", "x":6.25, "y":0},
{"label":"K06 (B0,D6)", "x":7.25, "y":0},
{"label":"K07 (B0,D7)", "x":8.25, "y":0},
{"label":"K08 (B0,B4)", "x":9.25, "y":0},
{"label":"K09 (B0,F7)", "x":10.25, "y":0},
{"label":"K0A (B0,F6)", "x":11.25, "y":0},
{"label":"K0B (B0,F5)", "x":12.25, "y":0},
{"label":"K0C (B0,F4)", "x":13.25, "y":0},
{"label":"K0D (B0,F1)", "x":14.25, "y":0},
{"label":"K0E (B0,F0)", "x":15.25, "y":0},
{"label":"K4E (B7,F0)", "x":16.25, "y":0},
{"label":"K1F (B1,E6)", "x":0, "y":1},
{"label":"K10 (B1,D0)", "x":1.25, "y":1, "w":1.5},
{"label":"K11 (B1,D1)", "x":2.75, "y":1},
{"label":"K12 (B1,D2)", "x":3.75, "y":1},
{"label":"K13 (B1,D3)", "x":4.75, "y":1},
{"label":"K14 (B1,D5)", "x":5.75, "y":1},
{"label":"K15 (B1,D4)", "x":6.75, "y":1},
{"label":"K16 (B1,D6)", "x":7.75, "y":1},
{"label":"K17 (B1,D7)", "x":8.75, "y":1},
{"label":"K18 (B1,B4)", "x":9.75, "y":1},
{"label":"K19 (B1,F7)", "x":10.75, "y":1},
{"label":"K1A (B1,F6)", "x":11.75, "y":1},
{"label":"K1B (B1,F5)", "x":12.75, "y":1},
{"label":"K1C (B1,F4)", "x":13.75, "y":1},
{"label":"K2C (B2,F4)", "x":14.75, "y":1, "w":1.5},
{"label":"K1E (B1,F0)", "x":16.25, "y":1},
{"label":"K2F (B2,E6)", "x":0, "y":2},
{"label":"K20 (B2,D0)", "x":1.25, "y":2, "w":1.75},
{"label":"K21 (B2,D1)", "x":3, "y":2},
{"label":"K22 (B2,D2)", "x":4, "y":2},
{"label":"K23 (B2,D3)", "x":5, "y":2},
{"label":"K24 (B2,D5)", "x":6, "y":2},
{"label":"K25 (B2,D4)", "x":7, "y":2},
{"label":"K26 (B2,D6)", "x":8, "y":2},
{"label":"K27 (B2,D7)", "x":9, "y":2},
{"label":"K28 (B2,B4)", "x":10, "y":2},
{"label":"K29 (B2,F7)", "x":11, "y":2},
{"label":"K2A (B2,F6)", "x":12, "y":2},
{"label":"K2B (B2,F5)", "x":13, "y":2},
{"label":"K1D (B1,F1)", "x":14, "y":2, "w":2.25},
{"label":"K2E (B2,F0)", "x":16.25, "y":2},
{"label":"K3F (B3,E6)", "x":0, "y":3},
{"label":"K30 (B3,D0)", "x":1.25, "y":3, "w":1.25},
{"label":"K31 (B3,D1)", "x":2.5, "y":3},
{"label":"K32 (B3,D2)", "x":3.5, "y":3},
{"label":"K33 (B3,D3)", "x":4.5, "y":3},
{"label":"K34 (B3,D5)", "x":5.5, "y":3},
{"label":"K35 (B3,D4)", "x":6.5, "y":3},
{"label":"K36 (B3,D6)", "x":7.5, "y":3},
{"label":"K37 (B3,D7)", "x":8.5, "y":3},
{"label":"K38 (B3,B4)", "x":9.5, "y":3},
{"label":"K39 (B3,F7)", "x":10.5, "y":3},
{"label":"K3A (B3,F6)", "x":11.5, "y":3},
{"label":"K3B (B3,F5)", "x":12.5, "y":3},
{"label":"K3C (B3,F4)", "x":13.5, "y":3, "w":1.75},
{"label":"K3D (B3,F1)", "x":15.25, "y":3},
{"label":"K3E (B3,F0)", "x":16.25, "y":3},
{"label":"K4F (B7,E6)", "x":0, "y":4},
{"label":"K40 (B7,D0)", "x":1.25, "y":4, "w":1.25},
{"label":"K41 (B7,D1)", "x":2.5, "y":4, "w":1.25},
{"label":"K42 (B7,D2)", "x":3.75, "y":4, "w":1.25},
{"label":"K46 (B7,D6)", "x":5, "y":4, "w":6.25},
{"label":"K48 (B7,B4)", "x":11.25, "y":4},
{"label":"K49 (B7,F7)", "x":12.25, "y":4},
{"label":"K4A (B7,F6)", "x":13.25, "y":4},
{"label":"K4B (B7,F5)", "x":14.25, "y":4},
{"label":"K4C (B7,F4)", "x":15.25, "y":4},
{"label":"K4D (B7,F1)", "x":16.25, "y":4}
]
},
"LAYOUT_ansi_1u": {
"key_count": 73,
"layout": [
{"label":"K0F", "x":0, "y":0},
{"label":"K00", "x":1.25, "y":0},
{"label":"K01", "x":2.25, "y":0},
{"label":"K02", "x":3.25, "y":0},
{"label":"K03", "x":4.25, "y":0},
{"label":"K04", "x":5.25, "y":0},
{"label":"K05", "x":6.25, "y":0},
{"label":"K06", "x":7.25, "y":0},
{"label":"K07", "x":8.25, "y":0},
{"label":"K08", "x":9.25, "y":0},
{"label":"K09", "x":10.25, "y":0},
{"label":"K0A", "x":11.25, "y":0},
{"label":"K0B", "x":12.25, "y":0},
{"label":"K0C", "x":13.25, "y":0},
{"label":"K0E", "x":14.25, "y":0, "w":2},
{"label":"K4E", "x":16.25, "y":0},
{"label":"K1F", "x":0, "y":1},
{"label":"K10", "x":1.25, "y":1, "w":1.5},
{"label":"K11", "x":2.75, "y":1},
{"label":"K12", "x":3.75, "y":1},
{"label":"K13", "x":4.75, "y":1},
{"label":"K14", "x":5.75, "y":1},
{"label":"K15", "x":6.75, "y":1},
{"label":"K16", "x":7.75, "y":1},
{"label":"K17", "x":8.75, "y":1},
{"label":"K18", "x":9.75, "y":1},
{"label":"K19", "x":10.75, "y":1},
{"label":"K1A", "x":11.75, "y":1},
{"label":"K1B", "x":12.75, "y":1},
{"label":"K1C", "x":13.75, "y":1},
{"label":"K2C", "x":14.75, "y":1, "w":1.5},
{"label":"K1E", "x":16.25, "y":1},
{"label":"K2F", "x":0, "y":2},
{"label":"K20", "x":1.25, "y":2, "w":1.75},
{"label":"K21", "x":3, "y":2},
{"label":"K22", "x":4, "y":2},
{"label":"K23", "x":5, "y":2},
{"label":"K24", "x":6, "y":2},
{"label":"K25", "x":7, "y":2},
{"label":"K26", "x":8, "y":2},
{"label":"K27", "x":9, "y":2},
{"label":"K28", "x":10, "y":2},
{"label":"K29", "x":11, "y":2},
{"label":"K2A", "x":12, "y":2},
{"label":"K2B", "x":13, "y":2},
{"label":"K1D", "x":14, "y":2, "w":2.25},
{"label":"K2E", "x":16.25, "y":2},
{"label":"K3F", "x":0, "y":3},
{"label":"K30", "x":1.25, "y":3, "w":2.25},
{"label":"K32", "x":3.5, "y":3},
{"label":"K33", "x":4.5, "y":3},
{"label":"K34", "x":5.5, "y":3},
{"label":"K35", "x":6.5, "y":3},
{"label":"K36", "x":7.5, "y":3},
{"label":"K37", "x":8.5, "y":3},
{"label":"K38", "x":9.5, "y":3},
{"label":"K39", "x":10.5, "y":3},
{"label":"K3A", "x":11.5, "y":3},
{"label":"K3B", "x":12.5, "y":3},
{"label":"K3C", "x":13.5, "y":3, "w":1.75},
{"label":"K3D", "x":15.25, "y":3},
{"label":"K3E", "x":16.25, "y":3},
{"label":"K4F", "x":0, "y":4},
{"label":"K40", "x":1.25, "y":4, "w":1.25},
{"label":"K41", "x":2.5, "y":4, "w":1.25},
{"label":"K42", "x":3.75, "y":4, "w":1.25},
{"label":"K46", "x":5, "y":4, "w":6.25},
{"label":"K48", "x":11.25, "y":4},
{"label":"K49", "x":12.25, "y":4},
{"label":"K4A", "x":13.25, "y":4},
{"label":"K4B", "x":14.25, "y":4},
{"label":"K4C", "x":15.25, "y":4},
{"label":"K4D", "x":16.25, "y":4}
]
}
}
}

View file

@ -0,0 +1,65 @@
#include QMK_KEYBOARD_H
enum custom_layers {
_QWERTY,
_FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,------. ,-------------------------------------------------------------------------------------------------.
* | F1 | | Esc`~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins |
* |------| |-------------------------------------------------------------------------------------------------|
* | F2 | | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del |
* |------| |-------------------------------------------------------------------------------------------------|
* | F3 | | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Home|
* |------| |-------------------------------------------------------------------------------------------------|
* | F4 | | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | U | End |
* |------| |-------------------------------------------------------------------------------------------------|
* | F5 | | Ctrl | Gui | Alt | Space | RAlt | FN | RCtrl | L | D | R |
* `------' `-------------------------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_ansi_1u(
KC_F1, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
KC_F2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_F3, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
/* FN
* ,------. ,-------------------------------------------------------------------------------------------------.
* |Reset | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr | ScrLck |Pause|
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | |Prev |Play |Next | | | | |VolD |Mute |VolU | | |PgUp |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | |PgDn |
* |------| |-------------------------------------------------------------------------------------------------|
* |EEPRST| | | | | | | | | | | |
* `------' `-------------------------------------------------------------------------------------------------'
*/
[_FN] = LAYOUT_ansi_1u(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, KC_PGUP,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN,
EEP_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
bool led_update_user(led_t led_state) {
// Turn LEDs On/Off for Caps Lock
if (led_state.caps_lock) {
rgblight_enable_noeeprom();
rgblight_sethsv_noeeprom(0, 0, 80);
} else {
rgblight_sethsv_noeeprom(0, 0, 80);
rgblight_disable_noeeprom();
}
return false;
}

View file

@ -0,0 +1,35 @@
# Default keymap for S7 Elephant
**Features**
* LEDs are functioning as Caps-Lock indicators
## QWERTY (Normal) Layer
```
,------. ,-------------------------------------------------------------------------------------------------.
| F1 | | Esc`~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |Home |
|------| |-------------------------------------------------------------------------------------------------|
| F2 | | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | End |
|------| |-------------------------------------------------------------------------------------------------|
| F3 | | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Ins |
|------| |-------------------------------------------------------------------------------------------------|
| F4 | | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | U | Del |
|------| |-------------------------------------------------------------------------------------------------|
| F5 | | Ctrl | Gui | Alt | Space | FN | RAlt | RCtrl | L | D | R |
`------' `-------------------------------------------------------------------------------------------------'
```
## FN Layer
```
,------. ,-------------------------------------------------------------------------------------------------.
|Reset | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr | ScrLck |Pause|
|------| |-------------------------------------------------------------------------------------------------|
| | | | | | | | | | | | | | | | | |
|------| |-------------------------------------------------------------------------------------------------|
| | | |Prev |Play |Next | | | | |VolD |Mute |VolU | | |PgUp |
|------| |-------------------------------------------------------------------------------------------------|
| | | | | | | | | | | | | | | |PgDn |
|------| |-------------------------------------------------------------------------------------------------|
|EPRM | | | | | | | | | | | |
`------' `-------------------------------------------------------------------------------------------------'
```

View file

@ -0,0 +1,92 @@
#include QMK_KEYBOARD_H
// For readability
enum layer_names {
_BASE,
_FN1,
_FN2,
_FN3,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default layer
* ,------. ,-------------------------------------------------------------------------------------------------.
* | F1 | | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc | Ins |
* |------| |-------------------------------------------------------------------------------------------------|
* | F2 | | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Del |
* |------| |-------------------------------------------------------------------------------------------------|
* | F3 | | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter |Home |
* |------| |-------------------------------------------------------------------------------------------------|
* | F4 | | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | U | End |
* |------| |-------------------------------------------------------------------------------------------------|
* | F5 | | Ctrl | Gui | Alt | Space | RAlt | FN | RCtrl | L | D | R |
* `------' `-------------------------------------------------------------------------------------------------'
*/
[_BASE] = LAYOUT_ansi_1u(
KC_F1, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
KC_F2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_F3, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
/* Fn1 Layer
* ,------. ,-------------------------------------------------------------------------------------------------.
* | F6 | | `~ | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | F7 | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | F8 | | |VolD |VolU |Mute | | | | | | | | | |PgUp |
* |------| |-------------------------------------------------------------------------------------------------|
* | F9 | | |Prev |Play |Next | | | | | | | | | |PgDn |
* |------| |-------------------------------------------------------------------------------------------------|
* | F10 | | | | | | | | | | | |
* `------' `-------------------------------------------------------------------------------------------------'
*/
[_FN1] = LAYOUT_ansi_1u(
KC_F6, KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_F7, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_F8, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
KC_F9, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
KC_F10, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
/* Fn2 Layer
* ,------. ,-------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | |
* `------' `-------------------------------------------------------------------------------------------------'
*/
[_FN2] = LAYOUT_ansi_1u(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
/* Fn3 Layer
* ,------. ,-------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | |
* `------' `-------------------------------------------------------------------------------------------------'
*/
[_FN3] = LAYOUT_ansi_1u(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View file

@ -0,0 +1,35 @@
# Default keymap for S7 Elephant
**Features**
* LEDs are functioning as Caps-Lock indicators
## QWERTY (Normal) Layer
```
,------. ,-------------------------------------------------------------------------------------------------.
| F1 | | Esc`~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |Home |
|------| |-------------------------------------------------------------------------------------------------|
| F2 | | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | End |
|------| |-------------------------------------------------------------------------------------------------|
| F3 | | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Ins |
|------| |-------------------------------------------------------------------------------------------------|
| F4 | | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | U | Del |
|------| |-------------------------------------------------------------------------------------------------|
| F5 | | Ctrl | Gui | Alt | Space | FN | RAlt | RCtrl | L | D | R |
`------' `-------------------------------------------------------------------------------------------------'
```
## FN Layer
```
,------. ,-------------------------------------------------------------------------------------------------.
|Reset | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr | ScrLck |Pause|
|------| |-------------------------------------------------------------------------------------------------|
| | | | | | | | | | | | | | | | | |
|------| |-------------------------------------------------------------------------------------------------|
| | | |Prev |Play |Next | | | | |VolD |Mute |VolU | | |PgUp |
|------| |-------------------------------------------------------------------------------------------------|
| | | | | | | | | | | | | | | |PgDn |
|------| |-------------------------------------------------------------------------------------------------|
|EPRM | | | | | | | | | | | |
`------' `-------------------------------------------------------------------------------------------------'
```

View file

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

View file

@ -0,0 +1,17 @@
# S7 Elephant
![S7 Elephant](https://i.imgur.com/CaHxKBJ.jpg)
A high-end 70% custom keyboard designed and produced by [jacky](https://geekhack.org/index.php?action=profile;u=63864) from Geekhack.
* Keyboard Maintainer: QMK Community
* Hardware Supported: S7 Elephant
* Hardware Availability: [The GB has ended with little chance to run again.](https://geekhack.org/index.php?topic=96434.0)
Make example for this keyboard (after setting up your build environment):
make s7_elephant/rev2:default
To enter the bootloader, either short the pins on the PCB next to CAPSLOCK or the press the RESET button on the FN layer.
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).

View file

@ -0,0 +1,19 @@
/* Copyright 2020 MudkipMao
*
* 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 "rev2.h"
// generated by KBFirmware JSON to QMK Parser
// https://noroadsleft.github.io/kbf_qmk_converter/

View file

@ -0,0 +1,61 @@
#pragma once
#include "quantum.h"
#define ___ KC_NO
/* ALL: This is an odd layout that the JSON file comes preloaded with. Split left-shift and ansi enter
* ,------. ,-------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
| | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | | | | |
* |------| |-------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | |
* `------' `-------------------------------------------------------------------------------------------------'
*/
#define LAYOUT_all( \
K0F, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K4E, \
K1F, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
K2F, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K1D, K2E, \
K3F, K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
K4F, K40, K41, K42, K46, K48, K49, K4A, K4B, K4C, K4D \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___, K2E, K2F }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
{ K40, K41, K42, ___, ___, ___, K46, ___, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F } \
}
/* ANSI
* ,---. ,---------------------------------------------------------------.
* | | | | | | | | | | | | | | | | | |
* |---| |---------------------------------------------------------------|
* | | | | | | | | | | | | | | | | | |
* |---| |---------------------------------------------------------------|
* | | | | | | | | | | | | | | | | |
* |---| |---------------------------------------------------------------|
* | | | | | | | | | | | | | | | | |
* |---| |---------------------------------------------------------------|
* | | | | | | | | | | | | |
* `---' `---------------------------------------------------------------'
*/
#define LAYOUT_ansi_1u( \
K0F, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K4E, \
K1F, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
K2F, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K1D, K2E, \
K3F, K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
K4F, K40, K41, K42, K46, K48, K49, K4A, K4B, K4C, K4D \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___, K2E, K2F }, \
{ K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
{ K40, K41, K42, ___, ___, ___, K46, ___, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F } \
}

View file

@ -0,0 +1,33 @@
# 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 = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # 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
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LTO_ENABLE = yes

View file

@ -1,25 +1 @@
# MCU name DEFAULT_FOLDER = s7_elephant/rev1
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 = atmel-dfu
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = no # 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
RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality

View file

@ -1 +0,0 @@
#include "s7_elephant.h"