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 the Kyria keyboard to the repository #7222

Merged
merged 45 commits into from
Nov 3, 2019
Merged
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
f2565a1
Added raw api for sending data directly to the buffer
XScorpion2 Aug 31, 2019
de74480
Added default keymap variant
thomasbaart Sep 26, 2019
5dfc517
Merge branch 'features/oled_raw_api' of https://github.com/XScorpion2…
thomasbaart Sep 26, 2019
928453a
Applied proposed OLED display fix
Sep 26, 2019
15e9110
Keymap progress
Sep 27, 2019
3ae2ada
Keymap progress
Sep 27, 2019
ef92b6a
Fixed inconsistent tabs
Sep 27, 2019
256d27e
Fixed oled_write_raw apis
XScorpion2 Sep 28, 2019
e597598
Merge branch 'features/oled_raw_api' of https://github.com/XScorpion2…
Sep 28, 2019
643ad33
Updated keymap
Sep 28, 2019
96247e7
Personal keymap
Sep 28, 2019
296605f
Added functionality to own keymap
Oct 5, 2019
53e98cc
Fixed spacing and build error
Oct 5, 2019
4a03eae
Keymap changes
Oct 11, 2019
f6a85fe
Revert "Updated split encoders so indexes are based on left hand enco…
Oct 16, 2019
c02fe20
Merge branch 'master' of https://github.com/qmk/qmk_firmware into kyria
Oct 16, 2019
f1e1192
Updated keymaps and configs
Oct 31, 2019
ca46b07
Revert "Revert "Updated split encoders so indexes are based on left h…
Oct 31, 2019
b3f8f5a
Update keyboards/kyria/config.h
Oct 31, 2019
f6d92e3
Update keyboards/kyria/config.h
Oct 31, 2019
9371c21
Update keyboards/kyria/config.h
Oct 31, 2019
e1167b2
Update keyboards/kyria/rev1/config.h
Oct 31, 2019
a83f8df
Update keyboards/kyria/rules.mk
Oct 31, 2019
4d909b0
Update keyboards/kyria/rules.mk
Oct 31, 2019
8b488e6
Update keyboards/kyria/rev1/rev1.h
Oct 31, 2019
23699a0
Update keyboards/kyria/rev1/config.h
Oct 31, 2019
c1d6f45
Update keyboards/kyria/readme.md
Oct 31, 2019
7323c50
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Oct 31, 2019
c5e8dab
Update keyboards/kyria/rev1/config.h
Oct 31, 2019
264dc1e
Update keyboards/kyria/readme.md
Oct 31, 2019
af75ef9
Update keyboards/kyria/keymaps/default/keymap.c
Oct 31, 2019
1c8d2af
Update keyboards/kyria/keymaps/default/keymap.c
Oct 31, 2019
d069cf2
Update keyboards/kyria/keymaps/default/keymap.c
Oct 31, 2019
e216aa1
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Oct 31, 2019
0c8f421
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Oct 31, 2019
bacaef8
Update keyboards/kyria/rules.mk
Oct 31, 2019
f016c98
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Nov 1, 2019
1e3044f
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Nov 1, 2019
1a4603e
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Nov 1, 2019
add454d
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Nov 1, 2019
06ed9f5
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Nov 1, 2019
b9e2308
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Nov 1, 2019
1583885
Update keyboards/kyria/keymaps/thomasbaart/keymap.c
Nov 1, 2019
2cd944f
Processed keymap feedback
Nov 1, 2019
f104ff6
Reverted OLED raw API functionality
Nov 1, 2019
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
19 changes: 19 additions & 0 deletions drivers/oled/oled_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,15 @@ void oled_write_ln(const char *data, bool invert) {
oled_advance_page(true);
}

void oled_write_raw(const char *data, uint16_t size) {
if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE;
for (uint16_t i = 0; i < size; i++) {
if (oled_buffer[i] == data[i]) continue;
oled_buffer[i] = data[i];
oled_dirty |= (1 << (i / OLED_BLOCK_SIZE));
}
}

#if defined(__AVR__)
void oled_write_P(const char *data, bool invert) {
uint8_t c = pgm_read_byte(data);
Expand All @@ -444,6 +453,16 @@ void oled_write_ln_P(const char *data, bool invert) {
oled_write_P(data, invert);
oled_advance_page(true);
}

void oled_write_raw_P(const char *data, uint16_t size) {
if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE;
for (uint16_t i = 0; i < size; i++) {
uint8_t c = pgm_read_byte(++data);
if (oled_buffer[i] == c) continue;
oled_buffer[i] = c;
oled_dirty |= (1 << (i / OLED_BLOCK_SIZE));
}
}
#endif // defined(__AVR__)

bool oled_on(void) {
Expand Down
4 changes: 4 additions & 0 deletions drivers/oled/oled_driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,8 @@ void oled_write(const char *data, bool invert);
// Advances the cursor to the next page, wiring ' ' to the remainder of the current page
void oled_write_ln(const char *data, bool invert);

void oled_write_raw(const char *data, uint16_t size);

#if defined(__AVR__)
// Writes a PROGMEM string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
Expand All @@ -211,6 +213,8 @@ void oled_write_P(const char *data, bool invert);
// Advances the cursor to the next page, wiring ' ' to the remainder of the current page
// Remapped to call 'void oled_write_ln(const char *data, bool invert);' on ARM
void oled_write_ln_P(const char *data, bool invert);

void oled_write_raw_P(const char *data, uint16_t size);
#else
// Writes a string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
Expand Down
18 changes: 18 additions & 0 deletions keyboards/kyria/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
Copyright 2019 Thomas Baart <thomas@splitkb.com>
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"

23 changes: 23 additions & 0 deletions keyboards/kyria/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"keyboard_name": "Kyria",
"url": "https://splitkb.com",
"maintainer": "splitkb.com",
"width": 16.5,
"height": 5.5,
"layouts": {
"LAYOUT": {
"layout": [
{"x":3, "y":0.25}, {"x":12.5, "y":0.25}, {"x":2, "y":0.5}, {"x":4, "y":0.5}, {"x":11.5, "y":0.5},
{"x":13.5, "y":0.5}, {"x":5, "y":0.75}, {"x":10.5, "y":0.75}, {"x":0, "y":1}, {"x":1, "y":1},
{"x":14.5, "y":1}, {"x":15.5, "y":1}, {"x":3, "y":1.25}, {"x":12.5, "y":1.25}, {"x":2, "y":1.5},
{"x":4, "y":1.5}, {"x":11.5, "y":1.5}, {"x":13.5, "y":1.5}, {"x":5, "y":1.75}, {"x":10.5, "y":1.75},
{"x":0, "y":2}, {"x":1, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2}, {"x":3, "y":2.25},
{"x":12.5, "y":2.25}, {"x":2, "y":2.5}, {"x":4, "y":2.5}, {"x":11.5, "y":2.5}, {"x":13.5, "y":2.5},
{"x":5, "y":2.75}, {"x":10.5, "y":2.75}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":14.5, "y":3},
{"x":15.5, "y":3}, {"x":6, "y":3.25}, {"x":9.5, "y":3.25}, {"x":2.5, "y":3.5}, {"x":3.5, "y":3.5},
{"x":7, "y":3.5}, {"x":8.5, "y":3.5}, {"x":12, "y":3.5}, {"x":13, "y":3.5}, {"x":4.5, "y":3.75},
{"x":11, "y":3.75}, {"x":5.5, "y":4.25}, {"x":10, "y":4.25}, {"x":6.5, "y":4.5}, {"x":9, "y":4.5}
]
}
}
}
32 changes: 32 additions & 0 deletions keyboards/kyria/keymaps/default/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/* Copyright 2019 Thomas Baart <thomas@splitkb.com>
*
* 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

#ifdef OLED_DRIVER_ENABLE
#define OLED_DISPLAY_128X64
#endif

#ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif

// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
// #define SPLIT_USB_DETECT
// #define NO_USB_STARTUP_CHECK
Loading