Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CannonKeys Bakeneko65 Hotswap ISO PCB to QMK #20131

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions keyboards/cannonkeys/bakeneko65_iso_hs/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
Copyright 2015 Jun Wako <[email protected]>
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

#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 1
#define BACKLIGHT_PAL_MODE 1
27 changes: 27 additions & 0 deletions keyboards/cannonkeys/bakeneko65_iso_hs/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/* Copyright 2020 QMK
*
* 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/>.
*/

/*
* This file was auto-generated by:
* `qmk chibios-confmigrate -i keyboards/cannonkeys/instant65/halconf.h -r platforms/chibios/common/configs/halconf.h`
*/

#pragma once

#define HAL_USE_PWM TRUE

#include_next <halconf.h>

107 changes: 107 additions & 0 deletions keyboards/cannonkeys/bakeneko65_iso_hs/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
{
"keyboard_name": "Bakeneko65 ISO HS",
"manufacturer": "CannonKeys",
"url": "https://cannonkeys.com",
"maintainer": "awkannan",
"usb": {
"vid": "0xCA04",
"pid": "0x001F",
"device_version": "0.0.1"
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["A8", "C13", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A7", "A5", "A4", "A3", "A2", "A1"],
"rows": ["A14", "A15", "A0", "B1", "B0"]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"backlight": true
},
"backlight": {
"breathing": true,
"levels": 15,
"pin": "A6"
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"community_layouts": ["65_iso_blocker"],
"layouts": {
"LAYOUT_65_iso_blocker": {
"layout": [
{ "label": "\u00ac", "matrix": [0, 0], "x": 0.0, "y": 0.0 },
{ "label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0 },
{ "label": "\"", "matrix": [0, 2], "x": 2.0, "y": 0.0 },
{ "label": "\u00a3", "matrix": [0, 3], "x": 3.0, "y": 0.0 },
{ "label": "$", "matrix": [0, 4], "x": 4.0, "y": 0.0 },
{ "label": "%", "matrix": [0, 5], "x": 5.0, "y": 0.0 },
{ "label": "^", "matrix": [0, 6], "x": 6.0, "y": 0.0 },
{ "label": "&", "matrix": [0, 7], "x": 7.0, "y": 0.0 },
{ "label": "*", "matrix": [0, 8], "x": 8.0, "y": 0.0 },
{ "label": "(", "matrix": [0, 9], "x": 9.0, "y": 0.0 },
{ "label": ")", "matrix": [0, 10], "x": 10.0, "y": 0.0 },
{ "label": "_", "matrix": [0, 11], "x": 11.0, "y": 0.0 },
{ "label": "+", "matrix": [0, 12], "x": 12.0, "y": 0.0 },
{ "label": "Backspace", "matrix": [0, 13], "w": 2, "x": 13.0, "y": 0.0 },
{ "label": "Home", "matrix": [0, 14], "x": 15.0, "y": 0.0 },
{ "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0.0, "y": 1.0 },
{ "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1.0 },
{ "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1.0 },
{ "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1.0 },
{ "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1.0 },
{ "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1.0 },
{ "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1.0 },
{ "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1.0 },
{ "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1.0 },
{ "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1.0 },
{ "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1.0 },
{ "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1.0 },
{ "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1.0 },
{ "label": "PgUp", "matrix": [1, 14], "x": 15.0, "y": 1.0 },
{ "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0.0, "y": 2.0 },
{ "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2.0 },
{ "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2.0 },
{ "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2.0 },
{ "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2.0 },
{ "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2.0 },
{ "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2.0 },
{ "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2.0 },
{ "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2.0 },
{ "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2.0 },
{ "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2.0 },
{ "label": "@", "matrix": [2, 11], "x": 11.75, "y": 2.0 },
{ "label": "~", "matrix": [2, 12], "x": 12.75, "y": 2.0 },
{ "h": 2, "label": "Enter", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1.0 },
{ "label": "PgDn", "matrix": [2, 14], "x": 15.0, "y": 2.0 },
{ "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0.0, "y": 3.0 },
{ "label": "|", "matrix": [3, 1], "x": 1.25, "y": 3.0 },
{ "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3.0 },
{ "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3.0 },
{ "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3.0 },
{ "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3.0 },
{ "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3.0 },
{ "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3.0 },
{ "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3.0 },
{ "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3.0 },
{ "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3.0 },
{ "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3.0 },
{ "label": "Shift", "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3.0 },
{ "matrix": [3, 13], "x": 14.0, "y": 3.0 },
{ "label": "End", "matrix": [3, 14], "x": 15.0, "y": 3.0 },
{ "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0.0, "y": 4.0 },
{ "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4.0 },
{ "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4.0 },
{ "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4.0 },
{ "label": "AltGr", "matrix": [4, 10], "w": 1.25, "x": 10.0, "y": 4.0 },
{ "label": "Ctrl", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4.0 },
{ "matrix": [4, 12], "x": 13.0, "y": 4.0 },
{ "matrix": [4, 13], "x": 14.0, "y": 4.0 },
{ "matrix": [4, 14], "x": 15.0, "y": 4.0 }
]
}
}
}
46 changes: 46 additions & 0 deletions keyboards/cannonkeys/bakeneko65_iso_hs/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
Copyright 2012,2013 Jun Wako <[email protected]>

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 QMK_KEYBOARD_H


// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_names {
_BASE,
_FN1,
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[_BASE] = LAYOUT_65_iso_blocker(
QK_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_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_DEL,
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_BSLS, KC_ENT, KC_PGUP,
KC_LSFT, KC_BSLS, 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_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),

[_FN1] = LAYOUT_65_iso_blocker(
QK_GESC, 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_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RGHT, 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, QK_BOOT, KC_TRNS, KC_TRNS
)
};
66 changes: 66 additions & 0 deletions keyboards/cannonkeys/bakeneko65_iso_hs/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/*
Copyright 2012,2013 Jun Wako <[email protected]>
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 QMK_KEYBOARD_H


// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_names {
_BASE,
_FN1,
_FN2,
_FN3
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[_BASE] = LAYOUT_65_iso_blocker(
QK_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_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_DEL,
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_BSLS, KC_ENT, KC_PGUP,
KC_LSFT, KC_BSLS, 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_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),

[_FN1] = LAYOUT_65_iso_blocker(
QK_GESC, 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_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RGHT, 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, QK_BOOT, KC_TRNS, KC_TRNS
),


[_FN2] = LAYOUT_65_iso_blocker(
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] = LAYOUT_65_iso_blocker(
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
)
};
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VIA_ENABLE = yes
28 changes: 28 additions & 0 deletions keyboards/cannonkeys/bakeneko65_iso_hs/mcuconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* Copyright 2020 QMK
*
* 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/>.
*/

/*
* This file was auto-generated by:
* `qmk chibios-confmigrate -i keyboards/cannonkeys/instant65/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
*/

#pragma once

#include_next <mcuconf.h>

#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE

24 changes: 24 additions & 0 deletions keyboards/cannonkeys/bakeneko65_iso_hs/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Bakeneko65 ISO Hotswap

Bakeneko65 ISO Hotswap Keyboard

* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
* Hardware Supported: STM32F072CBT6

Make example for this keyboard (after setting up your build environment):

make cannonkeys/bakeneko65_iso_hs:default

Flashing example for this keyboard:

make cannonkeys/bakeneko65_iso_hs:default:flash

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).

## Bootloader

Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Toggle the switch on the back of the pcb to "0" and briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
5 changes: 5 additions & 0 deletions keyboards/cannonkeys/bakeneko65_iso_hs/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF

# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE