Skip to content

Commit

Permalink
[Keyboard] Corne rev4 (qmk#24084)
Browse files Browse the repository at this point in the history
* [Keyboard] Corne rev4

* Remove unneeded update interval and moved split pin to dd

* Cleanup config and errors

* Move bootmagic config to dd

* Re-add existing configs

* Additional config fixes

* shove off via keymap
  • Loading branch information
drashna authored and smallketchup82 committed Dec 1, 2024
1 parent e513f91 commit 84ff7ec
Show file tree
Hide file tree
Showing 19 changed files with 1,199 additions and 162 deletions.
1 change: 1 addition & 0 deletions keyboards/crkbd/crkbd.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ static void oled_render_keylog(void) {
oled_write(depad_str(last_keycode_str, ' '), false);
oled_write_P(PSTR(":"), false);
oled_write_char(key_name, false);
oled_advance_page(true);
}

// static void render_bootmagic_status(bool status) {
Expand Down
144 changes: 124 additions & 20 deletions keyboards/crkbd/info.json
Original file line number Diff line number Diff line change
@@ -1,34 +1,138 @@
{
"keyboard_name": "Corne",
"manufacturer": "foostan",
"url": "",
"url": "https://github.com/foostan/crkbd",
"maintainer": "qmk",
"usb": {
"vid": "0x4653",
"pid": "0x0001",
"device_version": "0.0.1"
},
"rgb_matrix": {
"driver": "ws2812"
"vid": "0x4653"
},
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"oled": true
"oled": true,
"rgblight": false,
"rgb_matrix": true
},
"build": {
"lto": true
"bootmagic": {
"matrix": [0, 1]
},
"matrix_pins": {
"cols": [ "F4", "F5", "F6", "F7", "B1", "B3" ],
"rows": [ "D4", "C6", "D7", "E6" ]
},
"diode_direction": "COL2ROW",
"split": {
"enabled": true
"enabled": true,
"bootmagic": {
"matrix": [4, 1]
}
},
"layout_aliases": {
"LAYOUT": "LAYOUT_split_3x6_3"
},
"community_layouts": [ "split_3x5_3", "split_3x6_3" ],
"layouts": {
"LAYOUT_split_3x5_3": {
"layout": [
{"matrix": [0, 1], "x": 0, "y": 0.3},
{"matrix": [0, 2], "x": 1, "y": 0.1},
{"matrix": [0, 3], "x": 2, "y": 0},
{"matrix": [0, 4], "x": 3, "y": 0.1},
{"matrix": [0, 5], "x": 4, "y": 0.2},

{"matrix": [4, 5], "x": 8, "y": 0.2},
{"matrix": [4, 4], "x": 9, "y": 0.1},
{"matrix": [4, 3], "x": 10, "y": 0},
{"matrix": [4, 2], "x": 11, "y": 0.1},
{"matrix": [4, 1], "x": 12, "y": 0.3},

{"matrix": [1, 1], "x": 0, "y": 1.3},
{"matrix": [1, 2], "x": 1, "y": 1.1},
{"matrix": [1, 3], "x": 2, "y": 1},
{"matrix": [1, 4], "x": 3, "y": 1.1},
{"matrix": [1, 5], "x": 4, "y": 1.2},

{"matrix": [5, 5], "x": 8, "y": 1.2},
{"matrix": [5, 4], "x": 9, "y": 1.1},
{"matrix": [5, 3], "x": 10, "y": 1},
{"matrix": [5, 2], "x": 11, "y": 1.1},
{"matrix": [5, 1], "x": 12, "y": 1.3},

{"matrix": [2, 1], "x": 0, "y": 2.3},
{"matrix": [2, 2], "x": 1, "y": 2.1},
{"matrix": [2, 3], "x": 2, "y": 2},
{"matrix": [2, 4], "x": 3, "y": 2.1},
{"matrix": [2, 5], "x": 4, "y": 2.2},

{"matrix": [6, 5], "x": 8, "y": 2.2},
{"matrix": [6, 4], "x": 9, "y": 2.1},
{"matrix": [6, 3], "x": 10, "y": 2},
{"matrix": [6, 2], "x": 11, "y": 2.1},
{"matrix": [6, 1], "x": 12, "y": 2.3},

{"matrix": [3, 3], "x": 3, "y": 3.7},
{"matrix": [3, 4], "x": 4, "y": 3.7},
{"matrix": [3, 5], "x": 5, "y": 3.2, "h": 1.5},

{"matrix": [7, 5], "x": 7, "y": 3.2, "h": 1.5},
{"matrix": [7, 4], "x": 8, "y": 3.7},
{"matrix": [7, 3], "x": 9, "y": 3.7}
]
},
"LAYOUT_split_3x6_3": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.3},
{"matrix": [0, 1], "x": 1, "y": 0.3},
{"matrix": [0, 2], "x": 2, "y": 0.1},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.1},
{"matrix": [0, 5], "x": 5, "y": 0.2},

{"matrix": [4, 5], "x": 9, "y": 0.2},
{"matrix": [4, 4], "x": 10, "y": 0.1},
{"matrix": [4, 3], "x": 11, "y": 0},
{"matrix": [4, 2], "x": 12, "y": 0.1},
{"matrix": [4, 1], "x": 13, "y": 0.3},
{"matrix": [4, 0], "x": 14, "y": 0.3},

{"matrix": [1, 0], "x": 0, "y": 1.3},
{"matrix": [1, 1], "x": 1, "y": 1.3},
{"matrix": [1, 2], "x": 2, "y": 1.1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.1},
{"matrix": [1, 5], "x": 5, "y": 1.2},

{"matrix": [5, 5], "x": 9, "y": 1.2},
{"matrix": [5, 4], "x": 10, "y": 1.1},
{"matrix": [5, 3], "x": 11, "y": 1},
{"matrix": [5, 2], "x": 12, "y": 1.1},
{"matrix": [5, 1], "x": 13, "y": 1.3},
{"matrix": [5, 0], "x": 14, "y": 1.3},

{"matrix": [2, 0], "x": 0, "y": 2.3},
{"matrix": [2, 1], "x": 1, "y": 2.3},
{"matrix": [2, 2], "x": 2, "y": 2.1},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.1},
{"matrix": [2, 5], "x": 5, "y": 2.2},

{"matrix": [6, 5], "x": 9, "y": 2.2},
{"matrix": [6, 4], "x": 10, "y": 2.1},
{"matrix": [6, 3], "x": 11, "y": 2},
{"matrix": [6, 2], "x": 12, "y": 2.1},
{"matrix": [6, 1], "x": 13, "y": 2.3},
{"matrix": [6, 0], "x": 14, "y": 2.3},

{"matrix": [3, 3], "x": 4, "y": 3.7},
{"matrix": [3, 4], "x": 5, "y": 3.7},
{"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5},

{"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5},
{"matrix": [7, 4], "x": 9, "y": 3.7},
{"matrix": [7, 3], "x": 10, "y": 3.7}
]
}
},
"rgb_matrix": {
"driver": "ws2812",
"max_brightness": 120
},
"processor": "atmega32u4",
"community_layouts": [ "split_3x5_3", "split_3x6_3" ]
"rgblight": {
"max_brightness": 120
}
}
9 changes: 9 additions & 0 deletions keyboards/crkbd/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`--------------------------' `--------------------------'
)
};

#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), },
[1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), },
[2] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), },
[3] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), },
};
#endif
32 changes: 2 additions & 30 deletions keyboards/crkbd/post_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,34 +16,6 @@

#pragma once

#ifndef BOOTMAGIC_ROW
# define BOOTMAGIC_ROW 0
#endif
#ifndef BOOTMAGIC_COLUMN
# define BOOTMAGIC_COLUMN 1
#endif

#ifndef BOOTMAGIC_ROW_RIGHT
# define BOOTMAGIC_ROW_RIGHT 4
#endif
#ifndef BOOTMAGIC_COLUMN_RIGHT
# define BOOTMAGIC_COLUMN_RIGHT 1
#endif

#ifdef RGBLIGHT_ENABLE
# ifndef RGBLIGHT_LIMIT_VAL
# define RGBLIGHT_LIMIT_VAL 120
# endif
#endif

#ifdef RGB_MATRIX_ENABLE
# ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
# endif
#endif

#ifdef OLED_ENABLE
#ifndef OLED_FONT_H
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
#endif
#ifndef OLED_FONT_H
# define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
#endif
15 changes: 15 additions & 0 deletions keyboards/crkbd/r2g/keyboard.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
{
"keyboard_name": "Corne",
"usb": {
"pid": "0x0001",
"device_version": "0.0.1"
},
"processor": "atmega32u4",
"features": {
"rgb_matrix": true
},
"build": {
"lto": true
},
"matrix_pins": {
"cols": [ "F4", "F5", "F6", "F7", "B1", "B3" ],
"rows": [ "D4", "C6", "D7", "E6" ]
},
"diode_direction": "COL2ROW",
"split": {
"serial": {
"pin": "D2"
Expand Down Expand Up @@ -38,6 +52,7 @@
"layout_aliases": {
"LAYOUT": "LAYOUT_split_3x6_3"
},
"community_layouts": [ "split_3x5_3", "split_3x6_3" ],
"layouts": {
"LAYOUT_split_3x5_3": {
"layout": [
Expand Down
17 changes: 11 additions & 6 deletions keyboards/crkbd/readme.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,33 @@
# Corne Keyboard (CRKBD)

Also known (incorrectly) as the `HeliDox`.

![Crkbd](https://user-images.githubusercontent.com/736191/40575636-6fba63a4-6123-11e8-9ca0-3f990f1f9f4c.jpg)

![Crkbd](https://user-images.githubusercontent.com/736191/40887871-0eead5dc-678a-11e8-9518-e3ad9e5d2bac.png)

A split keyboard with 3x6 vertically staggered keys and 3 thumb keys.
Also, it has the option that use extension keys and rotary encoders.

Keyboard Maintainer: [foostan](https://github.com/foostan/) [@foostan](https://twitter.com/foostan)
Hardware Supported: Crkbd PCB, Pro Micro
Hardware Supported: Corne PCB
Hardware Availability: [PCB & Case Data](https://github.com/foostan/crkbd)

Make example for this keyboard (after setting up your build environment):
Flash example for this keyboard of v1 - v3:

```sh
qmk flash -kb crkbd/rev1 -km default
```

Flash example for this keyboard of v4:

```sh
make crkbd:default
qmk flash -kb crkbd/rev4 -km default
```

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

The Corne PCBs have a reset button next to the TRRS jack to enter in to the bootloader.
The Corne PCBs have a reset and boot buttons next to the TRRS jack to enter in to the bootloader.

Additionally, if you hold down the "Q" or "P" buttons when plugging in that half of the keyboard (per the default QWERTY layout), this will jump to the bootloader and reset the EEPROM (persistent storage). This would normally be the very top corner-most position, but due to the breakaway column, it's left at Q and P for compatibility.

Expand Down
Loading

0 comments on commit 84ff7ec

Please sign in to comment.