summaryrefslogtreecommitdiffstats
path: root/keyboard
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard')
-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
62 files changed, 3688 insertions, 1735 deletions
diff --git a/keyboard/hhkb/Makefile b/keyboard/hhkb/Makefile
index 5cf02d194e..dc5c06a948 100644
--- a/keyboard/hhkb/Makefile
+++ b/keyboard/hhkb/Makefile
@@ -121,11 +121,6 @@ NKRO_ENABLE = yes # USB Nkey Rollover
#HHKB_JP = yes # HHKB JP support
-ifdef HHKB_JP
- OPT_DEFS += -DHHKB_JP
-endif
-
-
#
# Keymap file
#
@@ -140,6 +135,11 @@ else
endif
+ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP))))
+ OPT_DEFS += -DHHKB_JP
+endif
+
+
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
diff --git a/keyboard/hhkb/Makefile.jp b/keyboard/hhkb/Makefile.jp
new file mode 100644
index 0000000000..e04dbb2424
--- /dev/null
+++ b/keyboard/hhkb/Makefile.jp
@@ -0,0 +1,2 @@
+HHKB_JP = yes
+include Makefile
diff --git a/keyboard/hhkb_rn42/Makefile b/keyboard/hhkb/Makefile.rn42
index 3d9a602a58..b1eacd070f 100644
--- a/keyboard/hhkb_rn42/Makefile
+++ b/keyboard/hhkb/Makefile.rn42
@@ -39,7 +39,7 @@
#----------------------------------------------------------------------------
# Target file name (without extension).
-TARGET = hhkb_lufa
+TARGET = hhkb_rn42
# Directory common source filess exist
TOP_DIR = ../..
@@ -53,13 +53,10 @@ SRC += keymap_common.c \
matrix.c \
led.c
-CONFIG_H = config.h
+CONFIG_H = config_rn42.h
# MCU name
-# PJRC Teensy++ 2.0
-#MCU = at90usb1286
-# TMK Alt Controller or PJRC Teensy 2.0
MCU = atmega32u4
# Processor frequency.
@@ -121,11 +118,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
#HHKB_JP = yes # HHKB JP support
-ifdef HHKB_JP
- OPT_DEFS += -DHHKB_JP
-endif
-
-
#
# Keymap file
#
@@ -134,12 +126,17 @@ ifdef KEYMAP
else
ifdef HHKB_JP
SRC := keymap_jp.c $(SRC)
- else
- SRC := keymap_hasu.c $(SRC)
+ else
+ SRC := keymap_hhkb.c $(SRC)
endif
endif
+ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP))))
+ OPT_DEFS += -DHHKB_JP
+endif
+
+
# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
@@ -154,4 +151,5 @@ debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION
debug-on: all
debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT
+debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS))
debug-off: all
diff --git a/keyboard/hhkb/README.md b/keyboard/hhkb/README.md
index d4a2cd0223..fcd72e1941 100644
--- a/keyboard/hhkb/README.md
+++ b/keyboard/hhkb/README.md
@@ -10,11 +10,17 @@ See [this thread][AltController] in geekhack.org.
[AltController]: http://geekhack.org/index.php?topic=12047.0
+## Update
+* Bluetooth module RN-42 is supported.(2015/01)
+* V-USB and iWRAP are no longer supported now, but still it'll works with a little fix. See not_supported directory.(2015/01)
+
+
##Features
* Customizable keymap
* More keymap layers(more Fn keys)
* Mouse keys
* USB NKRO
+* Bluetooth(RN-42)
See README of [tmk_keyboard] for more.
@@ -43,12 +49,16 @@ See [doc/HHKB.txt](doc/HHKB.txt) and files under [doc/](doc/) for internal of HH
See [this document](../../doc/build.md) first.
### Configuration
-Set `MCU`, `BOOTLOADER_SIZE` and other build options in `Makefile` and `config.h`. If your target is **HHKB JP** you need to set `HHKB_JP` build option in `Makefile`.
+If your target is **HHKB JP** you need to set `HHKB_JP` build option in `Makefile` or use `Makefile.jp` instead of `Makefile`.
+
+If you use other than **TMK Alt Controller Board** set proper `MCU`, `BOOTLOADER_SIZE` and other build options in `Makefile` and `config.h`. At least PJRC Teensy requires changing `BOOTLOADER_SIZE` to 512.
### Build
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. Just `make` with `KEYMAP` option like:
- $ make KEYMAP=[hasu|hhkb|spacefn|<name>]
+ $ make -f Makefile.<jp|pjrc|rn42> KEYMAP=(hasu|hhkb|spacefn|<name>)
+
+You can omit `-f` option when you use `Makefile`. `Makefile` is used for **Pro2 and Pro**, `Makefile.jp` fits for **JP** model and `Makefile.rn42` supports Bluetooth module **RN-42**. `Makefile.pjrc` uses **PJRC** as output protocol instead of **LUFA**.
### Program
@@ -56,11 +66,11 @@ First, push reset button on board to start bootloader.
This command programs the controller with [dfu-programmer] if the tool is installed and configured properly.
- $ make dfu
+ $ make -f Makefile.<variant> KEYMAP=<name> dfu
Or you can also use [FLIP] command to program. Also the tool should be installed and configured properly. FLIP GUI application is also available.
- $ make flip
+ $ make -f Makefile.<variant> KEYMAP=<name> flip
Use [Teensy Loader] if your controller is Teensy/Teensy++.
diff --git a/keyboard/hhkb_rn42/config.h b/keyboard/hhkb/config_rn42.h
index 21e73f1c53..21e73f1c53 100644
--- a/keyboard/hhkb_rn42/config.h
+++ b/keyboard/hhkb/config_rn42.h
diff --git a/keyboard/hhkb/hhkb_avr.h b/keyboard/hhkb/hhkb_avr.h
index b7bd507b5d..7ea6322c73 100644
--- a/keyboard/hhkb/hhkb_avr.h
+++ b/keyboard/hhkb/hhkb_avr.h
@@ -41,17 +41,32 @@ static inline void KEY_UNABLE(void) { (PORTB |= (1<<6)); }
static inline bool KEY_STATE(void) { return (PIND & (1<<7)); }
static inline void KEY_PREV_ON(void) { (PORTB |= (1<<7)); }
static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); }
+#ifdef HHKB_POWER_SAVING
+static inline void KEY_POWER_ON(void) {
+ DDRB = 0xFF; PORTB = 0x40; // change pins output
+ DDRD |= (1<<4); PORTD |= (1<<4); // MOS FET switch on
+ /* Without this wait you will miss or get false key events. */
+ _delay_ms(5); // wait for powering up
+}
+static inline void KEY_POWER_OFF(void) {
+ /* input with pull-up consumes less than without it when pin is open. */
+ DDRB = 0x00; PORTB = 0xFF; // change pins input with pull-up
+ DDRD |= (1<<4); PORTD &= ~(1<<4); // MOS FET switch off
+}
+static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); }
+#else
static inline void KEY_POWER_ON(void) {}
static inline void KEY_POWER_OFF(void) {}
+static inline bool KEY_POWER_STATE(void) { return true; }
+#endif
static inline void KEY_INIT(void)
{
+ /* row,col,prev: output */
DDRB = 0xFF;
- PORTB = 0x00;
+ PORTB = 0x40; // unable
+ /* key: input with pull-up */
DDRD &= ~0x80;
- PORTD |= 0x80;
- /* keyswitch board power on */
- DDRD |= (1<<4);
- PORTD |= (1<<4);
+ PORTD |= 0x80;
#ifdef HHKB_JP
/* row extention for HHKB JP */
DDRC |= (1<<6|1<<7);
@@ -59,6 +74,8 @@ static inline void KEY_INIT(void)
#endif
KEY_UNABLE();
KEY_PREV_OFF();
+
+ KEY_POWER_OFF();
}
static inline void KEY_SELECT(uint8_t ROW, uint8_t COL)
{
@@ -98,6 +115,7 @@ static inline void KEY_SELECT(uint8_t ROW, uint8_t COL)
#define KEY_PREV_OFF() (PORTE &= ~(1<<7))
#define KEY_POWER_ON()
#define KEY_POWER_OFF()
+#define KEY_POWER_STATE() true
#else
diff --git a/keyboard/hhkb/keymap_hasu.c b/keyboard/hhkb/keymap_hasu.c
index 8379c84f52..433f9cb270 100644
--- a/keyboard/hhkb/keymap_hasu.c
+++ b/keyboard/hhkb/keymap_hasu.c
@@ -27,7 +27,7 @@ const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \
LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN6, \
FN7, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,FN1, \
- LGUI,LALT, FN4, FN5, FN5),
+ LGUI,LALT, FN4, FN5, RGUI),
/* Layer 1: HHKB mode[HHKB Fn]
* ,-----------------------------------------------------------.
@@ -47,7 +47,7 @@ const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \
LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \
LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \
- LGUI,LALT, SPC, RALT,RGUI),
+ LGUI,LALT, TRNS, RALT,RGUI),
/* Layer 2: Vi mode[Slash]
* ,-----------------------------------------------------------.
@@ -66,7 +66,7 @@ const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \
LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \
- LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, TRNS,RSFT,NO, \
+ LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT,TRNS, \
LGUI,LALT, SPC, RALT,RGUI),
/* Layer 3: Mouse mode(IJKL)[Semicolon]
@@ -81,16 +81,16 @@ const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
* `-----------------------------------------------------------'
* |Gui |Alt | Mb1 |Fn |Fn |
* `--------------------------------------------'
- * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel8
+ * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
*/
[3] = \
KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
- FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,WBAK,WFWD,FN8, \
- LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,TRNS,NO, ENT, \
- LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT,NO, \
+ FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,FN8, \
+ LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,FN3, NO, ENT, \
+ LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \
LGUI,LALT, BTN1, TRNS,TRNS),
- /* Layer 5: Mouse mode(IJKL)[Space]
+ /* Layer 4: Mouse mode(IJKL)[Space]
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
* |-----------------------------------------------------------|
@@ -102,13 +102,13 @@ const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
* `-----------------------------------------------------------'
* |Gui |Alt | Mb1 |Fn |Fn |
* `--------------------------------------------'
- * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel8
+ * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
*/
[4] = \
KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
- FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,WBAK,WFWD,FN8, \
+ FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,FN8, \
LCTL,VOLD,VOLU,MUTE,NO, NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, \
- LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT,NO, \
+ LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \
LGUI,LALT, TRNS, TRNS,TRNS),
#if 0
@@ -127,9 +127,9 @@ const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
* Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
*/
KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
- TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC, \
+ TAB, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, NO, NO, BSPC, \
LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,TRNS,QUOT,ENT, \
- LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,SLSH,RSFT,NO, \
+ LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,SLSH,RSFT,NO, \
LGUI,LALT, BTN1, RALT,TRNS),
/* Layer4: Mouse mode(HJKL)[Space]
@@ -147,9 +147,9 @@ const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
* Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
*/
KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
- FN8, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, WBAK,WFWD,FN8, \
+ FN8, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, FN9, FN10,FN8, \
LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,BTN1,NO, ENT, \
- LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT,NO, \
+ LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,NO, \
LGUI,LALT, TRNS, RALT,RGUI),
#endif
#if 0
@@ -201,10 +201,12 @@ const uint16_t fn_actions[] PROGMEM = {
[2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash*
[3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon*
[4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space
- [5] = ACTION_LAYER_MOMENTARY(3), // Mousekey layer
+ [5] = ACTION_LAYER_MOMENTARY(4), // Mousekey layer(IJKL)
[6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter
[7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift
[8] = ACTION_MACRO(ALT_TAB), // Application switching
+ [9] = ACTION_MODS_KEY(MOD_LALT, KC_LEFT),
+ [10] = ACTION_MODS_KEY(MOD_LALT, KC_RIGHT),
// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // LControl with tap Backspace
// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // LControl with tap Esc
diff --git a/keyboard/hhkb/matrix.c b/keyboard/hhkb/matrix.c
index b0af4baa52..fb96997944 100644
--- a/keyboard/hhkb/matrix.c
+++ b/keyboard/hhkb/matrix.c
@@ -27,8 +27,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "timer.h"
#include "matrix.h"
#include "hhkb_avr.h"
+#include <avr/wdt.h>
+#include "suspend.h"
+#include "lufa.h"
+// matrix power saving
+#define MATRIX_POWER_SAVE 10000
+static uint32_t matrix_last_modified = 0;
+
// matrix state buffer(1:on, 0:off)
static matrix_row_t *matrix;
static matrix_row_t *matrix_prev;
@@ -72,7 +79,8 @@ uint8_t matrix_scan(void)
matrix_prev = matrix;
matrix = tmp;
- KEY_POWER_ON();
+ // power on
+ if (!KEY_POWER_STATE()) KEY_POWER_ON();
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
KEY_SELECT(row, col);
@@ -126,8 +134,16 @@ uint8_t matrix_scan(void)
// This takes 25us or more to make sure KEY_STATE returns to idle state.
_delay_us(75);
}
+ if (matrix[row] ^ matrix_prev[row]) matrix_last_modified = timer_read32();
+ }
+ // power off
+ if (KEY_POWER_STATE() &&
+ (USB_DeviceState == DEVICE_STATE_Suspended ||
+ USB_DeviceState == DEVICE_STATE_Unattached ) &&
+ timer_elapsed32(matrix_last_modified) > MATRIX_POWER_SAVE) {
+ KEY_POWER_OFF();
+ suspend_power_down();
}
- KEY_POWER_OFF();
return 1;
}
@@ -165,3 +181,10 @@ void matrix_print(void)
xprintf("%02X: %08b\n", row, bitrev(matrix_get_row(row)));
}
}
+
+void matrix_power_up(void) {
+ KEY_POWER_ON();
+}
+void matrix_power_down(void) {
+ KEY_POWER_OFF();
+}
diff --git a/keyboard/hhkb/Makefile.iwrap b/keyboard/hhkb/not_supported/Makefile.iwrap
index 2d9d82c481..2d9d82c481 100644
--- a/keyboard/hhkb/Makefile.iwrap
+++ b/keyboard/hhkb/not_supported/Makefile.iwrap
diff --git a/keyboard/hhkb/Makefile.vusb b/keyboard/hhkb/not_supported/Makefile.vusb
index 4343b210d9..4343b210d9 100644
--- a/keyboard/hhkb/Makefile.vusb
+++ b/keyboard/hhkb/not_supported/Makefile.vusb
diff --git a/keyboard/hhkb/config_iwrap.h b/keyboard/hhkb/not_supported/config_iwrap.h
index 747c755132..747c755132 100644
--- a/keyboard/hhkb/config_iwrap.h
+++ b/keyboard/hhkb/not_supported/config_iwrap.h
diff --git a/keyboard/hhkb/config_vusb.h b/keyboard/hhkb/not_supported/config_vusb.h
index 44f7acd6cd..44f7acd6cd 100644
--- a/keyboard/hhkb/config_vusb.h
+++ b/keyboard/hhkb/not_supported/config_vusb.h
diff --git a/keyboard/hhkb/iwrap.txt b/keyboard/hhkb/not_supported/iwrap.txt
index 20a2420a0b..20a2420a0b 100644
--- a/keyboard/hhkb/iwrap.txt
+++ b/keyboard/hhkb/not_supported/iwrap.txt
diff --git a/keyboard/hhkb/usbconfig.h b/keyboard/hhkb/not_supported/usbconfig.h
index c3aad34bef..c3aad34bef 100644
--- a/keyboard/hhkb/usbconfig.h
+++ b/keyboard/hhkb/not_supported/usbconfig.h
diff --git a/keyboard/hhkb_rn42/rn42.mk b/keyboard/hhkb/rn42.mk
index fd6f7db1a8..fd6f7db1a8 100644
--- a/keyboard/hhkb_rn42/rn42.mk
+++ b/keyboard/hhkb/rn42.mk
diff --git a/keyboard/hhkb/rn42/MEMO.txt b/keyboard/hhkb/rn42/MEMO.txt
new file mode 100644
index 0000000000..0363c2f433
--- /dev/null
+++ b/keyboard/hhkb/rn42/MEMO.txt
@@ -0,0 +1,255 @@
+Memo of deveopment
+==================
+just memo, NOT WORTH READING
+
+Bug:
+- Factory Reset PIO4 doesn't work
+ - the reason is unclear - 12/08 NOT LOOK INTO ANY MORE
+ - WORKAROUND: use serial pins(3.3V, GND, RX and TX)
+ - SF,1 and R,1 to set factory defalult
+