From 148c6a517549973a622f7df91f95e525550cd520 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 21 Jun 2016 13:49:06 +0900 Subject: [PATCH 1/5] usb_usb: Add multiple keyboard support it supports four keyboards and two cascaded hubs --- converter/usb_usb/Makefile | 2 +- converter/usb_usb/main.cpp | 36 ----- converter/usb_usb/matrix.c | 133 ---------------- converter/usb_usb/usb_usb.cpp | 221 +++++++++++++++++++++++++++ tmk_core/common/util.h | 8 + tmk_core/protocol/usb_hid/parser.cpp | 24 +-- tmk_core/protocol/usb_hid/parser.h | 5 +- 7 files changed, 238 insertions(+), 191 deletions(-) delete mode 100644 converter/usb_usb/matrix.c create mode 100644 converter/usb_usb/usb_usb.cpp diff --git a/converter/usb_usb/Makefile b/converter/usb_usb/Makefile index 0f25232b..5abb49d7 100644 --- a/converter/usb_usb/Makefile +++ b/converter/usb_usb/Makefile @@ -110,7 +110,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 SRC = \ keymap_common.c \ - matrix.c \ + usb_usb.cpp \ main.cpp ifdef KEYMAP diff --git a/converter/usb_usb/main.cpp b/converter/usb_usb/main.cpp index 652c8057..5b542a75 100644 --- a/converter/usb_usb/main.cpp +++ b/converter/usb_usb/main.cpp @@ -3,17 +3,9 @@ #include #include -// USB HID host -#include "Usb.h" -#include "usbhub.h" -#include "hid.h" -#include "hidboot.h" -#include "parser.h" - // LUFA #include "lufa.h" -#include "timer.h" #include "sendchar.h" #include "debug.h" #include "keyboard.h" @@ -64,22 +56,6 @@ static void LUFA_setup(void) -/* - * USB Host Shield HID keyboard - */ -USB usb_host; -USBHub hub1(&usb_host); -HIDBoot kbd(&usb_host); -KBDReportParser kbd_parser; - - -void led_set(uint8_t usb_led) -{ - kbd.SetReport(0, 0, 2, 0, 1, &usb_led); -} - - - int main(void) { // LED for debug @@ -94,10 +70,6 @@ int main(void) LUFA_setup(); - // USB Host Shield setup - usb_host.Init(); - kbd.SetReportParser(0, (HIDReportParser*)&kbd_parser); - /* NOTE: Don't insert time consuming job here. * It'll cause unclear initialization failure when DFU reset(worm start). */ @@ -111,17 +83,9 @@ int main(void) debug("init: done\n"); -uint16_t timer; for (;;) { keyboard_task(); -timer = timer_read(); - usb_host.Task(); -timer = timer_elapsed(timer); -if (timer > 100) { - debug("host.Task: "); debug_hex16(timer); debug("\n"); -} - #if !defined(INTERRUPT_CONTROL_ENDPOINT) // LUFA Task for control request USB_USBTask(); diff --git a/converter/usb_usb/matrix.c b/converter/usb_usb/matrix.c deleted file mode 100644 index 184933ac..00000000 --- a/converter/usb_usb/matrix.c +++ /dev/null @@ -1,133 +0,0 @@ -/* -Copyright 2011 Jun Wako - -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 . -*/ - -#include -#include -#include "usb_hid.h" -#include "keycode.h" -#include "util.h" -#include "print.h" -#include "debug.h" -#include "matrix.h" - -/* KEY CODE to Matrix - * - * HID keycode(1 byte): - * Higher 5 bits indicates ROW and lower 3 bits COL. - * - * 7 6 5 4 3 2 1 0 - * +---------------+ - * | ROW | COL | - * +---------------+ - * - * Matrix space(16 * 16): - * r\c0123456789ABCDEF - * 0 +----------------+ - * : | | - * : | | - * 16 +----------------+ - */ -#define ROW_MASK 0xF0 -#define COL_MASK 0x0F -#define CODE(row, col) (((row) << 4) | (col)) -#define ROW(code) (((code) & ROW_MASK) >> 4) -#define COL(code) ((code) & COL_MASK) -#define ROW_BITS(code) (1 << COL(code)) - - -uint8_t matrix_rows(void) { return MATRIX_ROWS; } -uint8_t matrix_cols(void) { return MATRIX_COLS; } -void matrix_init(void) {} -bool matrix_has_ghost(void) { return false; } - -static bool matrix_is_mod =false; - -uint8_t matrix_scan(void) { - static uint16_t last_time_stamp = 0; - - if (last_time_stamp != usb_hid_time_stamp) { - last_time_stamp = usb_hid_time_stamp; - matrix_is_mod = true; - } else { - matrix_is_mod = false; - } - return 1; -} - -bool matrix_is_modified(void) { - - return matrix_is_mod; -} - -bool matrix_is_on(uint8_t row, uint8_t col) { - uint8_t code = CODE(row, col); - - if (IS_MOD(code)) { - if (usb_hid_keyboard_report.mods & ROW_BITS(code)) { - return true; - } - } - for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - if (usb_hid_keyboard_report.keys[i] == code) { - return true; - } - } - return false; -} - -matrix_row_t matrix_get_row(uint8_t row) { - uint16_t row_bits = 0; - - if (IS_MOD(CODE(row, 0)) && usb_hid_keyboard_report.mods) { - row_bits |= usb_hid_keyboard_report.mods; - } - - for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - if (IS_ANY(usb_hid_keyboard_report.keys[i])) { - if (row == ROW(usb_hid_keyboard_report.keys[i])) { - row_bits |= ROW_BITS(usb_hid_keyboard_report.keys[i]); - } - } - } - return row_bits; -} - -uint8_t matrix_key_count(void) { - uint8_t count = 0; - - count += bitpop(usb_hid_keyboard_report.mods); - for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - if (IS_ANY(usb_hid_keyboard_report.keys[i])) { - count++; - } - } - return count; -} - -void matrix_print(void) { - print("\nr/c 01234567\n"); - for (uint8_t row = 0; row < matrix_rows(); row++) { - phex(row); print(": "); - pbin_reverse(matrix_get_row(row)); -#ifdef MATRIX_HAS_GHOST - if (matrix_has_ghost_in_row(row)) { - print(" + +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 . +*/ + +#include +#include + +// USB HID host +#include "Usb.h" +#include "usbhub.h" +#include "hid.h" +#include "hidboot.h" +#include "parser.h" + +#include "keycode.h" +#include "util.h" +#include "print.h" +#include "debug.h" +#include "timer.h" +#include "matrix.h" +#include "led.h" + + +/* KEY CODE to Matrix + * + * HID keycode(1 byte): + * Higher 5 bits indicates ROW and lower 3 bits COL. + * + * 7 6 5 4 3 2 1 0 + * +---------------+ + * | ROW | COL | + * +---------------+ + * + * Matrix space(16 * 16): + * r\c0123456789ABCDEF + * 0 +----------------+ + * : | | + * : | | + * 16 +----------------+ + */ +#define ROW_MASK 0xF0 +#define COL_MASK 0x0F +#define CODE(row, col) (((row) << 4) | (col)) +#define ROW(code) (((code) & ROW_MASK) >> 4) +#define COL(code) ((code) & COL_MASK) +#define ROW_BITS(code) (1 << COL(code)) + + +// Integrated key state of all keyboards +static report_keyboard_t keyboard_report; + +static bool matrix_is_mod =false; + +/* + * USB Host Shield HID keyboards + * This supports two cascaded hubs and four keyboards + */ +USB usb_host; +USBHub hub1(&usb_host); +USBHub hub2(&usb_host); +HIDBoot kbd1(&usb_host); +HIDBoot kbd2(&usb_host); +HIDBoot kbd3(&usb_host); +HIDBoot kbd4(&usb_host); +KBDReportParser kbd_parser1; +KBDReportParser kbd_parser2; +KBDReportParser kbd_parser3; +KBDReportParser kbd_parser4; + + +uint8_t matrix_rows(void) { return MATRIX_ROWS; } +uint8_t matrix_cols(void) { return MATRIX_COLS; } +bool matrix_has_ghost(void) { return false; } +void matrix_init(void) { + // USB Host Shield setup + usb_host.Init(); + kbd1.SetReportParser(0, (HIDReportParser*)&kbd_parser1); + kbd2.SetReportParser(0, (HIDReportParser*)&kbd_parser2); + kbd3.SetReportParser(0, (HIDReportParser*)&kbd_parser3); + kbd4.SetReportParser(0, (HIDReportParser*)&kbd_parser4); +} + +static void or_report(report_keyboard_t report) { + // integrate reports into keyboard_report + keyboard_report.mods |= report.mods; + for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { + if (IS_ANY(report.keys[i])) { + for (uint8_t j = 0; j < KEYBOARD_REPORT_KEYS; j++) { + if (! keyboard_report.keys[j]) { + keyboard_report.keys[j] = report.keys[i]; + break; + } + } + } + } +} + +uint8_t matrix_scan(void) { + static uint16_t last_time_stamp1 = 0; + static uint16_t last_time_stamp2 = 0; + static uint16_t last_time_stamp3 = 0; + static uint16_t last_time_stamp4 = 0; + + // check report came from keyboards + if (kbd_parser1.time_stamp != last_time_stamp1 || + kbd_parser2.time_stamp != last_time_stamp2 || + kbd_parser3.time_stamp != last_time_stamp3 || + kbd_parser4.time_stamp != last_time_stamp4) { + + last_time_stamp1 = kbd_parser1.time_stamp; + last_time_stamp2 = kbd_parser2.time_stamp; + last_time_stamp3 = kbd_parser3.time_stamp; + last_time_stamp4 = kbd_parser4.time_stamp; + + // clear and integrate all reports + keyboard_report = {}; + or_report(kbd_parser1.report); + or_report(kbd_parser2.report); + or_report(kbd_parser3.report); + or_report(kbd_parser4.report); + + matrix_is_mod = true; + + dprintf("state: %02X %02X", keyboard_report.mods, keyboard_report.reserved); + for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { + dprintf(" %02X", keyboard_report.keys[i]); + } + dprint("\r\n"); + } else { + matrix_is_mod = false; + } + + uint16_t timer; + timer = timer_read(); + usb_host.Task(); + timer = timer_elapsed(timer); + if (timer > 100) { + dprintf("host.Task: %d\n", timer); + } + + return 1; +} + +bool matrix_is_modified(void) { + return matrix_is_mod; +} + +bool matrix_is_on(uint8_t row, uint8_t col) { + uint8_t code = CODE(row, col); + + if (IS_MOD(code)) { + if (keyboard_report.mods & ROW_BITS(code)) { + return true; + } + } + for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { + if (keyboard_report.keys[i] == code) { + return true; + } + } + return false; +} + +matrix_row_t matrix_get_row(uint8_t row) { + uint16_t row_bits = 0; + + if (IS_MOD(CODE(row, 0)) && keyboard_report.mods) { + row_bits |= keyboard_report.mods; + } + + for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { + if (IS_ANY(keyboard_report.keys[i])) { + if (row == ROW(keyboard_report.keys[i])) { + row_bits |= ROW_BITS(keyboard_report.keys[i]); + } + } + } + return row_bits; +} + +uint8_t matrix_key_count(void) { + uint8_t count = 0; + + count += bitpop(keyboard_report.mods); + for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { + if (IS_ANY(keyboard_report.keys[i])) { + count++; + } + } + return count; +} + +void matrix_print(void) { + print("\nr/c 0123456789ABCDEF\n"); + for (uint8_t row = 0; row < matrix_rows(); row++) { + xprintf("%02d: ", row); + print_bin_reverse16(matrix_get_row(row)); + print("\n"); + } +} + +void led_set(uint8_t usb_led) +{ + kbd1.SetReport(0, 0, 2, 0, 1, &usb_led); + kbd2.SetReport(0, 0, 2, 0, 1, &usb_led); + kbd3.SetReport(0, 0, 2, 0, 1, &usb_led); + kbd4.SetReport(0, 0, 2, 0, 1, &usb_led); +} diff --git a/tmk_core/common/util.h b/tmk_core/common/util.h index 7451cc08..3e01a93d 100644 --- a/tmk_core/common/util.h +++ b/tmk_core/common/util.h @@ -28,6 +28,10 @@ along with this program. If not, see . #define XSTR(s) #s +#ifdef __cplusplus +extern "C" { +#endif + uint8_t bitpop(uint8_t bits); uint8_t bitpop16(uint16_t bits); uint8_t bitpop32(uint32_t bits); @@ -40,4 +44,8 @@ uint8_t bitrev(uint8_t bits); uint16_t bitrev16(uint16_t bits); uint32_t bitrev32(uint32_t bits); +#ifdef __cplusplus +} +#endif + #endif diff --git a/tmk_core/protocol/usb_hid/parser.cpp b/tmk_core/protocol/usb_hid/parser.cpp index fe002c0d..94e747ca 100644 --- a/tmk_core/protocol/usb_hid/parser.cpp +++ b/tmk_core/protocol/usb_hid/parser.cpp @@ -4,30 +4,14 @@ #include "debug.h" -report_keyboard_t usb_hid_keyboard_report; -uint16_t usb_hid_time_stamp; - - void KBDReportParser::Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf) { - bool is_error = false; - report_keyboard_t *report = (report_keyboard_t *)buf; + ::memcpy(&report, buf, sizeof(report_keyboard_t)); + time_stamp = millis(); - dprintf("keyboard input: %02X %02X", report->mods, report->reserved); + dprintf("input %d: %02X %02X", hid->GetAddress(), report.mods, report.reserved); for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - if (IS_ERROR(report->keys[i])) { - is_error = true; - } - dprintf(" %02X", report->keys[i]); + dprintf(" %02X", report.keys[i]); } dprint("\r\n"); - - // ignore error and not send report to computer - if (is_error) { - dprint("Error usage! \r\n"); - return; - } - - ::memcpy(&usb_hid_keyboard_report, buf, sizeof(report_keyboard_t)); - usb_hid_time_stamp = millis(); } diff --git a/tmk_core/protocol/usb_hid/parser.h b/tmk_core/protocol/usb_hid/parser.h index 703eb1ed..036281fa 100644 --- a/tmk_core/protocol/usb_hid/parser.h +++ b/tmk_core/protocol/usb_hid/parser.h @@ -2,11 +2,14 @@ #define PARSER_H #include "hid.h" +#include "report.h" class KBDReportParser : public HIDReportParser { public: - virtual void Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf); + report_keyboard_t report; + uint16_t time_stamp; + virtual void Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf); }; #endif From a65fa6437c0187766d59d3d939ebbc3c001b5b05 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 15 Jun 2016 11:01:29 +0900 Subject: [PATCH 2/5] core: Fix USB remote wakeup on ATmega32U2 #361 --- tmk_core/protocol/lufa.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index 87386be9..d239585b 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -37,6 +37,10 @@ LUFA_OPTS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABL #LUFA_OPTS += -DINTERRUPT_CONTROL_ENDPOINT LUFA_OPTS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 LUFA_OPTS += -DFIXED_NUM_CONFIGURATIONS=1 +# Remote wakeup fix for ATmega32U2 https://github.com/tmk/tmk_keyboard/issues/361 +ifeq ($(MCU),atmega32u2) + LUFA_OPTS += -DNO_LIMITED_CONTROLLER_CONNECT +endif OPT_DEFS += -DF_USB=$(F_USB)UL OPT_DEFS += -DARCH=ARCH_$(ARCH) From 885e7adb18fb6039f0fe66de23e0622af923f7d1 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 21 Jun 2016 14:53:27 +0900 Subject: [PATCH 3/5] Move some projects to 'orphan' directory --- README.md | 92 +++++++----------- {keyboard => orphan}/IIgs/Makefile | 0 {keyboard => orphan}/IIgs/README | 0 {keyboard => orphan}/IIgs/config.h | 0 {keyboard => orphan}/IIgs/doc/PIN_BYPASS.jpg | Bin .../IIgs/doc/Teensy++_Mod.jpg | Bin {keyboard => orphan}/IIgs/hid_listen.mac | Bin {keyboard => orphan}/IIgs/keymap.c | 0 .../serialmouse_usb => orphan/IIgs}/led.c | 0 {keyboard => orphan}/IIgs/matrix.c | 0 orphan/README.md | 5 + {converter => orphan}/ascii_usb/Makefile | 0 {converter => orphan}/ascii_usb/README | 0 {converter => orphan}/ascii_usb/config.h | 0 {converter => orphan}/ascii_usb/keymap.c | 0 {converter => orphan}/ascii_usb/led.c | 0 {converter => orphan}/ascii_usb/matrix.c | 0 .../ghost_squid/Makefile.lufa | 0 {keyboard => orphan}/ghost_squid/README.md | 0 {keyboard => orphan}/ghost_squid/config.h | 0 {keyboard => orphan}/ghost_squid/keymap.c | 0 .../ghost_squid/keymap_ansi.h | 0 {keyboard => orphan}/ghost_squid/led.c | 0 {keyboard => orphan}/ghost_squid/matrix.c | 0 {keyboard => orphan}/hid_liber/Makefile.lufa | 0 {keyboard => orphan}/hid_liber/Makefile.pjrc | 0 {keyboard => orphan}/hid_liber/README.md | 0 {keyboard => orphan}/hid_liber/config.h | 0 {keyboard => orphan}/hid_liber/keymap.c | 0 .../hid_liber/keymap_alaricljs.h | 0 {keyboard => orphan}/hid_liber/keymap_ansi.h | 0 .../hid_liber/keymap_custom.h | 0 {keyboard => orphan}/hid_liber/keymap_iso.h | 0 {keyboard => orphan}/hid_liber/led.c | 0 {keyboard => orphan}/hid_liber/matrix.c | 0 {keyboard => orphan}/kitten_paw/Makefile.lufa | 0 {keyboard => orphan}/kitten_paw/README.md | 0 {keyboard => orphan}/kitten_paw/config.h | 0 {keyboard => orphan}/kitten_paw/keymap.c | 0 {keyboard => orphan}/kitten_paw/keymap_ansi.h | 0 {keyboard => orphan}/kitten_paw/led.c | 0 {keyboard => orphan}/kitten_paw/matrix.c | 0 {keyboard => orphan}/kmac/Makefile.lufa | 0 {keyboard => orphan}/kmac/Makefile.pjrc | 0 {keyboard => orphan}/kmac/README.md | 0 {keyboard => orphan}/kmac/backlight.c | 0 {keyboard => orphan}/kmac/config.h | 0 {keyboard => orphan}/kmac/keymap.c | 0 {keyboard => orphan}/kmac/keymap_winkey.h | 0 {keyboard => orphan}/kmac/keymap_winkeyless.h | 0 {keyboard => orphan}/kmac/led.c | 0 {keyboard => orphan}/kmac/matrix.c | 0 {keyboard => orphan}/lightpad/Makefile.lufa | 0 {keyboard => orphan}/lightpad/README.md | 0 {keyboard => orphan}/lightpad/backlight.c | 0 {keyboard => orphan}/lightpad/backlight.h | 0 {keyboard => orphan}/lightpad/config.h | 0 {keyboard => orphan}/lightpad/keymap.c | 0 .../lightpad/keymap_lightpad.h | 0 {keyboard => orphan}/lightpad/led.c | 0 {keyboard => orphan}/lightpad/matrix.c | 0 {keyboard => orphan}/lightsaber/Makefile.lufa | 0 {keyboard => orphan}/lightsaber/Makefile.pjrc | 0 {keyboard => orphan}/lightsaber/README.md | 0 {keyboard => orphan}/lightsaber/backlight.c | 0 {keyboard => orphan}/lightsaber/backlight.h | 0 {keyboard => orphan}/lightsaber/config.h | 0 {keyboard => orphan}/lightsaber/keymap.c | 0 .../lightsaber/keymap_winkey.h | 0 {keyboard => orphan}/lightsaber/led.c | 0 {keyboard => orphan}/lightsaber/matrix.c | 0 {keyboard => orphan}/macway/Makefile.lufa | 0 {keyboard => orphan}/macway/Makefile.pjrc | 0 {keyboard => orphan}/macway/config.h | 0 {keyboard => orphan}/macway/doc/back.jpg | Bin {keyboard => orphan}/macway/doc/case.jpg | Bin {keyboard => orphan}/macway/doc/keys.jpg | Bin {keyboard => orphan}/macway/doc/side.jpg | Bin {keyboard => orphan}/macway/doc/switch.jpg | Bin {keyboard => orphan}/macway/doc/teensy.jpg | Bin {keyboard => orphan}/macway/doc/wiring.jpg | Bin {keyboard => orphan}/macway/doc/withHHKB.jpg | Bin .../macway/doc/withThinkPad.jpg | Bin {keyboard => orphan}/macway/keymap.c | 0 {keyboard/IIgs => orphan/macway}/led.c | 0 {keyboard => orphan}/macway/matrix.c | 0 {keyboard => orphan}/nerd/Makefile | 0 {keyboard => orphan}/nerd/README.md | 0 {keyboard => orphan}/nerd/backlight.c | 0 {keyboard => orphan}/nerd/backlight.h | 0 {keyboard => orphan}/nerd/config.h | 0 {keyboard => orphan}/nerd/keymap_60_ansi150.c | 0 {keyboard => orphan}/nerd/keymap_80_ansi150.c | 0 {keyboard => orphan}/nerd/keymap_common.c | 0 {keyboard => orphan}/nerd/keymap_common.h | 0 {keyboard => orphan}/nerd/matrix.c | 0 {keyboard => orphan}/phantom/Makefile.lufa | 0 {keyboard => orphan}/phantom/Makefile.pjrc | 0 {keyboard => orphan}/phantom/README.md | 0 {keyboard => orphan}/phantom/config.h | 0 {keyboard => orphan}/phantom/keymap.c | 0 {keyboard => orphan}/phantom/keymap_7bit.h | 0 {keyboard => orphan}/phantom/keymap_ansi.h | 0 .../phantom/keymap_ansi_150.h | 0 {keyboard => orphan}/phantom/keymap_iso.h | 0 {keyboard => orphan}/phantom/keymap_iso_150.h | 0 {keyboard => orphan}/phantom/led.c | 0 {keyboard => orphan}/phantom/matrix.c | 0 .../serialmouse_usb/Makefile | 0 .../serialmouse_usb/README.md | 0 .../serialmouse_usb/config.h | 0 .../serialmouse_usb/keymap.c | 0 .../serialmouse_usb/keymap_common.c | 0 .../serialmouse_usb/keymap_common.h | 0 .../macway => orphan/serialmouse_usb}/led.c | 0 .../serialmouse_usb/matrix.c | 0 .../terminal_bluefruit/Makefile | 0 .../terminal_bluefruit/README | 0 .../terminal_bluefruit/config.h | 0 .../terminal_bluefruit/keymap.c | 0 .../terminal_bluefruit/led.c | 0 .../terminal_bluefruit/matrix.c | 0 122 files changed, 39 insertions(+), 58 deletions(-) rename {keyboard => orphan}/IIgs/Makefile (100%) rename {keyboard => orphan}/IIgs/README (100%) rename {keyboard => orphan}/IIgs/config.h (100%) rename {keyboard => orphan}/IIgs/doc/PIN_BYPASS.jpg (100%) rename {keyboard => orphan}/IIgs/doc/Teensy++_Mod.jpg (100%) rename {keyboard => orphan}/IIgs/hid_listen.mac (100%) mode change 100755 => 100644 rename {keyboard => orphan}/IIgs/keymap.c (100%) rename {converter/serialmouse_usb => orphan/IIgs}/led.c (100%) rename {keyboard => orphan}/IIgs/matrix.c (100%) create mode 100644 orphan/README.md rename {converter => orphan}/ascii_usb/Makefile (100%) rename {converter => orphan}/ascii_usb/README (100%) rename {converter => orphan}/ascii_usb/config.h (100%) rename {converter => orphan}/ascii_usb/keymap.c (100%) rename {converter => orphan}/ascii_usb/led.c (100%) rename {converter => orphan}/ascii_usb/matrix.c (100%) rename {keyboard => orphan}/ghost_squid/Makefile.lufa (100%) rename {keyboard => orphan}/ghost_squid/README.md (100%) rename {keyboard => orphan}/ghost_squid/config.h (100%) rename {keyboard => orphan}/ghost_squid/keymap.c (100%) rename {keyboard => orphan}/ghost_squid/keymap_ansi.h (100%) rename {keyboard => orphan}/ghost_squid/led.c (100%) rename {keyboard => orphan}/ghost_squid/matrix.c (100%) rename {keyboard => orphan}/hid_liber/Makefile.lufa (100%) rename {keyboard => orphan}/hid_liber/Makefile.pjrc (100%) rename {keyboard => orphan}/hid_liber/README.md (100%) rename {keyboard => orphan}/hid_liber/config.h (100%) rename {keyboard => orphan}/hid_liber/keymap.c (100%) rename {keyboard => orphan}/hid_liber/keymap_alaricljs.h (100%) rename {keyboard => orphan}/hid_liber/keymap_ansi.h (100%) rename {keyboard => orphan}/hid_liber/keymap_custom.h (100%) rename {keyboard => orphan}/hid_liber/keymap_iso.h (100%) rename {keyboard => orphan}/hid_liber/led.c (100%) rename {keyboard => orphan}/hid_liber/matrix.c (100%) rename {keyboard => orphan}/kitten_paw/Makefile.lufa (100%) rename {keyboard => orphan}/kitten_paw/README.md (100%) rename {keyboard => orphan}/kitten_paw/config.h (100%) rename {keyboard => orphan}/kitten_paw/keymap.c (100%) rename {keyboard => orphan}/kitten_paw/keymap_ansi.h (100%) rename {keyboard => orphan}/kitten_paw/led.c (100%) rename {keyboard => orphan}/kitten_paw/matrix.c (100%) rename {keyboard => orphan}/kmac/Makefile.lufa (100%) rename {keyboard => orphan}/kmac/Makefile.pjrc (100%) rename {keyboard => orphan}/kmac/README.md (100%) rename {keyboard => orphan}/kmac/backlight.c (100%) rename {keyboard => orphan}/kmac/config.h (100%) rename {keyboard => orphan}/kmac/keymap.c (100%) rename {keyboard => orphan}/kmac/keymap_winkey.h (100%) rename {keyboard => orphan}/kmac/keymap_winkeyless.h (100%) rename {keyboard => orphan}/kmac/led.c (100%) rename {keyboard => orphan}/kmac/matrix.c (100%) rename {keyboard => orphan}/lightpad/Makefile.lufa (100%) rename {keyboard => orphan}/lightpad/README.md (100%) rename {keyboard => orphan}/lightpad/backlight.c (100%) rename {keyboard => orphan}/lightpad/backlight.h (100%) rename {keyboard => orphan}/lightpad/config.h (100%) rename {keyboard => orphan}/lightpad/keymap.c (100%) rename {keyboard => orphan}/lightpad/keymap_lightpad.h (100%) rename {keyboard => orphan}/lightpad/led.c (100%) rename {keyboard => orphan}/lightpad/matrix.c (100%) rename {keyboard => orphan}/lightsaber/Makefile.lufa (100%) rename {keyboard => orphan}/lightsaber/Makefile.pjrc (100%) rename {keyboard => orphan}/lightsaber/README.md (100%) rename {keyboard => orphan}/lightsaber/backlight.c (100%) rename {keyboard => orphan}/lightsaber/backlight.h (100%) rename {keyboard => orphan}/lightsaber/config.h (100%) rename {keyboard => orphan}/lightsaber/keymap.c (100%) rename {keyboard => orphan}/lightsaber/keymap_winkey.h (100%) rename {keyboard => orphan}/lightsaber/led.c (100%) rename {keyboard => orphan}/lightsaber/matrix.c (100%) rename {keyboard => orphan}/macway/Makefile.lufa (100%) rename {keyboard => orphan}/macway/Makefile.pjrc (100%) rename {keyboard => orphan}/macway/config.h (100%) rename {keyboard => orphan}/macway/doc/back.jpg (100%) rename {keyboard => orphan}/macway/doc/case.jpg (100%) rename {keyboard => orphan}/macway/doc/keys.jpg (100%) rename {keyboard => orphan}/macway/doc/side.jpg (100%) rename {keyboard => orphan}/macway/doc/switch.jpg (100%) rename {keyboard => orphan}/macway/doc/teensy.jpg (100%) rename {keyboard => orphan}/macway/doc/wiring.jpg (100%) rename {keyboard => orphan}/macway/doc/withHHKB.jpg (100%) rename {keyboard => orphan}/macway/doc/withThinkPad.jpg (100%) rename {keyboard => orphan}/macway/keymap.c (100%) rename {keyboard/IIgs => orphan/macway}/led.c (100%) rename {keyboard => orphan}/macway/matrix.c (100%) rename {keyboard => orphan}/nerd/Makefile (100%) rename {keyboard => orphan}/nerd/README.md (100%) rename {keyboard => orphan}/nerd/backlight.c (100%) rename {keyboard => orphan}/nerd/backlight.h (100%) rename {keyboard => orphan}/nerd/config.h (100%) rename {keyboard => orphan}/nerd/keymap_60_ansi150.c (100%) rename {keyboard => orphan}/nerd/keymap_80_ansi150.c (100%) rename {keyboard => orphan}/nerd/keymap_common.c (100%) rename {keyboard => orphan}/nerd/keymap_common.h (100%) rename {keyboard => orphan}/nerd/matrix.c (100%) rename {keyboard => orphan}/phantom/Makefile.lufa (100%) rename {keyboard => orphan}/phantom/Makefile.pjrc (100%) rename {keyboard => orphan}/phantom/README.md (100%) rename {keyboard => orphan}/phantom/config.h (100%) rename {keyboard => orphan}/phantom/keymap.c (100%) rename {keyboard => orphan}/phantom/keymap_7bit.h (100%) rename {keyboard => orphan}/phantom/keymap_ansi.h (100%) rename {keyboard => orphan}/phantom/keymap_ansi_150.h (100%) rename {keyboard => orphan}/phantom/keymap_iso.h (100%) rename {keyboard => orphan}/phantom/keymap_iso_150.h (100%) rename {keyboard => orphan}/phantom/led.c (100%) rename {keyboard => orphan}/phantom/matrix.c (100%) rename {converter => orphan}/serialmouse_usb/Makefile (100%) rename {converter => orphan}/serialmouse_usb/README.md (100%) rename {converter => orphan}/serialmouse_usb/config.h (100%) rename {converter => orphan}/serialmouse_usb/keymap.c (100%) rename {converter => orphan}/serialmouse_usb/keymap_common.c (100%) rename {converter => orphan}/serialmouse_usb/keymap_common.h (100%) rename {keyboard/macway => orphan/serialmouse_usb}/led.c (100%) rename {converter => orphan}/serialmouse_usb/matrix.c (100%) rename {converter => orphan}/terminal_bluefruit/Makefile (100%) rename {converter => orphan}/terminal_bluefruit/README (100%) rename {converter => orphan}/terminal_bluefruit/config.h (100%) rename {converter => orphan}/terminal_bluefruit/keymap.c (100%) rename {converter => orphan}/terminal_bluefruit/led.c (100%) rename {converter => orphan}/terminal_bluefruit/matrix.c (100%) diff --git a/README.md b/README.md index 7edce607..941acf11 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,15 @@ TMK Keyboard Firmware Collection ================================ -This is a keyboard firmware with some useful features for Atmel AVR controller. +This repository includes keyboard and converter firmware projects built with [`tmk_core`][tmk_core] keyboard library. -Source code is available here: +The latest source code is available here: Updates ------- +#### 2016/06/22 +Some projects were moved from `converter` and `keyboard` to `orphan` directory. Those might be removed in some future but you will be able to access them with `orphans` tag. See + #### 2016/02/10 core: flabbergast's Chibios protocol was merged from (@72b1668). See [tmk_core/protocol/chibios/README.md](tmk_core/protocol/chibios/README.md). Chibios protocol supports Cortex-M such as STM32 and Kinetis. @@ -19,28 +22,6 @@ In `Makefile` you need to set `TMK_DIR` to indicate core library location now. -Features --------- -These features can be used in your keyboard. - -* Multi-layer Keymap - Multiple keyboard layouts with layer switching -* Mouse key - Mouse control with keyboard -* System Control Key - Power Down, Sleep, Wake Up and USB Remote Wake up -* Media Control Key - Volume Down/Up, Mute, Next/Prev track, Play, Stop and etc -* USB NKRO - 120 keys(+ 8 modifiers) simultaneously -* PS/2 mouse support - PS/2 mouse(TrackPoint) as composite device -* Keyboard protocols - PS/2, ADB, M0110, Sun and other old keyboard protocols -* User Function - Customizable function of key with writing code -* Macro - Very primitive at this time -* Keyboard Tricks - Oneshot modifier and modifier with tapping feature -* Debug Console - Messages for debug and interaction with firmware -* Virtual DIP Switch - Configurations stored EEPROM(Boot Magic) -* Locking CapsLock - Mechanical switch support for CapsLock -* Breathing Sleep LED - Sleep indicator with charm during USB suspend -* Backlight - Control backlight levels - - - Projects -------- You can find some keyboard specific projects under `converter` and `keyboard` directory. @@ -54,32 +35,23 @@ You can find some keyboard specific projects under `converter` and `keyboard` di * [x68k_usb](converter/x68k_usb/) - [Sharp X68000 keyboard to USB][GH_x68k] * [sun_usb](converter/sun_usb/) - [Sun] to USB(type4, 5 and 3?) * [pc98_usb](converter/pc98_usb/) - [PC98] to USB -* [usb_usb](converter/usb_usb/) - USB to USB(experimental) -* [ascii_usb](converter/ascii_usb/) - ASCII(Serial console terminal) to USB -* [ibm4704_usb](converter/ibm4704_usb) - [IBM 4704 keyboard Converter][GH_ibm4704] +* [usb_usb](converter/usb_usb/) - [USB to USB][GH_usb] +* [ibm4704_usb](converter/ibm4704_usb) - [IBM 4704 keyboard to USB][GH_ibm4704] +* [next_usb](converter/next_usb) - NeXT(Non-ADB) to USB, contributed by [BCG](https://github.com/bgould) and based on [Adafruit's work](https://learn.adafruit.com/usb-next-keyboard-with-arduino-micro/overview) ### keyboard * [hhkb](keyboard/hhkb/) - [Happy Hacking Keyboard pro][GH_hhkb] **my main board** -* [gh60](keyboard/gh60/) - [GH60] DIY 60% keyboard [prototype][GH60_proto] **my second board** +* [alps64](keyboard/alps64/) - [Alps64 PCB](https://geekhack.org/index.php?topic=69740.0) * [hbkb](keyboard/hbkb/) - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod) -* [hid_liber](keyboard/hid_liber/) - [HID liberation][HID_liber] controller (by alaricljs) -* [phantom](keyboard/phantom/) - [Phantom] keyboard (by Tranquilite) -* [IIgs_Standard](keyboard/IIgs/) - Apple [IIGS] keyboard mod(by JeffreySung) -* [macway](keyboard/macway/) - [Compact keyboard mod][GH_macway] [retired] -* [KMAC](keyboard/kmac/) - Korean custom keyboard -* [Lightsaber](keyboard/lightsaber/) - Korean custom keyboard * [Infinity](keyboard/infinity/) - Massdrop [Infinity keyboard][Infinity] -* [NerD](keyboard/nerd/) - Korean custom keyboard -* [KittenPaw](keyboard/kitten_paw) - Custom Majestouch controller -* [Lightpad](keyboard/lightpad) - Korean custom keypad -* [ghost_squid](keyboard/ghost_squid/) - [The Ghost Squid][ghost_squid] controller for [Cooler Master QuickFire XT][cmxt] - -### External projects using tmk_keyboard -* [ErgoDox_cub-uanic][cub-uanic] - Split Ergonomic Keyboard [ErgoDox][ergodox_org] -* [mcdox][mcdox_tmk] - [mcdox][mcdox] +* [gh60](keyboard/gh60/) - [GH60] DIY 60% keyboard [prototype][GH60_proto] **my second board** +* [onekey](keyboard/onekey/) - Simple one key keyboard example + + +### Projects based tmk_keyboard or tmk_core +https://github.com/tmk/tmk_keyboard/wiki/TMK-Based-Projects -[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930 [GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047 [GH_ps2]: http://geekhack.org/showwiki.php?title=Island:14618 [GH_adb]: http://geekhack.org/showwiki.php?title=Island:14290 @@ -90,20 +62,11 @@ You can find some keyboard specific projects under `converter` and `keyboard` di [GH_x68k]: http://geekhack.org/showwiki.php?title=Island:29060 [GH_hbkb]: http://geekhack.org/showwiki.php?title=Island:29483 [GH_ibm4704]: http://geekhack.org/index.php?topic=54706.0 -[HID_liber]: http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions -[Phantom]: http://geekhack.org/index.php?topic=26742 [GH60]: http://geekhack.org/index.php?topic=34959 [GH60_proto]: http://geekhack.org/index.php?topic=37570.0 [PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801 [Sun]: http://en.wikipedia.org/wiki/Sun-3 -[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS [Infinity]: https://www.massdrop.com/buy/infinity-keyboard-kit -[ghost_squid]: http://deskthority.net/wiki/Costar_replacement_controllers#The_Ghost_Squid -[cmxt]: http://gaming.coolermaster.com/en/products/keyboards/quickfirext/ -[ergodox_org]: http://ergodox.org/ -[cub-uanic]: https://github.com/cub-uanic/tmk_keyboard/tree/master/keyboard/ergodox -[mcdox]: https://github.com/DavidMcEwan/mcdox -[mcdox_tmk]: https://github.com/DavidMcEwan/tmk_keyboard/tree/master/keyboard/mcdox @@ -131,7 +94,7 @@ Magic Commands -------------- To see help press `Magic` + `H`. -`Magic` key combination is `LShift` + `RShift` in many project, but `Power` key on ADB converter. +`Magic` key combination is `LShift` + `RShift` in many projects, but `Power` key on ADB converter. `Magic` keybind can be vary on each project, check `config.h` in project directory. Following commands can be also executed with `Magic` + key. In console mode `Magic` keybind is not needed. @@ -202,11 +165,11 @@ To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be Mechanical Locking support -------------------------- -This feature makes it possible for you to use mechanical locking switch for `CapsLock`, `NumLock` +This feature makes it possible for you to use mechanical locking switch for `CapsLock`, `NumLock` or `ScrollLock`. To enable this feature define these macros in `config.h` and use `KC_LCAP`, `KC_LN UM` or `KC_LSCR` in keymap for locking key instead of normal `KC_CAPS`, `KC_NLCK` or `KC_SLCK`. Res ync option tries to keep switch state consistent with keyboard LED state. - + #define LOCKING_SUPPORT_ENABLE #define LOCKING_RESYNC_ENABLE @@ -214,15 +177,21 @@ ync option tries to keep switch state consistent with keyboard LED state. Start Your Own Project ----------------------- -**TBD** +1. Add `tmk_core` into your repository using `git submodule` or `git subtree`. +2. Copy files from `tmk_keybaord` or other project similar to yours +3. Edit those files to support your keyboard. + +See these as examples. +- https://github.com/tmk/infinity_ergodox +- https://github.com/tmk/whitefox Debugging -------- -Use PJRC's `hid_listen` to see debug messages. You can use the tool for debug even if firmware use LUFA stack. +Use PJRC's `hid_listen` to see debug messages. You can use xprintf() to display debug info, see `tmk_core/common/xprintf.h`. -You can use xprintf() to display debug info on `hid_listen`, see `tmk_core/common/xprintf.h`. +- https://www.pjrc.com/teensy/hid_listen.html @@ -236,6 +205,13 @@ Files and Directories +Contribution +------------ +- Report bugs in github **[Issues](https://github.com/tmk/tmk_keyboard/issues)**. +- Pull requets are also welcomed. + + + Coding Style ------------- - Doesn't use Tab to indent, use 4-spaces instead. diff --git a/keyboard/IIgs/Makefile b/orphan/IIgs/Makefile similarity index 100% rename from keyboard/IIgs/Makefile rename to orphan/IIgs/Makefile diff --git a/keyboard/IIgs/README b/orphan/IIgs/README similarity index 100% rename from keyboard/IIgs/README rename to orphan/IIgs/README diff --git a/keyboard/IIgs/config.h b/orphan/IIgs/config.h similarity index 100% rename from keyboard/IIgs/config.h rename to orphan/IIgs/config.h diff --git a/keyboard/IIgs/doc/PIN_BYPASS.jpg b/orphan/IIgs/doc/PIN_BYPASS.jpg similarity index 100% rename from keyboard/IIgs/doc/PIN_BYPASS.jpg rename to orphan/IIgs/doc/PIN_BYPASS.jpg diff --git a/keyboard/IIgs/doc/Teensy++_Mod.jpg b/orphan/IIgs/doc/Teensy++_Mod.jpg similarity index 100% rename from keyboard/IIgs/doc/Teensy++_Mod.jpg rename to orphan/IIgs/doc/Teensy++_Mod.jpg diff --git a/keyboard/IIgs/hid_listen.mac b/orphan/IIgs/hid_listen.mac old mode 100755 new mode 100644 similarity index 100% rename from keyboard/IIgs/hid_listen.mac rename to orphan/IIgs/hid_listen.mac diff --git a/keyboard/IIgs/keymap.c b/orphan/IIgs/keymap.c similarity index 100% rename from keyboard/IIgs/keymap.c rename to orphan/IIgs/keymap.c diff --git a/converter/serialmouse_usb/led.c b/orphan/IIgs/led.c similarity index 100% rename from converter/serialmouse_usb/led.c rename to orphan/IIgs/led.c diff --git a/keyboard/IIgs/matrix.c b/orphan/IIgs/matrix.c similarity index 100% rename from keyboard/IIgs/matrix.c rename to orphan/IIgs/matrix.c diff --git a/orphan/README.md b/orphan/README.md new file mode 100644 index 00000000..08274cb1 --- /dev/null +++ b/orphan/README.md @@ -0,0 +1,5 @@ +Orphan Projects +=============== +These projects won't be updated anymore and might be removed sometime in the future. + +https://github.com/tmk/tmk_keyboard/issues/173 diff --git a/converter/ascii_usb/Makefile b/orphan/ascii_usb/Makefile similarity index 100% rename from converter/ascii_usb/Makefile rename to orphan/ascii_usb/Makefile diff --git a/converter/ascii_usb/README b/orphan/ascii_usb/README similarity index 100% rename from converter/ascii_usb/README rename to orphan/ascii_usb/README diff --git a/converter/ascii_usb/config.h b/orphan/ascii_usb/config.h similarity index 100% rename from converter/ascii_usb/config.h rename to orphan/ascii_usb/config.h diff --git a/converter/ascii_usb/keymap.c b/orphan/ascii_usb/keymap.c similarity index 100% rename from converter/ascii_usb/keymap.c rename to orphan/ascii_usb/keymap.c diff --git a/converter/ascii_usb/led.c b/orphan/ascii_usb/led.c similarity index 100% rename from converter/ascii_usb/led.c rename to orphan/ascii_usb/led.c diff --git a/converter/ascii_usb/matrix.c b/orphan/ascii_usb/matrix.c similarity index 100% rename from converter/ascii_usb/matrix.c rename to orphan/ascii_usb/matrix.c diff --git a/keyboard/ghost_squid/Makefile.lufa b/orphan/ghost_squid/Makefile.lufa similarity index 100% rename from keyboard/ghost_squid/Makefile.lufa rename to orphan/ghost_squid/Makefile.lufa diff --git a/keyboard/ghost_squid/README.md b/orphan/ghost_squid/README.md similarity index 100% rename from keyboard/ghost_squid/README.md rename to orphan/ghost_squid/README.md diff --git a/keyboard/ghost_squid/config.h b/orphan/ghost_squid/config.h similarity index 100% rename from keyboard/ghost_squid/config.h rename to orphan/ghost_squid/config.h diff --git a/keyboard/ghost_squid/keymap.c b/orphan/ghost_squid/keymap.c similarity index 100% rename from keyboard/ghost_squid/keymap.c rename to orphan/ghost_squid/keymap.c diff --git a/keyboard/ghost_squid/keymap_ansi.h b/orphan/ghost_squid/keymap_ansi.h similarity index 100% rename from keyboard/ghost_squid/keymap_ansi.h rename to orphan/ghost_squid/keymap_ansi.h diff --git a/keyboard/ghost_squid/led.c b/orphan/ghost_squid/led.c similarity index 100% rename from keyboard/ghost_squid/led.c rename to orphan/ghost_squid/led.c diff --git a/keyboard/ghost_squid/matrix.c b/orphan/ghost_squid/matrix.c similarity index 100% rename from keyboard/ghost_squid/matrix.c rename to orphan/ghost_squid/matrix.c diff --git a/keyboard/hid_liber/Makefile.lufa b/orphan/hid_liber/Makefile.lufa similarity index 100% rename from keyboard/hid_liber/Makefile.lufa rename to orphan/hid_liber/Makefile.lufa diff --git a/keyboard/hid_liber/Makefile.pjrc b/orphan/hid_liber/Makefile.pjrc similarity index 100% rename from keyboard/hid_liber/Makefile.pjrc rename to orphan/hid_liber/Makefile.pjrc diff --git a/keyboard/hid_liber/README.md b/orphan/hid_liber/README.md similarity index 100% rename from keyboard/hid_liber/README.md rename to orphan/hid_liber/README.md diff --git a/keyboard/hid_liber/config.h b/orphan/hid_liber/config.h similarity index 100% rename from keyboard/hid_liber/config.h rename to orphan/hid_liber/config.h diff --git a/keyboard/hid_liber/keymap.c b/orphan/hid_liber/keymap.c similarity index 100% rename from keyboard/hid_liber/keymap.c rename to orphan/hid_liber/keymap.c diff --git a/keyboard/hid_liber/keymap_alaricljs.h b/orphan/hid_liber/keymap_alaricljs.h similarity index 100% rename from keyboard/hid_liber/keymap_alaricljs.h rename to orphan/hid_liber/keymap_alaricljs.h diff --git a/keyboard/hid_liber/keymap_ansi.h b/orphan/hid_liber/keymap_ansi.h similarity index 100% rename from keyboard/hid_liber/keymap_ansi.h rename to orphan/hid_liber/keymap_ansi.h diff --git a/keyboard/hid_liber/keymap_custom.h b/orphan/hid_liber/keymap_custom.h similarity index 100% rename from keyboard/hid_liber/keymap_custom.h rename to orphan/hid_liber/keymap_custom.h diff --git a/keyboard/hid_liber/keymap_iso.h b/orphan/hid_liber/keymap_iso.h similarity index 100% rename from keyboard/hid_liber/keymap_iso.h rename to orphan/hid_liber/keymap_iso.h diff --git a/keyboard/hid_liber/led.c b/orphan/hid_liber/led.c similarity index 100% rename from keyboard/hid_liber/led.c rename to orphan/hid_liber/led.c diff --git a/keyboard/hid_liber/matrix.c b/orphan/hid_liber/matrix.c similarity index 100% rename from keyboard/hid_liber/matrix.c rename to orphan/hid_liber/matrix.c diff --git a/keyboard/kitten_paw/Makefile.lufa b/orphan/kitten_paw/Makefile.lufa similarity index 100% rename from keyboard/kitten_paw/Makefile.lufa rename to orphan/kitten_paw/Makefile.lufa diff --git a/keyboard/kitten_paw/README.md b/orphan/kitten_paw/README.md similarity index 100% rename from keyboard/kitten_paw/README.md rename to orphan/kitten_paw/README.md diff --git a/keyboard/kitten_paw/config.h b/orphan/kitten_paw/config.h similarity index 100% rename from keyboard/kitten_paw/config.h rename to orphan/kitten_paw/config.h diff --git a/keyboard/kitten_paw/keymap.c b/orphan/kitten_paw/keymap.c similarity index 100% rename from keyboard/kitten_paw/keymap.c rename to orphan/kitten_paw/keymap.c diff --git a/keyboard/kitten_paw/keymap_ansi.h b/orphan/kitten_paw/keymap_ansi.h similarity index 100% rename from keyboard/kitten_paw/keymap_ansi.h rename to orphan/kitten_paw/keymap_ansi.h diff --git a/keyboard/kitten_paw/led.c b/orphan/kitten_paw/led.c similarity index 100% rename from keyboard/kitten_paw/led.c rename to orphan/kitten_paw/led.c diff --git a/keyboard/kitten_paw/matrix.c b/orphan/kitten_paw/matrix.c similarity index 100% rename from keyboard/kitten_paw/matrix.c rename to orphan/kitten_paw/matrix.c diff --git a/keyboard/kmac/Makefile.lufa b/orphan/kmac/Makefile.lufa similarity index 100% rename from keyboard/kmac/Makefile.lufa rename to orphan/kmac/Makefile.lufa diff --git a/keyboard/kmac/Makefile.pjrc b/orphan/kmac/Makefile.pjrc similarity index 100% rename from keyboard/kmac/Makefile.pjrc rename to orphan/kmac/Makefile.pjrc diff --git a/keyboard/kmac/README.md b/orphan/kmac/README.md similarity index 100% rename from keyboard/kmac/README.md rename to orphan/kmac/README.md diff --git a/keyboard/kmac/backlight.c b/orphan/kmac/backlight.c similarity index 100% rename from keyboard/kmac/backlight.c rename to orphan/kmac/backlight.c diff --git a/keyboard/kmac/config.h b/orphan/kmac/config.h similarity index 100% rename from keyboard/kmac/config.h rename to orphan/kmac/config.h diff --git a/keyboard/kmac/keymap.c b/orphan/kmac/keymap.c similarity index 100% rename from keyboard/kmac/keymap.c rename to orphan/kmac/keymap.c diff --git a/keyboard/kmac/keymap_winkey.h b/orphan/kmac/keymap_winkey.h similarity index 100% rename from keyboard/kmac/keymap_winkey.h rename to orphan/kmac/keymap_winkey.h diff --git a/keyboard/kmac/keymap_winkeyless.h b/orphan/kmac/keymap_winkeyless.h similarity index 100% rename from keyboard/kmac/keymap_winkeyless.h rename to orphan/kmac/keymap_winkeyless.h diff --git a/keyboard/kmac/led.c b/orphan/kmac/led.c similarity index 100% rename from keyboard/kmac/led.c rename to orphan/kmac/led.c diff --git a/keyboard/kmac/matrix.c b/orphan/kmac/matrix.c similarity index 100% rename from keyboard/kmac/matrix.c rename to orphan/kmac/matrix.c diff --git a/keyboard/lightpad/Makefile.lufa b/orphan/lightpad/Makefile.lufa similarity index 100% rename from keyboard/lightpad/Makefile.lufa rename to orphan/lightpad/Makefile.lufa diff --git a/keyboard/lightpad/README.md b/orphan/lightpad/README.md similarity index 100% rename from keyboard/lightpad/README.md rename to orphan/lightpad/README.md diff --git a/keyboard/lightpad/backlight.c b/orphan/lightpad/backlight.c similarity index 100% rename from keyboard/lightpad/backlight.c rename to orphan/lightpad/backlight.c diff --git a/keyboard/lightpad/backlight.h b/orphan/lightpad/backlight.h similarity index 100% rename from keyboard/lightpad/backlight.h rename to orphan/lightpad/backlight.h diff --git a/keyboard/lightpad/config.h b/orphan/lightpad/config.h similarity index 100% rename from keyboard/lightpad/config.h rename to orphan/lightpad/config.h diff --git a/keyboard/lightpad/keymap.c b/orphan/lightpad/keymap.c similarity index 100% rename from keyboard/lightpad/keymap.c rename to orphan/lightpad/keymap.c diff --git a/keyboard/lightpad/keymap_lightpad.h b/orphan/lightpad/keymap_lightpad.h similarity index 100% rename from keyboard/lightpad/keymap_lightpad.h rename to orphan/lightpad/keymap_lightpad.h diff --git a/keyboard/lightpad/led.c b/orphan/lightpad/led.c similarity index 100% rename from keyboard/lightpad/led.c rename to orphan/lightpad/led.c diff --git a/keyboard/lightpad/matrix.c b/orphan/lightpad/matrix.c similarity index 100% rename from keyboard/lightpad/matrix.c rename to orphan/lightpad/matrix.c diff --git a/keyboard/lightsaber/Makefile.lufa b/orphan/lightsaber/Makefile.lufa similarity index 100% rename from keyboard/lightsaber/Makefile.lufa rename to orphan/lightsaber/Makefile.lufa diff --git a/keyboard/lightsaber/Makefile.pjrc b/orphan/lightsaber/Makefile.pjrc similarity index 100% rename from keyboard/lightsaber/Makefile.pjrc rename to orphan/lightsaber/Makefile.pjrc diff --git a/keyboard/lightsaber/README.md b/orphan/lightsaber/README.md similarity index 100% rename from keyboard/lightsaber/README.md rename to orphan/lightsaber/README.md diff --git a/keyboard/lightsaber/backlight.c b/orphan/lightsaber/backlight.c similarity index 100% rename from keyboard/lightsaber/backlight.c rename to orphan/lightsaber/backlight.c diff --git a/keyboard/lightsaber/backlight.h b/orphan/lightsaber/backlight.h similarity index 100% rename from keyboard/lightsaber/backlight.h rename to orphan/lightsaber/backlight.h diff --git a/keyboard/lightsaber/config.h b/orphan/lightsaber/config.h similarity index 100% rename from keyboard/lightsaber/config.h rename to orphan/lightsaber/config.h diff --git a/keyboard/lightsaber/keymap.c b/orphan/lightsaber/keymap.c similarity index 100% rename from keyboard/lightsaber/keymap.c rename to orphan/lightsaber/keymap.c diff --git a/keyboard/lightsaber/keymap_winkey.h b/orphan/lightsaber/keymap_winkey.h similarity index 100% rename from keyboard/lightsaber/keymap_winkey.h rename to orphan/lightsaber/keymap_winkey.h diff --git a/keyboard/lightsaber/led.c b/orphan/lightsaber/led.c similarity index 100% rename from keyboard/lightsaber/led.c rename to orphan/lightsaber/led.c diff --git a/keyboard/lightsaber/matrix.c b/orphan/lightsaber/matrix.c similarity index 100% rename from keyboard/lightsaber/matrix.c rename to orphan/lightsaber/matrix.c diff --git a/keyboard/macway/Makefile.lufa b/orphan/macway/Makefile.lufa similarity index 100% rename from keyboard/macway/Makefile.lufa rename to orphan/macway/Makefile.lufa diff --git a/keyboard/macway/Makefile.pjrc b/orphan/macway/Makefile.pjrc similarity index 100% rename from keyboard/macway/Makefile.pjrc rename to orphan/macway/Makefile.pjrc diff --git a/keyboard/macway/config.h b/orphan/macway/config.h similarity index 100% rename from keyboard/macway/config.h rename to orphan/macway/config.h diff --git a/keyboard/macway/doc/back.jpg b/orphan/macway/doc/back.jpg similarity index 100% rename from keyboard/macway/doc/back.jpg rename to orphan/macway/doc/back.jpg diff --git a/keyboard/macway/doc/case.jpg b/orphan/macway/doc/case.jpg similarity index 100% rename from keyboard/macway/doc/case.jpg rename to orphan/macway/doc/case.jpg diff --git a/keyboard/macway/doc/keys.jpg b/orphan/macway/doc/keys.jpg similarity index 100% rename from keyboard/macway/doc/keys.jpg rename to orphan/macway/doc/keys.jpg diff --git a/keyboard/macway/doc/side.jpg b/orphan/macway/doc/side.jpg similarity index 100% rename from keyboard/macway/doc/side.jpg rename to orphan/macway/doc/side.jpg diff --git a/keyboard/macway/doc/switch.jpg b/orphan/macway/doc/switch.jpg similarity index 100% rename from keyboard/macway/doc/switch.jpg rename to orphan/macway/doc/switch.jpg diff --git a/keyboard/macway/doc/teensy.jpg b/orphan/macway/doc/teensy.jpg similarity index 100% rename from keyboard/macway/doc/teensy.jpg rename to orphan/macway/doc/teensy.jpg diff --git a/keyboard/macway/doc/wiring.jpg b/orphan/macway/doc/wiring.jpg similarity index 100% rename from keyboard/macway/doc/wiring.jpg rename to orphan/macway/doc/wiring.jpg diff --git a/keyboard/macway/doc/withHHKB.jpg b/orphan/macway/doc/withHHKB.jpg similarity index 100% rename from keyboard/macway/doc/withHHKB.jpg rename to orphan/macway/doc/withHHKB.jpg diff --git a/keyboard/macway/doc/withThinkPad.jpg b/orphan/macway/doc/withThinkPad.jpg similarity index 100% rename from keyboard/macway/doc/withThinkPad.jpg rename to orphan/macway/doc/withThinkPad.jpg diff --git a/keyboard/macway/keymap.c b/orphan/macway/keymap.c similarity index 100% rename from keyboard/macway/keymap.c rename to orphan/macway/keymap.c diff --git a/keyboard/IIgs/led.c b/orphan/macway/led.c similarity index 100% rename from keyboard/IIgs/led.c rename to orphan/macway/led.c diff --git a/keyboard/macway/matrix.c b/orphan/macway/matrix.c similarity index 100% rename from keyboard/macway/matrix.c rename to orphan/macway/matrix.c diff --git a/keyboard/nerd/Makefile b/orphan/nerd/Makefile similarity index 100% rename from keyboard/nerd/Makefile rename to orphan/nerd/Makefile diff --git a/keyboard/nerd/README.md b/orphan/nerd/README.md similarity index 100% rename from keyboard/nerd/README.md rename to orphan/nerd/README.md diff --git a/keyboard/nerd/backlight.c b/orphan/nerd/backlight.c similarity index 100% rename from keyboard/nerd/backlight.c rename to orphan/nerd/backlight.c diff --git a/keyboard/nerd/backlight.h b/orphan/nerd/backlight.h similarity index 100% rename from keyboard/nerd/backlight.h rename to orphan/nerd/backlight.h diff --git a/keyboard/nerd/config.h b/orphan/nerd/config.h similarity index 100% rename from keyboard/nerd/config.h rename to orphan/nerd/config.h diff --git a/keyboard/nerd/keymap_60_ansi150.c b/orphan/nerd/keymap_60_ansi150.c similarity index 100% rename from keyboard/nerd/keymap_60_ansi150.c rename to orphan/nerd/keymap_60_ansi150.c diff --git a/keyboard/nerd/keymap_80_ansi150.c b/orphan/nerd/keymap_80_ansi150.c similarity index 100% rename from keyboard/nerd/keymap_80_ansi150.c rename to orphan/nerd/keymap_80_ansi150.c diff --git a/keyboard/nerd/keymap_common.c b/orphan/nerd/keymap_common.c similarity index 100% rename from keyboard/nerd/keymap_common.c rename to orphan/nerd/keymap_common.c diff --git a/keyboard/nerd/keymap_common.h b/orphan/nerd/keymap_common.h similarity index 100% rename from keyboard/nerd/keymap_common.h rename to orphan/nerd/keymap_common.h diff --git a/keyboard/nerd/matrix.c b/orphan/nerd/matrix.c similarity index 100% rename from keyboard/nerd/matrix.c rename to orphan/nerd/matrix.c diff --git a/keyboard/phantom/Makefile.lufa b/orphan/phantom/Makefile.lufa similarity index 100% rename from keyboard/phantom/Makefile.lufa rename to orphan/phantom/Makefile.lufa diff --git a/keyboard/phantom/Makefile.pjrc b/orphan/phantom/Makefile.pjrc similarity index 100% rename from keyboard/phantom/Makefile.pjrc rename to orphan/phantom/Makefile.pjrc diff --git a/keyboard/phantom/README.md b/orphan/phantom/README.md similarity index 100% rename from keyboard/phantom/README.md rename to orphan/phantom/README.md diff --git a/keyboard/phantom/config.h b/orphan/phantom/config.h similarity index 100% rename from keyboard/phantom/config.h rename to orphan/phantom/config.h diff --git a/keyboard/phantom/keymap.c b/orphan/phantom/keymap.c similarity index 100% rename from keyboard/phantom/keymap.c rename to orphan/phantom/keymap.c diff --git a/keyboard/phantom/keymap_7bit.h b/orphan/phantom/keymap_7bit.h similarity index 100% rename from keyboard/phantom/keymap_7bit.h rename to orphan/phantom/keymap_7bit.h diff --git a/keyboard/phantom/keymap_ansi.h b/orphan/phantom/keymap_ansi.h similarity index 100% rename from keyboard/phantom/keymap_ansi.h rename to orphan/phantom/keymap_ansi.h diff --git a/keyboard/phantom/keymap_ansi_150.h b/orphan/phantom/keymap_ansi_150.h similarity index 100% rename from keyboard/phantom/keymap_ansi_150.h rename to orphan/phantom/keymap_ansi_150.h diff --git a/keyboard/phantom/keymap_iso.h b/orphan/phantom/keymap_iso.h similarity index 100% rename from keyboard/phantom/keymap_iso.h rename to orphan/phantom/keymap_iso.h diff --git a/keyboard/phantom/keymap_iso_150.h b/orphan/phantom/keymap_iso_150.h similarity index 100% rename from keyboard/phantom/keymap_iso_150.h rename to orphan/phantom/keymap_iso_150.h diff --git a/keyboard/phantom/led.c b/orphan/phantom/led.c similarity index 100% rename from keyboard/phantom/led.c rename to orphan/phantom/led.c diff --git a/keyboard/phantom/matrix.c b/orphan/phantom/matrix.c similarity index 100% rename from keyboard/phantom/matrix.c rename to orphan/phantom/matrix.c diff --git a/converter/serialmouse_usb/Makefile b/orphan/serialmouse_usb/Makefile similarity index 100% rename from converter/serialmouse_usb/Makefile rename to orphan/serialmouse_usb/Makefile diff --git a/converter/serialmouse_usb/README.md b/orphan/serialmouse_usb/README.md similarity index 100% rename from converter/serialmouse_usb/README.md rename to orphan/serialmouse_usb/README.md diff --git a/converter/serialmouse_usb/config.h b/orphan/serialmouse_usb/config.h similarity index 100% rename from converter/serialmouse_usb/config.h rename to orphan/serialmouse_usb/config.h diff --git a/converter/serialmouse_usb/keymap.c b/orphan/serialmouse_usb/keymap.c similarity index 100% rename from converter/serialmouse_usb/keymap.c rename to orphan/serialmouse_usb/keymap.c diff --git a/converter/serialmouse_usb/keymap_common.c b/orphan/serialmouse_usb/keymap_common.c similarity index 100% rename from converter/serialmouse_usb/keymap_common.c rename to orphan/serialmouse_usb/keymap_common.c diff --git a/converter/serialmouse_usb/keymap_common.h b/orphan/serialmouse_usb/keymap_common.h similarity index 100% rename from converter/serialmouse_usb/keymap_common.h rename to orphan/serialmouse_usb/keymap_common.h diff --git a/keyboard/macway/led.c b/orphan/serialmouse_usb/led.c similarity index 100% rename from keyboard/macway/led.c rename to orphan/serialmouse_usb/led.c diff --git a/converter/serialmouse_usb/matrix.c b/orphan/serialmouse_usb/matrix.c similarity index 100% rename from converter/serialmouse_usb/matrix.c rename to orphan/serialmouse_usb/matrix.c diff --git a/converter/terminal_bluefruit/Makefile b/orphan/terminal_bluefruit/Makefile similarity index 100% rename from converter/terminal_bluefruit/Makefile rename to orphan/terminal_bluefruit/Makefile diff --git a/converter/terminal_bluefruit/README b/orphan/terminal_bluefruit/README similarity index 100% rename from converter/terminal_bluefruit/README rename to orphan/terminal_bluefruit/README diff --git a/converter/terminal_bluefruit/config.h b/orphan/terminal_bluefruit/config.h similarity index 100% rename from converter/terminal_bluefruit/config.h rename to orphan/terminal_bluefruit/config.h diff --git a/converter/terminal_bluefruit/keymap.c b/orphan/terminal_bluefruit/keymap.c similarity index 100% rename from converter/terminal_bluefruit/keymap.c rename to orphan/terminal_bluefruit/keymap.c diff --git a/converter/terminal_bluefruit/led.c b/orphan/terminal_bluefruit/led.c similarity index 100% rename from converter/terminal_bluefruit/led.c rename to orphan/terminal_bluefruit/led.c diff --git a/converter/terminal_bluefruit/matrix.c b/orphan/terminal_bluefruit/matrix.c similarity index 100% rename from converter/terminal_bluefruit/matrix.c rename to orphan/terminal_bluefruit/matrix.c From e590b64703949fc85b3072a3248d57b33731350f Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 22 Jun 2016 12:35:23 +0900 Subject: [PATCH 4/5] Update orphan/README.md --- orphan/README.md | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/orphan/README.md b/orphan/README.md index 08274cb1..917c2c4d 100644 --- a/orphan/README.md +++ b/orphan/README.md @@ -1,5 +1,30 @@ Orphan Projects =============== -These projects won't be updated anymore and might be removed sometime in the future. - +These projects won't be updated by tmk anymore and might be removed sometime in the future. https://github.com/tmk/tmk_keyboard/issues/173 + +Also see this wiki page to find original repositories/authors and alternative projects. +https://github.com/tmk/tmk_keyboard/wiki/TMK-Based-Projects + + +* [ascii_usb](ascii_usb/) - ASCII(Serial console terminal) to USB +* [hid_liber](hid_liber/) - [HID liberation][HID_liber] controller (by alaricljs) +* [phantom](phantom/) - [Phantom] keyboard (by Tranquilite) +* [IIgs](IIgs/) - Apple [IIGS] keyboard mod(by JeffreySung) +* [macway](macway/) - [Compact keyboard mod][GH_macway] [retired] +* [kmac](kmac/) - Korean custom keyboard +* [lightsaber](lightsaber/) - Korean custom keyboard +* [nerd](nerd/) - Korean custom keyboard +* [lightpad](lightpad) - Korean custom keypad +* [kitten_paw](kitten_paw) - Custom Majestouch controller +* [ghost_squid](ghost_squid/) - [The Ghost Squid][ghost_squid] controller for [Cooler Master QuickFire XT][cmxt] +* [terminal_bluefruit](terminal_bluefruit) - [Model M to Bluetooth with Bluefruit EZ-Key HID][Ada] +* [serialmouse_usb](serialmouse_usb) - + +[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930 +[HID_liber]: http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions +[Phantom]: http://geekhack.org/index.php?topic=26742 +[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS +[ghost_squid]: http://deskthority.net/wiki/Costar_replacement_controllers#The_Ghost_Squid +[cmxt]: http://gaming.coolermaster.com/en/products/keyboards/quickfirext/ +[M_bluefruit]: https://learn.adafruit.com/convert-your-model-m-keyboard-to-bluetooth-with-bluefruit-ez-key-hid/overview From 38ab23568e639af7de13e77a2f47a2d51123c6de Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Wed, 22 Jun 2016 13:51:19 +0200 Subject: [PATCH 5/5] README missing link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 941acf11..49992fcc 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ https://github.com/tmk/tmk_keyboard/wiki/TMK-Based-Projects [PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801 [Sun]: http://en.wikipedia.org/wiki/Sun-3 [Infinity]: https://www.massdrop.com/buy/infinity-keyboard-kit +[tmk_core]: https://github.com/tmk/tmk_core