1
0
Fork 0

[Keyboard] Initial commit of Laptreus Keyboard (#4967)

* Add userspace files for vosechu

* Code review corrections

* Few more code review corrections

* Initial add of Laptreus code

* Initial add of Laptreus code

* Adding last punctuation to default

* Add some debug suggestions to the debug readme

* Fixes for PR feedback

* Fixing capitalization of readme files

* update auto detect connection logic
This commit is contained in:
Chuck Lauer Vose 2019-02-06 14:41:17 -08:00 committed by Drashna Jaelre
parent 35f6919673
commit a3104a7110
11 changed files with 502 additions and 0 deletions

View file

@ -0,0 +1,11 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* ============================= DEBUG LAYER ============================= */
[0] = LAYOUT(
KC_A, KC_1, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,
KC_A, KC_2, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,
KC_A, KC_3, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,
KC_A, KC_4, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L
)
};

View file

@ -0,0 +1,81 @@
# Debug layout
This layout is expressly for debugging to see if your keys are working.
## Flashing
**NOTE**: Make sure you don't have a second QMK keyboard plugged in when you do this!
To compile and flash to the board:
make laptreus:debug:avrdude
To just compile:
make laptreus:debug
Then use QMK toolbox to write the file
# Testing
Now that you've got the image flashed, do the following:
* Open a new text document
* Click each key in order and hit enter (with the other keyboard) between each line
* For any keys that don't register, hit space (with the other keyboard) and continue on
* You'll end up with something looking like this:
a1bcdefghijkl
a2bcdefghijkl
a3bcdefghijkl
a4bcdefghijkl
But almost certainly it won't be perfect, so lets go through some scenarios:
## Step 1: Get all the letters to output _something_
For lines that look like this:
a1bc efg ijkl
* Option 1: Bent pin - Pull out the switch in those spots, probably the pin got bent when you inserted it into the hotswap socket. Gently bend the pin straight and re-insert.
* Option 2: Broken joint on hotswap - If the pin looks okay, try connecting the two metal plated holes underneath the hotswap holes to see if the letter comes out. If it does, reflow (aka, apply some flux to both pads and reheat) the solder joint.
* Option 3: Diode is backwards - If connecting the two metal pins didn't work, double check that the diode is the right direction. This may also need to be reflowed.
* Option 4: ??? - Hop in [the discord]() and let's chat!
## Step 2: Correct double letters
Once you have all the keys outputting _anything_, flash the default layout and do the same thing. If everything is working, your layout will look something like this:
qwertyuiop
asdfghjkl;'
zxcvbnm,./
**Note**: Don't worry about hitting the backspace or command keys
### Duplicate letters
For lines that look like this:
qwertyyuiop (double y)
* Option 1: Bent pin - Pull out the switch in those spots, probably the pin got bent when you inserted it into the hotswap socket. Gently bend the pin straight and re-insert.
* Option 2: Switch is broken - Try connecting the two metal plated holes underneath the hotswap holes to see if the letter comes out just once. If it does, the switch is broken and should be replaced. If you don't have another switch, you _may_ be able to unbend the leaf inside the switch, but it's really tricky.
### Second letter sent (same row)
For lines that look like this:
qwertyyuiop (t sent t AND y)
* Option 1: ??? - I can't imagine how this would happen with this layout, but let me know if it does!
### Second letter sent (same column)
For lines that look like this:
qwertgyuiop (t sent t AND g)
qwertgbyuiop (t sent t AND g AND b)
* Option 1: Diodes are backwards - Some of the diodes on this column are backwards, you can use a diode tester to confirm the direction, or just check them with a magnifying glass and switch them if needed.
* Option 2: ???

View file

@ -0,0 +1,74 @@
#include QMK_KEYBOARD_H
enum layer_names {
_QWERTY = 0,
_DVORAK,
_LOWER,
_RAISE,
_LIFT
};
// Fillers to make layering more clear
#define _LAYER_ KC_TRNS
// Adding macros to make the keymaps below much easier to read.
#define CTL_ESC CTL_T(KC_ESC)
#define CTL_GRV CTL_T(KC_GRV)
#define ALT_TAB ALT_T(KC_TAB)
#define SFT_SPC SFT_T(KC_SPC)
// Extended alpha key layers
#define RSE_J LT(_RAISE, KC_J)
#define LWR_F LT(_LOWER, KC_F)
#define RSE_H LT(_RAISE, KC_H)
#define LWR_U LT(_LOWER, KC_U)
#define LFT_BK LT(_LIFT, KC_BSPC)
#define LFT_ENT LT(_LIFT, KC_ENT)
// Macro keys for some apps
#define SLACKUP LALT(LSFT(KC_UP))
#define SLACKDN LALT(LSFT(KC_DOWN))
#define TAB_LFT LGUI(LSFT(KC_LBRC))
#define TAB_RGT LGUI(LSFT(KC_RBRC))
#define BWSR_BK LGUI(KC_LBRC)
#define BWSR_FW LGUI(KC_RBRC)
#define SCR_LFT HYPR(KC_LEFT)
#define SCR_RGT HYPR(KC_RGHT)
#define SCR_FUL HYPR(KC_F)
// Layer toggles
#define TO_QW TO(_QWERTY)
#define TO_DV TO(_DVORAK)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC ,
KC_ESC , KC_A , KC_S , KC_D , LWR_F , KC_G , KC_H , RSE_J , KC_K , KC_L , KC_SCLN , KC_QUOT ,
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_ENT ,
KC_HYPR , CTL_GRV , ALT_TAB , KC_LGUI , LFT_BK , SFT_SPC , KC_SPC , LFT_ENT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT
),
[_DVORAK] = LAYOUT(
KC_TAB , KC_QUOT , KC_COMM , KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_BSPC ,
KC_ESC , KC_A , KC_O , KC_E , LWR_U , KC_I , KC_D , RSE_H , KC_T , KC_N , KC_S , KC_SLSH ,
KC_LSFT , KC_SCLN , KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , KC_ENT ,
KC_HYPR , CTL_GRV , ALT_TAB , KC_LGUI , LFT_BK , SFT_SPC , KC_SPC , LFT_ENT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT
),
[_LOWER] = LAYOUT(
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_7 , KC_8 , KC_9 , XXXXXXX , _______ ,
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _LAYER_ , XXXXXXX , XXXXXXX , KC_4 , KC_5 , KC_6 , XXXXXXX , _______ ,
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , XXXXXXX , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_0 , KC_DOT , _______ , _______
),
[_RAISE] = LAYOUT(
_______ , KC_LABK , KC_RABK , KC_LCBR , KC_RCBR , KC_EQL , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
_______ , KC_LPRN , KC_RPRN , KC_LBRC , KC_RBRC , KC_MINS , XXXXXXX , _LAYER_ , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
_______ , XXXXXXX , XXXXXXX , XXXXXXX , KC_BSLS , KC_SLSH , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
),
[_LIFT] = LAYOUT(
_______ , BWSR_BK , TAB_LFT , KC_UP , TAB_RGT , BWSR_FW , KC_MUTE , XXXXXXX , SCR_LFT , SCR_FUL , SCR_RGT , _______ ,
_______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_RGHT , KC_PGUP , KC_VOLU , SLACKUP , XXXXXXX , XXXXXXX , TO_QW , _______ ,
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PGDN , KC_VOLD , SLACKDN , XXXXXXX , XXXXXXX , TO_DV , _______ ,
_______ , RESET , _______ , _______ , _LAYER_ , KC_BSPC , _______ , KC_LSFT , KC_LGUI , KC_LALT , KC_LCTL , _______
)
};

View file

@ -0,0 +1,79 @@
# Default layout
This is the default layout for the Laptreus
## Layout
Some special things:
* Lower/Raise are on the F/J keys. Tap to type the character, hold to activate the layer
* Enter and Backspace also activate the Lift layer.
* -- To get repeated backspace, hold BkLft and then press Shift
### Qwerty
,-----------------------------------------------------------------------------------.
| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|------+------+------+------+------+-------------+------+------+------+------+------|
| Esc | A | S | D | Lwr/F| G | H | Rse/J| K | L | ; | " |
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| Z | X | C | V | B | N | M | , | . | / | Enter|
|------+------+------+------+------+------+------+------+------+------+------+------|
| Hyper|Ctrl/~|AltTab| Cmd | BkLft| Shift| Space|EntLft| Left | Down | Up | Right|
`-----------------------------------------------------------------------------------'
### Dvorak
,-----------------------------------------------------------------------------------.
| Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp |
|------+------+------+------+------+-------------+------+------+------+------+------|
| Esc | A | O | E | Lwr/U| I | D | Rse/H| T | N | S | / |
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| ; | Q | J | K | X | B | M | W | V | Z | Enter|
|------+------+------+------+------+------+------+------+------+------+------+------|
| Hyper|Ctrl/~|AltTab| Cmd | BkLft| Shift| Space|EntLft| Left | Down | Up | Right|
`-----------------------------------------------------------------------------------'
### Raise
,-----------------------------------------------------------------------------------.
| | < | > | { | } | | | | | | | |
|------+------+------+------+------+-------------+------+------+------+------+------|
| | ( | ) | [ | ] | | | | | | | |
|------+------+------+------+------+------|------+------+------+------+------+------|
| | | | | | | | | | | | |
|------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | BkLft| Shift| Space|EntLft| | | | |
`-----------------------------------------------------------------------------------'
### Lower
,-----------------------------------------------------------------------------------.
| | | | | | | | 7 | 8 | 9 | | |
|------+------+------+------+------+-------------+------+------+------+------+------|
| | | | | | | | 4 | 5 | 6 | | |
|------+------+------+------+------+------|------+------+------+------+------+------|
| | | | | | | | 1 | 2 | 3 | | |
|------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | BkLft| Shift| Space| 0 | 0 | . | | |
`-----------------------------------------------------------------------------------'
### Lift
,-----------------------------------------------------------------------------------.
| |Hist ←| Tab ←| ↑ | Tab →|Hist →| Mute | |ScrLft|ScrFul|ScrRgt| |
|------+------+------+------+------+-------------+------+------+------+------+------|
| | | ← | ↓ | → | Pg Up|Vol up|Slk up| | |Qwerty| |
|------+------+------+------+------+------|------+------+------+------+------+------|
| | | | | | Pg Dn|Vol dn|Slk dn| | |Dvorak| |
|------+------+------+------+------+------+------+------+------+------+------+------|
| | Reset| | | | Bksp | | Shift| Cmd | Opt | Ctrl | |
`-----------------------------------------------------------------------------------'
Special things:
* Hist: Back button in your browser
* Tab: Move one tab left/right in most mac apps
* Slk: Go to the previous/next unread conversation in Slack
* Scr: Make this app fill the left/right side of your monitor (or full screen)
* Since arrows are on this layer, the command keys are moved to the right side

View file

@ -0,0 +1,36 @@
#include QMK_KEYBOARD_H
#include "vosechu.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[DV] = LAYOUT(
PAWFIVE , KC_QUOT , KC_COMM , KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , RESET ,
KC_ESC , KC_A , KC_O , KC_E , LWR_U , KC_I , KC_D , RSE_H , KC_T , KC_N , KC_S , XXXXXXX ,
XXXXXXX , KC_SCLN , KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , KC_ENT ,
XXXXXXX , CTL_GRV , ALT_TAB , KC_LGUI , LFT_BK , SFT_SPC , KC_SPC , LFT_ENT , KC_MINS , KC_EQL , KC_SLSH , KC_BSLS
),
[QW] = LAYOUT(
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC ,
KC_ESC , KC_A , KC_S , KC_D , LWR_F , KC_G , KC_H , RSE_J , KC_K , KC_L , KC_SCLN , KC_QUOT ,
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_ENT ,
KC_HYPR , CTL_GRV , ALT_TAB , KC_LGUI , LFT_BK , SFT_SPC , KC_SPC , LFT_ENT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT
),
[LWR] = LAYOUT(
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_7 , KC_8 , KC_9 , XXXXXXX , _______ ,
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _LAYER_ , XXXXXXX , XXXXXXX , KC_4 , KC_5 , KC_6 , XXXXXXX , _______ ,
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , XXXXXXX , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_0 , KC_0 , KC_DOT , _______ , _______
),
[RSE] = LAYOUT(
_______ , KC_LABK , KC_RABK , KC_LCBR , KC_RCBR , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
_______ , KC_LPRN , KC_RPRN , KC_LBRC , KC_RBRC , XXXXXXX , XXXXXXX , _LAYER_ , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
),
[LFT] = LAYOUT(
_______ , BWSR_BK , TAB_LFT , KC_UP , TAB_RGT , BWSR_FW , KC_MUTE , XXXXXXX , SCR_LFT , SCR_FUL , SCR_RGT , _______ ,
_______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_RGHT , KC_PGUP , KC_VOLU , SLACKUP , XXXXXXX , XXXXXXX , TO(QW) , _______ ,
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PGDN , KC_VOLD , SLACKDN , XXXXXXX , XXXXXXX , TO(DV) , _______ ,
_______ , RESET , _______ , _______ , _LAYER_ , KC_BSPC , _______ , KC_LSFT , KC_LGUI , KC_LALT , KC_LCTL , _______
)
};