Skip to content

Commit

Permalink
[Keyboard] add Percent Canoe Gen2 (#10344)
Browse files Browse the repository at this point in the history
* Add Canoe Gen2

* Fix info.json

* Update info.json

* Changes

* Move canoegen2 to canoe_gen2

* Update canoe_gen2.h
  • Loading branch information
evyd13 authored Sep 26, 2020
1 parent c4cc697 commit 1b7101f
Show file tree
Hide file tree
Showing 10 changed files with 619 additions and 0 deletions.
141 changes: 141 additions & 0 deletions keyboards/percent/canoe_gen2/canoe_gen2.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
/*
Copyright 2020 Evy Dekkers
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 "canoe_gen2.h"

void keyboard_pre_init_kb(void) {
setPinOutput(E6);
writePinHigh(E6);
}

bool led_update_kb(led_t led_state) {
if(led_update_user(led_state)) {
writePin(E6, !led_state.caps_lock);
}

return true;
}

#ifdef RGB_MATRIX_ENABLE
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}

void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}

led_config_t g_led_config = { {
// Key Matrix to LED Index
// 15, 44, 46, 48,
// 74, 75, 76
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 },
{ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 13, 31 },
{ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 30, 45, 47 },
{ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 },
{ 64, 65, 66, NO_LED, NO_LED, NO_LED, 67, NO_LED, NO_LED, 69, 70, NO_LED, 71, 72, 73 }
}, {
// LED Index to Physical Position
{ 7, 8 }, // Esc
{ 22, 8 }, // 1
{ 37, 8 }, // 2
{ 52, 8 }, // 3
{ 67, 8 }, // 4
{ 82, 8 }, // 5
{ 97, 8 }, // 6
{ 112, 8 }, // 7
{ 127, 8 }, // 8
{ 142, 8 }, // 9
{ 157, 8 }, // 0
{ 172, 8 }, // -
{ 187, 8 }, // =
{ 202, 8 }, // split bs
{ 209, 8 }, // bs
{ 217, 8 }, // split bs
{ 231, 8 }, // ins
{ 11, 24 }, // tab
{ 30, 24 }, // q
{ 45, 24 }, // w
{ 60, 24 }, // e
{ 75, 24 }, // r
{ 90, 24 }, // t
{ 104, 24 }, // y
{ 119, 24 }, // u
{ 134, 24 }, // i
{ 149, 24 }, // o
{ 164, 24 }, // p
{ 179, 24 }, // [
{ 194, 24 }, // ]
{ 212, 24 }, // backslash
{ 231, 24 }, // del
{ 11, 40 }, // caps
{ 34, 40 }, // a
{ 49, 40 }, // s
{ 64, 40 }, // d
{ 79, 40 }, // f
{ 94, 40 }, // g
{ 108, 40 }, // h
{ 123, 40 }, // j
{ 138, 40 }, // k
{ 153, 40 }, // l
{ 168, 40 }, // ;
{ 183, 40 }, // '
{ 198, 40 }, // iso hash
{ 200, 40 }, // ansi enter
{ 215, 32 }, // iso enter
{ 231, 40 }, // pgup
{ 9, 56 }, // iso shift
{ 17, 56 }, // ansi shift
{ 26, 56 }, // iso nubs
{ 41, 56 }, // z
{ 56, 56 }, // x
{ 71, 56 }, // c
{ 86, 56 }, // v
{ 101, 56 }, // b
{ 116, 56 }, // n
{ 131, 56 }, // m
{ 146, 56 }, // ,
{ 161, 56 }, // .
{ 175, 56 }, // ?
{ 196, 56 }, // shift
{ 217, 56 }, // up
{ 231, 56 }, // pgdn
{ 10, 72 }, // ctrl
{ 29, 72 }, // win
{ 48, 72 }, // alt
{ 103, 72 }, // space
{ 112, 72 }, // space
{ 161, 72 }, // alt
{ 176, 72 }, // fn
{ 202, 72 }, // left
{ 217, 72 }, // down
{ 231, 72 }, // right
{ 7, 40 }, // top 1
{ 119, 40 }, // top 2
{ 231, 40 } // top 3
}, {
// LED Index to Flag
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
1, 1, 1, 4, 4, 1, 1, 1, 1, 1,
2, 2, 2
} };
#endif
54 changes: 54 additions & 0 deletions keyboards/percent/canoe_gen2/canoe_gen2.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
Copyright 2020 Evy Dekkers
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 "quantum.h"

// readability
#define ___ KC_NO

#define LAYOUT_all LAYOUT_65_iso_blocker_split_bs

#define LAYOUT_65_ansi_blocker_split_bs( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
k40, k41, k42, k46, k49, k4a, k4c, k4d, k4e \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e}, \
{k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \
{k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, ___, k4c, k4d, k4e} \
}

#define LAYOUT_65_iso_blocker_split_bs( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
k40, k41, k42, k46, k49, k4a, k4c, k4d, k4e \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e}, \
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \
{k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, ___, k4c, k4d, k4e} \
}
67 changes: 67 additions & 0 deletions keyboards/percent/canoe_gen2/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*
Copyright 2020 Evy Dekkers
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 0x9C12
#define PRODUCT_ID 0x89F0
#define DEVICE_VER 0x0001
#define MANUFACTURER Percent Studio
#define PRODUCT Canoe Gen2

/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15

// ROWS: Top to bottom, COLS: Left to right

#define MATRIX_ROW_PINS {B1,B3,B2,F5,F4}
#define MATRIX_COL_PINS {B0,D0,C6,B6,B5,B4,D7,D6,D4,D5,D3,D2,D1,F6,F7}
#define UNUSED_PINS

/* Uncomment if your encoder doesn't react to every turn or skips */
//#define ENCODER_RESOLUTION 2

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST

/* 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

/* Backlight configuration
*/
#define RGB_DI_PIN B7
#define DRIVER_LED_TOTAL 77
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150

#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
#define RGB_MATRIX_STARTUP_HUE 0
#define RGB_MATRIX_STARTUP_SAT 255
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
#define RGB_MATRIX_STARTUP_SPD 127
#define RGB_DISABLE_WHEN_USB_SUSPENDED true
Loading

0 comments on commit 1b7101f

Please sign in to comment.