summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md5
-rw-r--r--common/avr/suspend.c27
-rw-r--r--common/command.c1
-rw-r--r--common/matrix.h9
-rw-r--r--common/mbed/xprintf.cpp5
-rw-r--r--common/print.c12
-rw-r--r--common/suspend.h2
-rw-r--r--converter/adb_usb/README.md2
-rw-r--r--converter/ps2_usb/Makefile.mbed2
-rw-r--r--converter/terminal_bluefruit/Makefile16
-rw-r--r--converter/terminal_usb/Makefile15
-rw-r--r--converter/usb_usb/README16
-rw-r--r--doc/other_projects.md1
-rw-r--r--keyboard/hhkb/Makefile10
-rw-r--r--keyboard/hhkb/Makefile.jp2
-rw-r--r--keyboard/hhkb/Makefile.rn42 (renamed from keyboard/hhkb_rn42/Makefile)22
-rw-r--r--keyboard/hhkb/README.md18
-rw-r--r--keyboard/hhkb/config_rn42.h (renamed from keyboard/hhkb_rn42/config.h)0
-rw-r--r--keyboard/hhkb/hhkb_avr.h28
-rw-r--r--keyboard/hhkb/keymap_hasu.c34
-rw-r--r--keyboard/hhkb/matrix.c27
-rw-r--r--keyboard/hhkb/not_supported/Makefile.iwrap (renamed from keyboard/hhkb/Makefile.iwrap)0
-rw-r--r--keyboard/hhkb/not_supported/Makefile.vusb (renamed from keyboard/hhkb/Makefile.vusb)0
-rw-r--r--keyboard/hhkb/not_supported/config_iwrap.h (renamed from keyboard/hhkb/config_iwrap.h)0
-rw-r--r--keyboard/hhkb/not_supported/config_vusb.h (renamed from keyboard/hhkb/config_vusb.h)0
-rw-r--r--keyboard/hhkb/not_supported/iwrap.txt (renamed from keyboard/hhkb/iwrap.txt)0
-rw-r--r--keyboard/hhkb/not_supported/usbconfig.h (renamed from keyboard/hhkb/usbconfig.h)0
-rw-r--r--keyboard/hhkb/rn42.mk (renamed from keyboard/hhkb_rn42/rn42.mk)0
-rw-r--r--keyboard/hhkb/rn42/MEMO.txt255
-rw-r--r--keyboard/hhkb/rn42/PowerSave.txt (renamed from keyboard/hhkb_rn42/PowerSave.txt)64
-rw-r--r--keyboard/hhkb/rn42/RN42.txt408
-rw-r--r--keyboard/hhkb/rn42/battery.c (renamed from keyboard/hhkb_rn42/rn42/battery.c)20
-rw-r--r--keyboard/hhkb/rn42/battery.h (renamed from keyboard/hhkb_rn42/rn42/battery.h)0
-rw-r--r--keyboard/hhkb/rn42/main.c (renamed from keyboard/hhkb_rn42/rn42/main.c)19
-rw-r--r--keyboard/hhkb/rn42/rn42.c (renamed from keyboard/hhkb_rn42/rn42/rn42.c)31
-rw-r--r--keyboard/hhkb/rn42/rn42.h (renamed from keyboard/hhkb_rn42/rn42/rn42.h)3
-rw-r--r--keyboard/hhkb/rn42/rn42_task.c478
-rw-r--r--keyboard/hhkb/rn42/rn42_task.h (renamed from keyboard/hhkb_rn42/rn42/rn42_task.h)0
-rw-r--r--keyboard/hhkb/rn42/suart.S (renamed from keyboard/hhkb_rn42/rn42/suart.S)0
-rw-r--r--keyboard/hhkb/rn42/suart.h (renamed from keyboard/hhkb_rn42/rn42/suart.h)0
-rw-r--r--keyboard/hhkb_rn42/MEMO.txt523
-rw-r--r--keyboard/hhkb_rn42/hhkb_avr.h164
-rw-r--r--keyboard/hhkb_rn42/keymap_common.h84
-rw-r--r--keyboard/hhkb_rn42/keymap_hasu.c282
-rw-r--r--keyboard/hhkb_rn42/keymap_jp.c50
-rw-r--r--keyboard/hhkb_rn42/matrix.c191
-rw-r--r--keyboard/hhkb_rn42/rn42/rn42_task.c294
-rw-r--r--keyboard/infinity/Makefile37
-rw-r--r--keyboard/infinity/README81
-rw-r--r--keyboard/infinity/config.h39
-rw-r--r--keyboard/infinity/keymap.c47
-rw-r--r--keyboard/infinity/keymap_common.c (renamed from keyboard/hhkb_rn42/keymap_common.c)3
-rw-r--r--keyboard/infinity/keymap_common.h58
-rw-r--r--keyboard/infinity/led.c (renamed from keyboard/hhkb_rn42/led.c)8
-rw-r--r--keyboard/infinity/main.cpp44
-rw-r--r--keyboard/infinity/matrix.c107
-rw-r--r--keyboard/infinity/mbed-infinity.mk47
-rw-r--r--keyboard/infinity/mbed-infinity/README39
-rw-r--r--keyboard/infinity/mbed-infinity/USBHAL_KL25Z.cpp557
-rw-r--r--keyboard/infinity/mbed-infinity/cmsis_nvic.c55
-rw-r--r--keyboard/infinity/mbed-infinity/infinity.ld156
-rw-r--r--keyboard/infinity/mbed-infinity/system_MK20D5.c299
-rw-r--r--keyboard/infinity/tool/README25
-rw-r--r--keyboard/infinity/tool/k20dx32_flash.cfg124
-rw-r--r--keyboard/infinity/tool/openocd.cfg13
-rw-r--r--keyboard/nerd/Makefile (renamed from keyboard/hhkb/Makefile.nodebug)53
-rw-r--r--keyboard/nerd/README.md52
-rw-r--r--keyboard/nerd/backlight.c81
-rw-r--r--keyboard/nerd/backlight.h40
-rw-r--r--keyboard/nerd/config.h49
-rw-r--r--keyboard/nerd/keymap_60_ansi150.c30
-rw-r--r--keyboard/nerd/keymap_80_ansi150.c33
-rw-r--r--keyboard/nerd/keymap_common.c29
-rw-r--r--keyboard/nerd/keymap_common.h89
-rw-r--r--keyboard/nerd/matrix.c221
-rw-r--r--protocol/adb.c2
-rw-r--r--protocol/bluefruit/bluefruit.c4
-rw-r--r--protocol/bluefruit/main.c2
-rw-r--r--protocol/lufa/lufa.c41
-rw-r--r--protocol/pjrc/main.c3
-rw-r--r--protocol/pjrc/usb_keyboard.c2
-rw-r--r--protocol/ps2_interrupt.c1
-rw-r--r--protocol/ps2_usart.c1
-rw-r--r--tool/mbed/common.mk2
-rw-r--r--tool/mbed/gcc.mk37
-rw-r--r--tool/mbed/lpc11u35_501.mk50
-rw-r--r--tool/mbed/mbed.mk150
87 files changed, 3928 insertions, 1903 deletions
diff --git a/README.md b/README.md
index 550f1267de..3dceb96398 100644
--- a/README.md
+++ b/README.md
@@ -53,6 +53,10 @@ You can find some keyboard specific projects under `converter` and `keyboard` di
* [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/kittenpaw) - 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]
[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930
@@ -73,6 +77,7 @@ You can find some keyboard specific projects under `converter` and `keyboard` di
[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/
diff --git a/common/avr/suspend.c b/common/avr/suspend.c
index 66a579fd78..80243f02bc 100644
--- a/common/avr/suspend.c
+++ b/common/avr/suspend.c
@@ -7,6 +7,7 @@
#include "backlight.h"
#include "suspend_avr.h"
#include "suspend.h"
+#include "timer.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#endif
@@ -52,11 +53,13 @@ void suspend_idle(uint8_t time)
* WDTO_4S
* WDTO_8S
*/
-void suspend_power_down(uint8_t wdto)
+static uint8_t wdt_timeout = 0;
+static void power_down(uint8_t wdto)
{
#ifdef PROTOCOL_LUFA
if (USB_DeviceState == DEVICE_STATE_Configured) return;
#endif
+ wdt_timeout = wdto;
// Watchdog Interrupt Mode
wdt_intr_enable(wdto);
@@ -67,7 +70,6 @@ void suspend_power_down(uint8_t wdto)
// - prescale clock
// - BOD disable
// - Power Reduction Register PRR
-
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sei();
@@ -78,6 +80,11 @@ void suspend_power_down(uint8_t wdto)
wdt_disable();
}
+void suspend_power_down(void)
+{
+ power_down(WDTO_15MS);
+}
+
bool suspend_wakeup_condition(void)
{
matrix_power_up();
@@ -103,15 +110,13 @@ void suspend_wakeup_init(void)
/* watchdog timeout */
ISR(WDT_vect)
{
- /* wakeup from MCU sleep mode */
-/*
- // blink LED
- static uint8_t led_state = 0;
- static uint8_t led_count = 0;
- led_count++;
- if ((led_count & 0x07) == 0) {
- led_set((led_state ^= (1<<USB_LED_CAPS_LOCK)));
+ // compensate timer for sleep
+ switch (wdt_timeout) {
+ case WDTO_15MS:
+ timer_count += 15 + 2; // WDTO_15MS + 2(from observation)
+ break;
+ default:
+ ;
}
-*/
}
#endif
diff --git a/common/command.c b/common/command.c
index 971ef7f0af..1a507e3a46 100644
--- a/common/command.c
+++ b/common/command.c
@@ -194,6 +194,7 @@ static bool command_common(uint8_t code)
case KC_CAPSLOCK:
if (host_get_driver()) {
host_driver = host_get_driver();
+ clear_keyboard();
host_set_driver(0);
print("Locked.\n");
} else {
diff --git a/common/matrix.h b/common/matrix.h
index 23fef78f74..107ee72653 100644
--- a/common/matrix.h
+++ b/common/matrix.h
@@ -35,6 +35,10 @@ typedef uint32_t matrix_row_t;
#define MATRIX_IS_ON(row, col) (matrix_get_row(row) && (1<<col))
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* number of matrix rows */
uint8_t matrix_rows(void);
/* number of matrix columns */
@@ -48,7 +52,7 @@ bool matrix_is_modified(void) __attribute__ ((deprecated));
/* whether a swtich is on */
bool matrix_is_on(uint8_t row, uint8_t col);
/* matrix state on row */
-matrix_row_t matrix_get_row(uint8_t row);
+matrix_row_t matrix_get_row(uint8_t row);
/* print matrix for debug */
void matrix_print(void);
@@ -57,5 +61,8 @@ void matrix_print(void);
void matrix_power_up(void);
void matrix_power_down(void);
+#ifdef __cplusplus
+}
+#endif
#endif
diff --git a/common/mbed/xprintf.cpp b/common/mbed/xprintf.cpp
index 4342b79f80..3647ece751 100644
--- a/common/mbed/xprintf.cpp
+++ b/common/mbed/xprintf.cpp
@@ -6,6 +6,10 @@
#define STRING_STACK_LIMIT 120
+//TODO
+int xprintf(const char* format, ...) { return 0; }
+
+#if 0
/* mbed Serial */
Serial ser(UART_TX, UART_RX);
@@ -44,3 +48,4 @@ int xprintf(const char* format, ...)
return r;
*/
}
+#endif
diff --git a/common/print.c b/common/print.c
index c13a29f317..ca94e1e5d6 100644
--- a/common/print.c
+++ b/common/print.c
@@ -22,13 +22,14 @@
* THE SOFTWARE.
*/
-#include <avr/io.h>
-#include <avr/pgmspace.h>
+#include <stdint.h>
#include "print.h"
#ifndef NO_PRINT
+#if defined(__AVR__)
+
#define sendchar(c) xputc(c)
@@ -37,4 +38,11 @@ void print_set_sendchar(int8_t (*sendchar_func)(uint8_t))
xdev_out(sendchar_func);
}
+#elif defined(__arm__)
+
+// TODO
+//void print_set_sendchar(int8_t (*sendchar_func)(uint8_t)) { }
+
+#endif
+
#endif
diff --git a/common/suspend.h b/common/suspend.h
index f339c670ac..80617a8244 100644
--- a/common/suspend.h
+++ b/common/suspend.h
@@ -6,7 +6,7 @@
void suspend_idle(uint8_t timeout);
-void suspend_power_down(uint8_t timeout);
+void suspend_power_down(void);
bool suspend_wakeup_condition(void);
void suspend_wakeup_init(void);
diff --git a/converter/adb_usb/README.md b/converter/adb_usb/README.md
index defc477e2c..21ad318c1d 100644
--- a/converter/adb_usb/README.md
+++ b/converter/adb_usb/README.md
@@ -88,7 +88,7 @@ modifiers except for GUI key(Windows/Command).
And most ADB keyboard has no diodes in its matrix so they are not NKRO,
though ADB protocol itself supports it. See protocol/adb.c for more info.
-If keyobard has ISO layout you need to use ISO keymap with `make KEYMAP=iso`. With ANSI
+If keyboard has ISO layout you need to use ISO keymap with `make KEYMAP=iso`. With ANSI
keymap you will suffer from swapped keys problem.
https://github.com/tmk/tmk_keyboard/issues/35
diff --git a/converter/ps2_usb/Makefile.mbed b/converter/ps2_usb/Makefile.mbed
index 631f270f75..ff8a0de7a4 100644
--- a/converter/ps2_usb/Makefile.mbed
+++ b/converter/ps2_usb/Makefile.mbed
@@ -39,6 +39,8 @@ LIBRARIES =
MOUSEKEY_ENABLE = yes
+#include $(TMK_DIR)/tool/mbed/mk20d50m.mk
+include $(TMK_DIR)/tool/mbed/lpc11u35_501.mk
include $(TMK_DIR)/tool/mbed/mbed.mk
include $(TMK_DIR)/tool/mbed/common.mk
include $(TMK_DIR)/tool/mbed/gcc.mk
diff --git a/converter/terminal_bluefruit/Makefile b/converter/terminal_bluefruit/Makefile
index 83d68fc252..28b7397bae 100644
--- a/converter/terminal_bluefruit/Makefile
+++ b/converter/terminal_bluefruit/Makefile
@@ -83,21 +83,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
PS2_USE_INT = yes # uses external interrupt for falling edge of PS/2 clock pin
#PS2_USE_BUSYWAIT = yes # uses primitive reference code
-ifdef PS2_USE_USART
- SRC += protocol/ps2_usart.c
- OPT_DEFS += -DPS2_USE_USART
-endif
-
-ifdef PS2_USE_INT
- SRC += protocol/ps2.c
- OPT_DEFS += -DPS2_USE_INT
-endif
-
-ifdef PS2_USE_BUSYWAIT
- SRC += protocol/ps2.c
- OPT_DEFS += -DPS2_USE_BUSYWAIT
-endif
-
#---------------- Programming Options --------------------------
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
@@ -107,6 +92,7 @@ VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
+include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/protocol/bluefruit.mk
include $(TOP_DIR)/protocol.mk
include $(TOP_DIR)/common.mk
diff --git a/converter/terminal_usb/Makefile b/converter/terminal_usb/Makefile
index 6154d86826..16df638b94 100644
--- a/converter/terminal_usb/Makefile
+++ b/converter/terminal_usb/Makefile
@@ -82,21 +82,6 @@ PS2_USE_USART = yes # uses hardware USART engine for PS/2 signal receive(recomen
#PS2_USE_INT = yes # uses external interrupt for falling edge of PS/2 clock pin
#PS2_USE_BUSYWAIT = yes # uses primitive reference code
-ifdef PS2_USE_USART
- SRC += protocol/ps2_usart.c
- OPT_DEFS += -DPS2_USE_USART
-endif
-
-ifdef PS2_USE_INT
- SRC += protocol/ps2.c
- OPT_DEFS += -DPS2_USE_INT
-endif
-
-ifdef PS2_USE_BUSYWAIT
- SRC += protocol/ps2.c
- OPT_DEFS += -DPS2_USE_BUSYWAIT
-endif
-
#---------------- Programming Options --------------------------
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
diff --git a/converter/usb_usb/README b/converter/usb_usb/README
index 69caabb278..30d5deb1e5 100644
--- a/converter/usb_usb/README
+++ b/converter/usb_usb/README
@@ -7,7 +7,19 @@ Arduino Leonardo
http://arduino.cc/en/Main/ArduinoBoardLeonardo
Circuit@Home USB Host Shield 2.0
- http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino
+ https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino-assembled/
+
+Buying Arduino Leonardo and USB Host Shield 2.0(from Circuit@home) will be the easiest way, you won't need even soldering iron.
+Arduino's Shield will also work well but I think Sparkfun's needs to be modi