From 03b8ce206d566bf7f75771b55e05aea6ea6dba2d Mon Sep 17 00:00:00 2001 From: James Laird-Wah Date: Tue, 18 Sep 2018 08:49:20 +1000 Subject: Keyboard: add Keyboardio Model 01 (#3900) * Keyboard: add Keyboardio Model01 This port implements key scanning and everything in their default keymap. It doesn't implement mouse warping; QMK can't do that (yet). LED control is mostly not implemented. The ability to set all LEDs is included because they can get stuck on coming from the bootloader otherwise. Single LED control is also implemented for numpad indication. The scanners also support batch LED transfer which is what you'd need if you wanted to do fast effects. Gamma correction is also not implemented, but is present in the original firmware. The necessary info for further implementation is in the KeyboardioScanner module for Kaleidoscope. To install on your keyboard: make model01:avrdude When prompted, hold the "prog" key on the keyboard to put it into programming mode. This can also be achieved by holding the "prog" key while plugging in the keyboard. This works even if the firmware is corrupt or missing. Hot plugging the halves seems to work fine, but there is no explicit support for eg. making sure the matrix scan rate is reconfigured. * model01: clean up includes and include guards Uses #pragma once everywhere. * model01: split LED and matrix code This makes space if someone wants to implement better LED support later on, the keyboard is a lot more capable than the current code. * model01: separate I2C timeouts for matrix vs. LED If the scanners have no data they don't ACK reads and just time out. So we want a pretty short timeout to keep scan rates high. Meanwhile the LED transfers might take longer - I don't know though, so here we are conservative. * model01: implement better LED control - gamma correction from the manufacturer's firmware - suitable delays to allow back to back LED writes - this is fast enough to write the whole keyboard without noticeable delay, in my experience - minor bug fix: RHS Fn key was not addressable * model01: add license to wire-protocol-constants.h * model01: replace gamma LUT The original was of unclear license origin. This one is functionally identical and includes a generator should people wish to adjust it. * model01: use the already-present CIE1931 lightness curve ...rather than baking in another gamma curve. It's said that CIE1931 is the right thing to be using rather than gamma. OK. Let it be so. * model01: call matrix_init_user() from matrix_init_kb() * model01: remove inapplicable config options from rules.mk * model01: readme.md: update build environment links --- keyboards/model01/info.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 keyboards/model01/info.json (limited to 'keyboards/model01/info.json') diff --git a/keyboards/model01/info.json b/keyboards/model01/info.json new file mode 100644 index 0000000000..daf51492db --- /dev/null +++ b/keyboards/model01/info.json @@ -0,0 +1,4 @@ +{ + "keyboard_name": "model01", + "url": "https://keyboard.io" +} -- cgit v1.2.3 From 388de9bc076a135ff5f7ff35cc95594898d2e8c3 Mon Sep 17 00:00:00 2001 From: noroadsleft Date: Thu, 13 Dec 2018 22:35:27 -0800 Subject: Keyboardio Model 01: Configurator support --- keyboards/model01/info.json | 85 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) (limited to 'keyboards/model01/info.json') diff --git a/keyboards/model01/info.json b/keyboards/model01/info.json index daf51492db..60c914d5c0 100644 --- a/keyboards/model01/info.json +++ b/keyboards/model01/info.json @@ -1,4 +1,87 @@ { "keyboard_name": "model01", - "url": "https://keyboard.io" + "keyboard_folder": "model01", + "url": "https://keyboard.io", + "maintainer": "qmk", + "width": 18.5, + "height": 7.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"PROG", "x":0, "y":0.4, "h":1.3}, + {"label":"1", "x":1, "y":0.2, "h":1.5}, + {"label":"2", "x":2, "y":0.1, "h":1.1}, + {"label":"3", "x":3, "y":0}, + {"label":"4", "x":4, "y":0.1}, + {"label":"5", "x":5, "y":0.3}, + + {"label":"6", "x":12.5, "y":0.3}, + {"label":"7", "x":13.5, "y":0.1}, + {"label":"8", "x":14.5, "y":0}, + {"label":"9", "x":15.5, "y":0.1, "h":1.1}, + {"label":"0", "x":16.5, "y":0.2, "h":1.5}, + {"label":"NUM", "x":17.5, "y":0.4, "h":1.3}, + + {"label":"GRAVE", "x":0, "y":1.7}, + {"label":"Q", "x":1, "y":1.7}, + {"label":"W", "x":2, "y":1.2}, + {"label":"E", "x":3, "y":1}, + {"label":"R", "x":4, "y":1.1}, + {"label":"T", "x":5, "y":1.3}, + {"label":"LED", "x":6, "y":0.6, "h":1.5}, + + {"label":"ANY", "x":11.5, "y":0.6, "h":1.5}, + {"label":"Y", "x":12.5, "y":1.3}, + {"label":"U", "x":13.5, "y":1.1}, + {"label":"I", "x":14.5, "y":1}, + {"label":"O", "x":15.5, "y":1.2}, + {"label":"P", "x":16.5, "y":1.7}, + {"label":"EQUAL", "x":17.5, "y":1.7}, + + {"label":"PAGEUP", "x":0, "y":2.7}, + {"label":"A", "x":1, "y":2.7}, + {"label":"S", "x":2, "y":2.2}, + {"label":"D", "x":3, "y":2}, + {"label":"F", "x":4, "y":2.1}, + {"label":"G", "x":5, "y":2.3}, + {"label":"TAB", "x":6, "y":2.1, "h":1.3}, + + {"label":"ENTER", "x":11.5, "y":2.1, "h":1.3}, + {"label":"H", "x":12.5, "y":2.3}, + {"label":"J", "x":13.5, "y":2.1}, + {"label":"K", "x":14.5, "y":2}, + {"label":"L", "x":15.5, "y":2.2}, + {"label":"SEMICOLON", "x":16.5, "y":2.7}, + {"label":"QUOTE", "x":17.5, "y":2.7}, + + {"label":"PAGEDOWN", "x":0, "y":3.7, "h":1.2}, + {"label":"Z", "x":1, "y":3.7}, + {"label":"X", "x":2, "y":3.2, "h":1.15}, + {"label":"C", "x":3, "y":3}, + {"label":"V", "x":4, "y":3.1}, + {"label":"B", "x":5, "y":3.3}, + {"label":"ESC", "x":6, "y":3.4, "h":1.1}, + + {"label":"BUTTERFLY", "x":11.5, "y":3.4, "h":1.1}, + {"label":"N", "x":12.5, "y":3.3}, + {"label":"M", "x":13.5, "y":3.1}, + {"label":"COMMA", "x":14.5, "y":3}, + {"label":"DOT", "x":15.5, "y":3.2, "h":1.15}, + {"label":"SLASH", "x":16.5, "y":3.7}, + {"label":"MINS", "x":17.5, "y":3.7, "h":1.2}, + + {"label":"LCTL", "x":4.75, "y":4.3}, + {"label":"RCTL", "x":12.75, "y":4.3}, + {"label":"BACKSPACE", "x":5.75, "y":4.5}, + {"label":"SPACE", "x":11.75, "y":4.5}, + {"label":"LGUI", "x":6.75, "y":4.7}, + {"label":"RALT", "x":10.75, "y":4.7}, + {"label":"LSHIFT", "x":7.75, "y":5.1}, + {"label":"RSHIFT", "x":9.75, "y":5.1}, + + {"label":"FN", "x":6.25, "y":6.1, "h":1.4}, + {"label":"FN", "x":11.25, "y":6.1, "h":1.4} + ] + } + } } -- cgit v1.2.3