diff options
| author | tominabox1 <tom.campie@gmail.com> | 2020-05-08 17:54:55 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-08 23:54:55 +0100 |
| commit | fedd8e81d1a0033c11c2a733e31037d36c798c81 (patch) | |
| tree | 531f4811894458f3cc0749a768622440de318707 /keyboards/le_chiffre | |
| parent | adda5d77707ea8f73d3d717f88802031b3f3fe27 (diff) | |
| download | qmk_firmware-fedd8e81d1a0033c11c2a733e31037d36c798c81.tar.gz qmk_firmware-fedd8e81d1a0033c11c2a733e31037d36c798c81.zip | |
Add Le Chiffre keyboard (#8995)
* Initial
* update json, added basic oled config, updated matrix to correct rotary location
* disable oled by default
* Tuned oled for release
* Completed OLED function implementation
Correct spelling error in readme
* Fixed image in readme
* Should not be in this branch
* Incorporating recommended changes by zvecr
* Update keyboards/le_chiffre/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/le_chiffre/readme.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Diffstat (limited to 'keyboards/le_chiffre')
| -rw-r--r-- | keyboards/le_chiffre/config.h | 46 | ||||
| -rw-r--r-- | keyboards/le_chiffre/info.json | 15 | ||||
| -rw-r--r-- | keyboards/le_chiffre/keymaps/default/keymap.c | 142 | ||||
| -rw-r--r-- | keyboards/le_chiffre/keymaps/default/readme.md | 1 | ||||
| -rw-r--r-- | keyboards/le_chiffre/le_chiffre.c | 1 | ||||
| -rw-r--r-- | keyboards/le_chiffre/le_chiffre.h | 18 | ||||
| -rw-r--r-- | keyboards/le_chiffre/readme.md | 15 | ||||
| -rw-r--r-- | keyboards/le_chiffre/rules.mk | 22 |
8 files changed, 260 insertions, 0 deletions
diff --git a/keyboards/le_chiffre/config.h b/keyboards/le_chiffre/config.h new file mode 100644 index 000000000..1ab07a645 --- /dev/null +++ b/keyboards/le_chiffre/config.h | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "config_common.h" | ||
| 4 | |||
| 5 | /* USB Device descriptor parameter */ | ||
| 6 | #define VENDOR_ID 0xFEED | ||
| 7 | #define PRODUCT_ID 0xD645 | ||
| 8 | #define DEVICE_VER 0x0001 | ||
| 9 | #define MANUFACTURER tominabox1 | ||
| 10 | #define PRODUCT Le Chiffre | ||
| 11 | |||
| 12 | /* key matrix size */ | ||
| 13 | #define MATRIX_ROWS 4 | ||
| 14 | #define MATRIX_COLS 10 | ||
| 15 | |||
| 16 | /* | ||
| 17 | * Keyboard Matrix Assignments | ||
| 18 | * | ||
| 19 | * Change this to how you wired your keyboard | ||
| 20 | * COLS: AVR pins used for columns, left to right | ||
| 21 | * ROWS: AVR pins used for rows, top to bottom | ||
| 22 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 23 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 24 | * | ||
| 25 | */ | ||
| 26 | #define MATRIX_ROW_PINS { B3, D4, F1, C6 } | ||
| 27 | #define MATRIX_COL_PINS { F4, F5, B0, B2, B1, B4, D7, C7, D2, F7 } | ||
| 28 | #define UNUSED_PINS | ||
| 29 | |||
| 30 | /* COL2ROW, ROW2COL*/ | ||
| 31 | #define DIODE_DIRECTION ROW2COL | ||
| 32 | |||
| 33 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 34 | #define DEBOUNCE 5 | ||
| 35 | |||
| 36 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 37 | #define LOCKING_SUPPORT_ENABLE | ||
| 38 | /* Locking resynchronize hack */ | ||
| 39 | #define LOCKING_RESYNC_ENABLE | ||
| 40 | |||
| 41 | /* Define encoder pads */ | ||
| 42 | #define ENCODERS_PAD_A { D5 } | ||
| 43 | #define ENCODERS_PAD_B { D3 } | ||
| 44 | |||
| 45 | /* #define RGB_DI_PIN F0 | ||
| 46 | #define RGBLED_NUM 1 */ | ||
diff --git a/keyboards/le_chiffre/info.json b/keyboards/le_chiffre/info.json new file mode 100644 index 000000000..eda303ffc --- /dev/null +++ b/keyboards/le_chiffre/info.json | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "le_chiffre", | ||
| 3 | "url": "", | ||
| 4 | "maintainer": "tominabox1", | ||
| 5 | "width": 11, | ||
| 6 | "height": 4, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT": { | ||
| 9 | "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Rotary", "x":5, "y":0, "w":1}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, | ||
| 10 | {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, | ||
| 11 | {"label":";", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, | ||
| 12 | {"label":"", "x":1.75, "y":3, "w":1.25}, {"label":"", "x":3, "y":3, "w":2}, {"label":"", "x":6, "y":3, "w":2}, {"label":"", "x":8, "y":3, "w":1.25}] | ||
| 13 | } | ||
| 14 | } | ||
| 15 | } | ||
diff --git a/keyboards/le_chiffre/keymaps/default/keymap.c b/keyboards/le_chiffre/keymaps/default/keymap.c new file mode 100644 index 000000000..d5ca6969d --- /dev/null +++ b/keyboards/le_chiffre/keymaps/default/keymap.c | |||
| @@ -0,0 +1,142 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | enum layers{ | ||
| 4 | _BASE, | ||
| 5 | _NUM_SYM, | ||
| 6 | _NAV | ||
| 7 | }; | ||
| 8 | |||
| 9 | #define KC_NUM_SPC LT(_NUM_SYM, KC_SPC) | ||
| 10 | #define KC_GA LGUI_T(KC_A) | ||
| 11 | #define KC_AS LALT_T(KC_S) | ||
| 12 | #define KC_CD LCTL_T(KC_D) | ||
| 13 | #define KC_SF LSFT_T(KC_F) | ||
| 14 | #define KC_SJ RSFT_T(KC_J) | ||
| 15 | #define KC_CK RCTL_T(KC_K) | ||
| 16 | #define KC_AL RALT_T(KC_L) | ||
| 17 | #define KC_GSCLN RGUI_T(KC_SCLN) | ||
| 18 | |||
| 19 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 20 | [_BASE] = LAYOUT( | ||
| 21 | KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MPLY, KC_Y, KC_U, KC_I, KC_O, KC_P, | ||
| 22 | KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_GSCLN, | ||
| 23 | KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, | ||
| 24 | KC_LCTL, KC_ENT, KC_NUM_SPC, MO(_NAV) | ||
| 25 | ), | ||
| 26 | |||
| 27 | [_NUM_SYM] = LAYOUT( | ||
| 28 | KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, | ||
| 29 | KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, | ||
| 30 | KC_BSLS,KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_DOT, KC_GRV, | ||
| 31 | KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS | ||
| 32 | ), | ||
| 33 | |||
| 34 | [_NAV] = LAYOUT( | ||
| 35 | RESET, _______, AG_NORM, AG_SWAP, DEBUG, KC_TRNS, KC_GRV, KC_PGDN, KC_UP, KC_PGUP, KC_SCLN, | ||
| 36 | RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, | ||
| 37 | RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_MINS, KC_RO, KC_COMM, KC_DOT, KC_BSLS, | ||
| 38 | KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS | ||
| 39 | ), | ||
| 40 | }; | ||
| 41 | |||
| 42 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 43 | if (index == 0) { | ||
| 44 | if (clockwise) { | ||
| 45 | tap_code(KC_MNXT); | ||
| 46 | } else { | ||
| 47 | tap_code(KC_MPRV); | ||
| 48 | } | ||
| 49 | } | ||
| 50 | } | ||
| 51 | |||
| 52 | #ifdef OLED_DRIVER_ENABLE | ||
| 53 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
| 54 | return OLED_ROTATION_90; // flips the display 180 degrees if offhand | ||
| 55 | } | ||
| 56 | |||
| 57 | void oled_task_user(void) { | ||
| 58 | static const char PROGMEM base_logo[] = { | ||
| 59 | // 'base', 32x128px | ||
| 60 | 0x00, 0x00, 0x80, 0x7c, 0x02, 0x01, 0x01, 0x80, 0x00, 0xe0, 0x50, 0x28, 0x98, 0x00, 0x00, 0x00, 0x00, | ||
| 61 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 62 | 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x40, 0x41, 0x41, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x00, | ||
| 63 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 64 | 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x40, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 65 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 66 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, | ||
| 67 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 68 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x02, 0x39, 0x27, 0x10, 0x00, 0x00, 0x00, | ||
| 69 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 70 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x00, | ||
| 71 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 72 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x13, 0x00, 0x00, | ||
| 73 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 74 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfc, | ||
| 75 | 0x22, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 76 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x60, 0x1f, 0x00, | ||
| 77 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 78 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 79 | 0x00, 0x90, 0x7e, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 80 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, | ||
| 81 | 0x30, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 82 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 83 | 0x00, 0x00, 0x00, 0x00, 0x08, 0xe4, 0x1c, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 84 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 85 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 86 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 87 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x54, 0x4a, 0x26, 0x00, 0x00, 0x00, 0x00, | ||
| 88 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 89 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 90 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 91 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
| 92 | }; | ||
| 93 | |||
| 94 | static const char PROGMEM base_caps_logo[] = { | ||
| 95 | // 'caps', 32x128px | ||
| 96 | 0x00, 0x00, 0x80, 0x7c, 0x02, 0x01, 0x01, 0x80, 0x00, 0xe0, 0x50, 0x28, 0x98, 0x00, 0x00, 0x00, 0x00, | ||
| 97 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 98 | 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x40, 0x41, 0x41, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x00, | ||
| 99 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 100 | 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x40, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 101 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 102 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, | ||
| 103 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 104 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x02, 0x39, 0x27, 0x10, 0x00, 0x00, 0x00, | ||
| 105 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 106 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x00, | ||
| 107 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 108 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x13, 0x00, 0x00, | ||
| 109 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 110 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfc, | ||
| 111 | 0x22, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 112 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x60, 0x1f, 0x00, | ||
| 113 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 114 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 115 | 0x00, 0x90, 0x7e, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 116 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, | ||
| 117 | 0x30, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 118 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 119 | 0x00, 0x00, 0x00, 0x00, 0x08, 0xe4, 0x1c, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 120 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 121 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 122 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 123 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x54, 0x4a, 0x26, 0x00, 0x00, 0x00, 0x00, | ||
| 124 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x10, 0x10, 0x30, 0x00, 0x00, 0x80, | ||
| 125 | 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 126 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x1e, 0x11, 0x09, 0x08, | ||
| 127 | 0x1e, 0x11, 0x81, 0x7d, 0x13, 0x11, 0x08, 0x17, 0x11, 0x12, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
| 128 | }; | ||
| 129 | |||
| 130 | switch (get_highest_layer(layer_state)) { | ||
| 131 | case _BASE: | ||
| 132 | if (host_keyboard_led_state().caps_lock) { | ||
| 133 | oled_write_raw_P(base_caps_logo, sizeof(base_caps_logo)); | ||
| 134 | } else { | ||
| 135 | oled_write_raw_P(base_logo, sizeof(base_logo)); | ||
| 136 | } | ||
| 137 | break; | ||
| 138 | default: | ||
| 139 | oled_write_raw_P(base_logo, sizeof(base_logo)); | ||
| 140 | } | ||
| 141 | } | ||
| 142 | #endif | ||
diff --git a/keyboards/le_chiffre/keymaps/default/readme.md b/keyboards/le_chiffre/keymaps/default/readme.md new file mode 100644 index 000000000..29f2d31f6 --- /dev/null +++ b/keyboards/le_chiffre/keymaps/default/readme.md | |||
| @@ -0,0 +1 @@ | |||
| # Default Le Chiffre Keymap | |||
diff --git a/keyboards/le_chiffre/le_chiffre.c b/keyboards/le_chiffre/le_chiffre.c new file mode 100644 index 000000000..2f28911b4 --- /dev/null +++ b/keyboards/le_chiffre/le_chiffre.c | |||
| @@ -0,0 +1 @@ | |||
| #include "le_chiffre.h" | |||
diff --git a/keyboards/le_chiffre/le_chiffre.h b/keyboards/le_chiffre/le_chiffre.h new file mode 100644 index 000000000..a95c0f262 --- /dev/null +++ b/keyboards/le_chiffre/le_chiffre.h | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "quantum.h" | ||
| 4 | |||
| 5 | #define XXX KC_NO | ||
| 6 | |||
| 7 | #define LAYOUT( \ | ||
| 8 | K00, K01, K02, K03, K04, K38, K05, K06, K07, K08, K09, \ | ||
| 9 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ | ||
| 10 | K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ | ||
| 11 | K32, K34, K35, K37 \ | ||
| 12 | ) \ | ||
| 13 | { \ | ||
| 14 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ | ||
| 15 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ | ||
| 16 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ | ||
| 17 | { XXX, XXX, K32, XXX, K34, K35, XXX, K37, K38, XXX } \ | ||
| 18 | } | ||
diff --git a/keyboards/le_chiffre/readme.md b/keyboards/le_chiffre/readme.md new file mode 100644 index 000000000..ead6d88b3 --- /dev/null +++ b/keyboards/le_chiffre/readme.md | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | # Le Chiffre | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | Le Chiffre (ironically, "the number" in French is a 30% keyboard designed by tominabox1. The purpose of the board is to provide a platform for MX and Choc ergo in one package for when ones wrists need a break. The board supports an RGB LED strip with DI on port F0. The board is also fitted with support for run-of-the-mill .91" OLED and EC11 rotary encoder. | ||
| 6 | |||
| 7 | * Keyboard Maintainer: [TJ Campie](https://github.com/tominabox1) | ||
| 8 | * Hardware Supported: Le Chiffre (source not available at this time) | ||
| 9 | * Hardware Availability: Bring your own case. | ||
| 10 | |||
| 11 | Make example for this keyboard (after setting up your build environment): | ||
| 12 | |||
| 13 | make le_chiffre:default | ||
| 14 | |||
| 15 | 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). | ||
diff --git a/keyboards/le_chiffre/rules.mk b/keyboards/le_chiffre/rules.mk new file mode 100644 index 000000000..d9d44e06e --- /dev/null +++ b/keyboards/le_chiffre/rules.mk | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = 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 | ||
| 12 | BOOTLOADER = atmel-dfu | ||
| 13 | |||
| 14 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 15 | MOUSEKEY_ENABLE = yes # Mouse keys | ||
| 16 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 17 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 18 | NKRO_ENABLE = yes # USB Nkey Rollover | ||
| 19 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 20 | TAP_DANCE_ENABLE = no | ||
| 21 | ENCODER_ENABLE = yes | ||
| 22 | OLED_DRIVER_ENABLE = no | ||
