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

[Keyboard] Add Chocofly v1 #17289

Merged
merged 8 commits into from
Jul 15, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
4 changes: 4 additions & 0 deletions keyboards/chocofly/chocofly.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Copyright 2022 Vitaly Volkov (@vlkv)
// SPDX-License-Identifier: GPL-2.0-or-later

#include "chocofly.h"
10 changes: 10 additions & 0 deletions keyboards/chocofly/chocofly.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// Copyright 2022 Vitaly Volkov (@vlkv)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#ifdef KEYBOARD_chocofly_v1
#include "v1.h"
#endif

#include "quantum.h"
6 changes: 6 additions & 0 deletions keyboards/chocofly/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Copyright 2022 Vitaly Volkov (@vlkv)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include "config_common.h"
23 changes: 23 additions & 0 deletions keyboards/chocofly/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Chocofly

![Chocofly v1.0](https://github.com/vlkv/chocofly/blob/master/images/chocofly_v1-0.jpg)

An open source ergonomic monoblock 60% keyboard.

* Keyboard Maintainer: [Vitaly Volkov](https://github.com/vlkv)
* Hardware Supported: Chocofly PCB v1, Pro Micro 5V/16MHz and compatible.
* Hardware Availability: [Avalanche](https://github.com/vlkv/chocofly).
winder marked this conversation as resolved.
Show resolved Hide resolved

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

make chocofly/v1:default

Flashing example for this keyboard:

make chocofly/v1: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

Briefly press the button along the top edge of the PCB next to the microcontroller.
winder marked this conversation as resolved.
Show resolved Hide resolved
22 changes: 22 additions & 0 deletions keyboards/chocofly/v1/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Copyright 2022 Vitaly Volkov (@vlkv)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#define VENDOR_ID 0xCEE2
#define PRODUCT_ID 0x1001
#define DEVICE_VER 0x0001
#define MANUFACTURER vitvlkv
#define PRODUCT Chocofly

#define MATRIX_ROWS 8
#define MATRIX_COLS 8

#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 }

#define DIODE_DIRECTION COL2ROW

#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
#define ENCODER_RESOLUTION 2
54 changes: 54 additions & 0 deletions keyboards/chocofly/v1/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// Copyright 2022 Vitaly Volkov (@vlkv)
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

enum layers {
_QWERTY,
_LOWER,
_RAISE,
};

#define RS_SPC LT(_RAISE, KC_SPC)
#define LW_LGUI LT(_LOWER, KC_LGUI)
#define RS_LGUI LT(_RAISE, KC_LGUI)
#define MT_LALT LALT_T(KC_ESC)
#define MT_RALT RALT_T(KC_ENT)
#define MT_LSFT LSFT_T(KC_EQL)
#define MT_RSFT RSFT_T(KC_MINS)


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
KC_BSLS, KC_A, KC_S, KC_D, KC_F, KC_G, KC__MUTE, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_INS, KC_PSCR, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL,
LW_LGUI, MT_LSFT, RS_SPC, MT_LALT, MT_RALT, MO(_LOWER),MT_RSFT, RS_LGUI
),
[_LOWER] = LAYOUT(
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_UNDS, KC_PLUS, KC_EQL,
_______, KC_0, KC_1, KC_2, KC_3, KC_PCMM, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX,
_______, KC_0, KC_4, KC_5, KC_6, KC_DEL, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,
_______, KC_0, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, XXXXXXX, KC_PGUP, KC_APP, KC_PGDN, XXXXXXX, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[_RAISE] = LAYOUT(
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_UNDS, KC_PLUS, KC_EQL,
_______, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_EXLM, KC_AT, KC_HASH, XXXXXXX, XXXXXXX,
_______, XXXXXXX, XXXXXXX, KC_LPRN, KC_RPRN, KC_DEL, _______, KC_BSPC, KC_DLR, KC_PERC, KC_CIRC, XXXXXXX, XXXXXXX,
_______, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, XXXXXXX, _______, _______, _______, _______, XXXXXXX, KC_AMPR, KC_ASTR, KC_PCMM, XXXXXXX, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
};

bool encoder_update_user(uint8_t index, bool clockwise) {
winder marked this conversation as resolved.
Show resolved Hide resolved
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC__VOLUP);
} else {
tap_code(KC__VOLDOWN);
}
}
return true;
}
49 changes: 49 additions & 0 deletions keyboards/chocofly/v1/keymaps/winder/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
// Copyright 2022 Will Winder (@winder)
// SPDX-License-Identifier: GPL-2.0-or-later
//
#include QMK_KEYBOARD_H

enum layers {
_QWERTY,
_LOWER,
_RAISE,
};

#define FN_1 MO(_LOWER)
#define FN_2 MO(_RAISE)


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL ,
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_UNDS,
KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_MUTE, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_DEL , KC_LGUI, KC_INS , KC_BSPC, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
KC_LALT, KC_LGUI, FN_1 , KC_ENT , FN_2 , KC_SPC , KC_BSPC, KC_DEL
),
[_LOWER] = LAYOUT(
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL ,
KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
_______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[_RAISE] = LAYOUT(
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX,
_______, KC_0, KC_1, KC_2, KC_3, KC_BSPC, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, KC_0, KC_4, KC_5, KC_6, KC_DEL, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, XXXXXXX, XXXXXXX,
_______, KC_0, KC_7, KC_8, KC_9, KC_DOT, _______, _______, _______, _______, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
};

bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC__VOLUP);
} else {
tap_code(KC__VOLDOWN);
}
}
return true;
}
12 changes: 12 additions & 0 deletions keyboards/chocofly/v1/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = caterina

# Build Options
# change yes to no to disable
#
RGBLIGHT_ENABLE = no
SPLIT_KEYBOARD = no
ENCODER_ENABLE = yes
winder marked this conversation as resolved.
Show resolved Hide resolved
4 changes: 4 additions & 0 deletions keyboards/chocofly/v1/v1.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Copyright 2022 Vitaly Volkov (@vlkv)
// SPDX-License-Identifier: GPL-2.0-or-later

#include "chocofly.h"
winder marked this conversation as resolved.
Show resolved Hide resolved
28 changes: 28 additions & 0 deletions keyboards/chocofly/v1/v1.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright 2022 Vitaly Volkov (@vlkv)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include "../chocofly.h"
winder marked this conversation as resolved.
Show resolved Hide resolved

#include "quantum.h"

#define K__ KC_NO

#define LAYOUT( \
K01, K07, K02, K08, K03, K09, K11, K04, K12, K05, K13, K06, \
K14, K22, K15, K23, K16, K24, K27, K19, K28, K20, K29, K21, \
K30, K38, K31, K39, K32, K40, K10, K43, K35, K44, K36, K45, K37, \
K46, K54, K47, K55, K48, K56, K25, K17, K18, K26, K59, K51, K60, K52, K61, K53, \
K57, K49, K41, K33, K34, K42, K50, K58 \
) \
{ \
{ K01, K02, K03, K__, K__, K04, K05, K06}, \
{ K07, K08, K09, K10, K__, K11, K12, K13}, \
{ K14, K15, K16, K17, K18, K19, K20, K21}, \
{ K22, K23, K24, K25, K26, K27, K28, K29}, \
{ K30, K31, K32, K33, K34, K35, K36, K37}, \
{ K38, K39, K40, K41, K42, K43, K44, K45}, \
{ K46, K47, K48, K49, K50, K51, K52, K53}, \
{ K54, K55, K56, K57, K58, K59, K60, K61} \
}