diff options
author | tmk <nobody@nowhere> | 2012-06-08 00:37:46 +0900 |
---|---|---|
committer | tmk <nobody@nowhere> | 2012-06-08 13:32:38 +0900 |
commit | afb08462085132acf7a1962522952f7dbf064519 (patch) | |
tree | bc60f28142bc36d882f5930191ba8da98a27c47c /hhkb | |
parent | 63d82fcaeb78d0764f39667b937262ed4a692c17 (diff) |
Made directories for keyboard and converter projects.
Diffstat (limited to 'hhkb')
26 files changed, 0 insertions, 1695 deletions
diff --git a/hhkb/Makefile.iwrap b/hhkb/Makefile.iwrap deleted file mode 100644 index d922b0f501..0000000000 --- a/hhkb/Makefile.iwrap +++ /dev/null @@ -1,93 +0,0 @@ -# -# Makefile for iWRAP -# - - -# Target file name (without extension). -TARGET = hhkb_iwrap - -# Directory common source filess exist -TOP_DIR = .. - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# keyboard dependent files -SRC = main.c \ - keymap.c \ - matrix.c \ - led.c - -CONFIG_H = config_iwrap.h - - -# V-USB debug level: To use ps2_usart.c level must be 0 -# ps2_usart.c requires USART to receive PS/2 signal. -OPT_DEFS = -DDEBUG_LEVEL=0 - - -# MCU name, you MUST set this to match the board you are using -# type "make clean" after changing this, so all files will be rebuilt -MCU = atmega168p -# avrdude doesn't know atmega168p -AVRDUDE_MCU = atmega168 - - -# Processor frequency. -# Normally the first thing your program should do is set the clock prescaler, -# so your program will run at the correct speed. You should also set this -# variable to same clock speed. The _delay_ms() macro uses this, and many -# examples use this variable to calculate timings. Do not add a "UL" here. -F_CPU = 12000000 - - -# Build Options -# comment out to disable the options. -# -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -#NKRO_ENABLE = yes # USB Nkey Rollover - - - -#---------------- Programming Options -------------------------- -AVRDUDE = avrdude -# Type: avrdude -c ? to get a full listing. -AVRDUDE_PROGRAMMER = usbasp -AVRDUDE_PORT = -AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep - -# Uncomment the following if you want avrdude's erase cycle counter. -# Note that this counter needs to be initialized first using -Yn, -# see avrdude manual. -#AVRDUDE_ERASE_COUNTER = -y - -# Uncomment the following if you do /not/ wish a verification to be -# performed after programming the device. -#AVRDUDE_NO_VERIFY = -V - -# Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> -# to submit bug reports. -#AVRDUDE_VERBOSE = -v -v - -#AVRDUDE_FLAGS = -p $(AVRDUDE_MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS = -p $(AVRDUDE_MCU) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY) -AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE) -AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER) - -PROGRAM_CMD = $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) - - - -# Search Path -VPATH = $(TARGET_DIR) - -include $(TOP_DIR)/protocol/iwrap.mk -# To be swatchable btween Bluetooth and USB. Comment out if you don't need USB. -include $(TOP_DIR)/protocol/vusb.mk -include $(TOP_DIR)/protocol.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk diff --git a/hhkb/Makefile.pjrc b/hhkb/Makefile.pjrc deleted file mode 100644 index 28b6b589dd..0000000000 --- a/hhkb/Makefile.pjrc +++ /dev/null @@ -1,60 +0,0 @@ -# -# Makefile for PJRC Teensy -# - - -# Target file name (without extension). -TARGET = hhkb_pjrc - -# Directory common source filess exist -TOP_DIR = .. - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# keyboard dependent files -SRC = main.c \ - keymap.c \ - matrix.c \ - led.c - -CONFIG_H = config_pjrc.h - - -# MCU name, you MUST set this to match the board you are using -# type "make clean" after changing this, so all files will be rebuilt -#MCU = at90usb162 # Teensy 1.0 -#MCU = atmega32u4 # Teensy 2.0 -#MCU = at90usb646 # Teensy++ 1.0 -MCU = at90usb1286 # Teensy++ 2.0 - - -# Processor frequency. -# Normally the first thing your program should do is set the clock prescaler, -# so your program will run at the correct speed. You should also set this -# variable to same clock speed. The _delay_ms() macro uses this, and many -# examples use this variable to calculate timings. Do not add a "UL" here. -F_CPU = 16000000 - - -# Build Options -# comment out to disable the options. -MOUSEKEY_ENABLE = yes # Mouse keys -#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover - - - -#---------------- Programming Options -------------------------- -PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex - - - -# Search Path -VPATH = $(TARGET_DIR) - -include $(TOP_DIR)/protocol/pjrc.mk -include $(TOP_DIR)/protocol.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk diff --git a/hhkb/Makefile.vusb b/hhkb/Makefile.vusb deleted file mode 100644 index 734b73a029..0000000000 --- a/hhkb/Makefile.vusb +++ /dev/null @@ -1,91 +0,0 @@ -# -# Makefile for V-USB -# - - -# Target file name (without extension). -TARGET = hhkb_vusb - -# Directory common source filess exist -TOP_DIR = .. - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# keyboard dependent files -SRC = main.c \ - keymap.c \ - matrix.c \ - led.c - -CONFIG_H = config_vusb.h - - -# V-USB debug level: To use ps2_usart.c level must be 0 -# ps2_usart.c requires USART to receive PS/2 signal. -OPT_DEFS = -DDEBUG_LEVEL=0 - - -# MCU name, you MUST set this to match the board you are using -# type "make clean" after changing this, so all files will be rebuilt -MCU = atmega328p -# avrdude doesn't know atmega168p -AVRDUDE_MCU = $(MCU) - - -# Processor frequency. -# Normally the first thing your program should do is set the clock prescaler, -# so your program will run at the correct speed. You should also set this -# variable to same clock speed. The _delay_ms() macro uses this, and many -# examples use this variable to calculate timings. Do not add a "UL" here. -F_CPU = 12000000 - - -# Build Options -# comment out to disable the options. -# -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -#NKRO_ENABLE = yes # USB Nkey Rollover - - - -#---------------- Programming Options -------------------------- -AVRDUDE = avrdude -# Type: avrdude -c ? to get a full listing. -AVRDUDE_PROGRAMMER = usbasp -AVRDUDE_PORT = -AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep - -# Uncomment the following if you want avrdude's erase cycle counter. -# Note that this counter needs to be initialized first using -Yn, -# see avrdude manual. -#AVRDUDE_ERASE_COUNTER = -y - -# Uncomment the following if you do /not/ wish a verification to be -# performed after programming the device. -#AVRDUDE_NO_VERIFY = -V - -# Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> -# to submit bug reports. -#AVRDUDE_VERBOSE = -v -v - -#AVRDUDE_FLAGS = -p $(AVRDUDE_MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS = -p $(AVRDUDE_MCU) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY) -AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE) -AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER) - -PROGRAM_CMD = $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) - - - -# Search Path -VPATH = $(TARGET_DIR) - -include $(TOP_DIR)/protocol/vusb.mk -include $(TOP_DIR)/protocol.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk diff --git a/hhkb/README b/hhkb/README deleted file mode 100644 index 65f7dcab5a..0000000000 --- a/hhkb/README +++ /dev/null @@ -1,151 +0,0 @@ -Alternative Controller for HHKB -=============================== - -Feature -------- -- Mouse Keys -- NKRO on USB(PJRC Tennsy only) -- Keymap Layers - - -Customize Keymap ----------------- -see keymap.c. - - - -Build -===== -PJRC Teensy ------------ -0. Edit matrix.c. - adjust scan code to your pin configuration.(see doc/HHKB.txt for pinouts) -1. Define macros in config_pjrc.h.(Optional) - VENDOR_ID, PRODUCT_ID and string descriptor. - IS_COMMAND -2. Edit Makefile for MCU setting and build options. - MCU, F_CPU - MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, NKRO_ENABLE -3. Build hex file. - $ make -f Makefile.pjrc -4. Program MCU. - $ make -f Makefile.pjrc program - - -V-USB ------ -0. Edit matrix.c and usbconfig.h. - adjust scan code to your pin configuration.(see doc/HHKB.txt for pinouts) - define macros for V-USB in usbconfig.h. -1. Define macros in config_vusb.h.(Optional) - IS_COMMAND -2. Edit Makefile.vusb for MCU setting and build options. - MCU, F_CPU - MOUSEKEY_ENABLE, EXTRAKEY_ENABLE -3. Build hex file. - $ make -f Makefile.vusb -4. Program MCU. - $ make -f Makefile.vusb program - - Using a bootloader to program for convenience is recommended. - Once program this V-USB bootloader at first, you can program MCU without - extra programmer. You should have reset switch to start up as bootloader - mode in this case. - USBaspLoader: - http://www.obdev.at/products/vusb/usbasploader.html - - -iWRAP ------ -0. Edit matrix.c and usbconfig.h. - adjust scan code to your pin configuration.(see doc/HHKB.txt for pinouts) - define macros for V-USB in usbconfig.h. -1. Define macros in config_iwrap.h.(Optional) - IS_COMMAND -2. Edit Makefile.iwrap for MCU setting and build options. - MCU, F_CPU - MOUSEKEY_ENABLE, EXTRAKEY_ENABLE -3. Build hex file. - $ make -f Makefile.iwrap -4. Program MCU. - $ make -f Makefile.iwrap program - - - -Hardware -======== -PJRC Teensy ------------ - +---------------+ - | Teensy++ | - | | - | | HHKB - | | ~~~~ - | PB0-2|------->ROW(6-8) - | PB3-5|------->COL(9-11) - | PB6|------->ENABLE(12) - | PE6|<-------KEY(4) - | PE7|------->PREV(5) - | | - | | - | | - +---------------+ - - -V-USB ------ - +---+ +---------------+ -USB GND | | ATmega168 | -~~~ C3 | | -5V <-------+--------+---|Vcc,AVCC | HHKB - R1 | | ~~~~ -D- <----+--+-----R2-----|INT1 PB2-4|------->ROW(6-8) -D+ <----|---+----R3-----|INT0 PC0-2|------->COL(9-11) - Z1 Z2 | PC3|------->ENABLE(12) -GND<----+---+-----------|GND PB0|<-------KEY(4) - | PB1|------->PREV(5) - | | - GND+-C2--+--|XTAL1 RXD|------->Debug Console - X1 | TXD|<-------Debug Console - GND+-C3--+--|XTAL2 RST|---SW--+GND - +---------------+ -R1: 1.5K Ohm -R2,R3: 68 Ohm -Z1,Z2: Zener 3.6V -C1,C2: 22pF -C3: 0.1uF -X1: Crystal 20MHz(16MHz/12MHz) -SW: Push Switch(Optional for bootloader) - - -iWRAP ------ - +---------------+ WT12 - 5V | ATmega168 | 5V/3.3V~~~~ - +-----+---|Vcc,AVCC PC4|---/--->iWRAP(RxD) -USB | C3 | PC5|<--/----iWRAP(TxD) -~~~ | + | | -5V <--BATT + GND | | HHKB - R1 | | ~~~~ -D- <----+-----+--R2-----|INT1 PB2-4|------->ROW(6-8) -D+ <----|---+----R3-----|INT0 PC0-2|------->COL(9-11) - Z1 Z2 | PC3|------->ENABLE(12) -GND<----+---+-----------|GND PB0|<-------KEY(4) - | PB1|------->PREV(5) - | | - GND+-C2--+--|XTAL1 RXD|------->Debug Console - X1 | TXD|<-------Debug Console - GND+-C3--+--|XTAL2 RST|---SW--+GND - +---------------+ - -R1: 1.5K Ohm -R2,R3: 68 Ohm -Z1,Z2: Zener 3.6V -C1,C2: 22pF -C3: 0.1uF -X1: Crystal 12MHz -SW: Push Switch(Optional) -BATT: Li-Po Battery, Battery Charger and Voltage Regulator(5V and 3.3V). - - -EOF diff --git a/hhkb/config_iwrap.h b/hhkb/config_iwrap.h deleted file mode 100644 index 80ab64398b..0000000000 --- a/hhkb/config_iwrap.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -Copyright 2011 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xBEEA -// TODO: share these strings with usbconfig.h -// Edit usbconfig.h to change these. -#define MANUFACTURER t.m.k. -#define PRODUCT HHKB mod -#define DESCRIPTION t.m.k. keyboard firmware for HHKB mod - - -/* matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 8 - - -/* key combination for command */ -#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT))) - -/* mouse keys */ -#ifdef MOUSEKEY_ENABLE -# define MOUSEKEY_DELAY_TIME 255 -#endif - -/* pins for Software UART */ -#define SUART_IN_PIN PINC -#define SUART_IN_BIT 5 -#define SUART_OUT_PORT PORTC -#define SUART_OUT_BIT 4 - - -#define DEBUG_LED 1 -#define DEBUG_LED_CONFIG (DDRD |= (1<<4)) -#define DEBUG_LED_OFF (PORTD |= (1<<4)) -#define DEBUG_LED_ON (PORTD &= ~(1<<4)) - -#endif diff --git a/hhkb/config_pjrc.h b/hhkb/config_pjrc.h deleted file mode 100644 index fffe3522c7..0000000000 --- a/hhkb/config_pjrc.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright 2011 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -/* controller configuration */ -#include "controller_teensy.h" - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCAFE -#define DEVICE_VER 0x0101 -#define MANUFACTURER t.m.k. -#define PRODUCT HHKB mod -#define DESCRIPTION t.m.k. keyboard firmware for HHKB mod - - -/* matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 8 -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - - -/* key combination for command */ -#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT))) - -/* mouse keys */ -#ifdef MOUSEKEY_ENABLE -# define MOUSEKEY_DELAY_TIME 192 -#endif - - -/* PS/2 mouse */ -#ifdef PS2_MOUSE_ENABLE -/* -# define PS2_CLOCK_PORT PORTF -# define PS2_CLOCK_PIN PINF -# define PS2_CLOCK_DDR DDRF -# define PS2_CLOCK_BIT 0 -# define PS2_DATA_PORT PORTF -# define PS2_DATA_PIN PINF -# define PS2_DATA_DDR DDRF -# define PS2_DATA_BIT 1 -*/ -#endif - -#endif diff --git a/hhkb/config_vusb.h b/hhkb/config_vusb.h deleted file mode 100644 index 268644849e..0000000000 --- a/hhkb/config_vusb.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright 2011 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xC0FE -// TODO: share these strings with usbconfig.h -// Edit usbconfig.h to change these. -#define MANUFACTURER t.m.k. -#define PRODUCT HHKB mod -#define DESCRIPTION t.m.k. keyboard firmware for HHKB mod - - -/* matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 8 - - -/* key combination for command */ -#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT))) - -/* mouse keys */ -#ifdef MOUSEKEY_ENABLE -# define MOUSEKEY_DELAY_TIME 255 -#endif - - -#define DEBUG_LED 1 -#define DEBUG_LED_CONFIG (DDRD |= (1<<4)) -#define DEBUG_LED_OFF (PORTD |= (1<<4)) -#define DEBUG_LED_ON (PORTD &= ~(1<<4)) - -#endif diff --git a/hhkb/doc/Bluetooth.txt b/hhkb/doc/Bluetooth.txt deleted file mode 100644 index b27f197006..0000000000 --- a/hhkb/doc/Bluetooth.txt +++ /dev/null @@ -1,4 +0,0 @@ -HHKB Bluetooth mod -================== -See this article: -http://geekhack.org/showwiki.php?title=Island:20851 diff --git a/hhkb/doc/Bluetooth_img/.picasa.ini b/hhkb/doc/Bluetooth_img/.picasa.ini deleted file mode 100755 index f6a4f60674..0000000000 --- a/hhkb/doc/Bluetooth_img/.picasa.ini +++ /dev/null @@ -1,2 +0,0 @@ -[Picasa]
-name=Bluetooth_img
diff --git a/hhkb/doc/Bluetooth_img/BT_circuit.jpg b/hhkb/doc/Bluetooth_img/BT_circuit.jpg Binary files differdeleted file mode 100644 index 2e5a25e81e..0000000000 --- a/hhkb/doc/Bluetooth_img/BT_circuit.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB.txt b/hhkb/doc/HHKB.txt deleted file mode 100644 index ace931de38..0000000000 --- a/hhkb/doc/HHKB.txt +++ /dev/null @@ -1,199 +0,0 @@ -Alternative Controller for HHKB pro -=================================== -I want to add vi cursor and mouse keys to HHKB. Original HHKB controller is not programmable and -firmware source code is not open. So, customizing HHKB needs to replace original controller with programmable one. -I used Teensy++ as alternative controller. Though a Teensy has enough ports to drive HHKB, -Teensy++ has clean pinout and it makes programing and wiring easier. - -This is just a proof of concept for replacing controller of HHKB, not a complete firmware. - -My prototype firmware source tree is here: - github(http://github.com/tmk/tmk_keyboard) -This firmware is a port of my previous project: - HHKB style Mod(http://geekhack.org/showwiki.php?title=Island:11930) -PJRC: - Teensy++/Teensy(http://www.pjrc.com/teensy/) - - -Pros: - * without pattern cutting, case mod and soldering - * can keep original controller intact - * can change HHKB behaviour as you like(by C programming) - -Cons: - * void your warranty - * unavailability of Teensy++/Teensy(because of PS3 cracking boom?) - -Features: - * customized keymap - * more keymap layers - * mouse keys for minimum mouse operation(never comfortable for normal use) - * and more...(in the future) - -Any suggestions or ideas are welcome. - - -NOTE: - My HHKB is just "Professional". This means followings may not be applied to "Professional2". - -DISCLAIMER: - I'm not a professional for electronics and MCU programming. This may damage your HHKB. - And my English writing is poor, I'm not sure I can convey my notions accurately. - - -Teensy++ installation ---------------------- -Angled USB mini B adapter is used to install Teensy++ laterally. -(teensy_install.jpg) - -Bread baord wires are used to connect Teensy++. -(teensy_wiring.jpg) -(connector_contact.jpg) - - -HHKB internal -------------- -HHKB pro has some chips on separate two PCBs. - -Controller PCB: - M38K07M4 Renesas MCU with USB function - http://documentation.renesas.com/eng/products/mpumcu/rej03b0192_38k0ds.pdf - - (HHKB_controller.jpg) - -Keyswitch PCB: - HC4051 Analog Multiplexer: select a row line. - http://www.alldatasheet.com/datasheet-pdf/pdf/203989/KODENSHI/KK74HC4051A.html - LS145 BCD Decoder: select a column line. - http://www.alldatasheet.com/datasheet-pdf/pdf/27373/TI/SN74LS145D.html - BU9831 Non-volatile electronic potentiometer: for calibration? - http://www.alldatasheet.com/datasheet-pdf/pdf/36387/ROHM/BU9831.html - TP1683/4 Capacitive Sensing controller: no datasheet available. - - (HHKB_keyswitch.jpg) - - Topre original chip? - (HHKB_TP1684.jpg) - - -Two PCBs are connected by 15 lines. Vcc and GND use 3 lines each, other 9 lines are for keyboard signaling. - - Keyswitch PCB connector Teensy++ pins - ------------------------------------------------------------------------------- - 1 Vcc(5V) 5V - 2 Vcc(5V) - 3 Vcc(5V) - 4 TP1684 KEY: Low(0) when key pressed PE6 input(with pullup) - 5 TP1684 KEY_PREV: assert previous key state??? PE7 output - 6 HC4051 A(bit0) select 8 rows(0 to 7) PB0 output - 7 HC4051 B(bit1) PB1 output - 8 HC4051 C(bit2) PB2 output - 9 LS145 A(bit0) select 8 columns(0 to 7) PB3 output - 10 LS145 B(bit1) PB4 output - 11 LS145 C(bit2) PB5 output - 12 LS145 D(enable) Low(0) enable selected column PB6 output - 13 GND - 14 GND - 15 GND GND - - (HHKB_connector.jpg) - - -Keyswitch matrix ----------------- -60 keyswitches in 8*8 matrix. It is ghost-free and bounce-free. - - COL 0 1 2 3 4 5 6 7 -ROW --------------------------------------------------------------- - 0| 2 q w s a z x c - 1| 3 4 r e d f v b - 2| 5 6 y t g h n _NONE_ - 3| 1 Esc Tab Control LShift LAlt LMeta Space - 4| 7 8 u i k j m _NONE_ - 5| \ ` Delete Return Fn RShift RAlt RMeta - 6| 9 0 o p ; l , _NONE_ - 7| - + ] [ ' / . _NONE_ - - -Matrix diagram: - +-------------------------+-+-+-+-+-+-+-+ Vcc - |bias control? - - - - - - - - --- - | 3.9K*8 R R R R R R R R | - +--------^+ +--------+ - - - - - - - - | - | 2| | HC4051 <0-------|-|-|-|-|-|-|-|--|R|-+ - | |capa. | <1-------|-|-|-|-|-|-|-|--|R|-+ - | TP1684 |sense | <2-------|-|-|-|-|-|-|-|--|R|-+ - | 11<------| <3-------|-|-|-|-|-|-|-|--|R|-+ - | | | <4-------|-|-|-|-|-|-|-|--|R|-+ - | | | <5-------|-|-|-|-|-|-|-|--|R|-+ - | <-+ | <6-------|-|-|-|-|-|-|-|--|R|-+ - | 1 4 | | | <7-------|-|-|-|-|-|-|-|--|R|-+ - +---V---^-+ | +-^-^-^--+ 0 1 2 3 4 5 6 7 33K*8 - KEY PREV | A B C +-----------------+ - | | +-^----+ | | | | LS145 | - Vcc | | |BU9831| | | | +-^--^--^--^------+ - --- | | +------+ | | | A B C D +------+ - | | | | | | | | | | | | - 1-3 4 5 6 7 8 9 10 11 12 13-15 | - +--------------------------------------------------+ | - | connector | --- - +--------------------------------------------------+ GND - to controller - - -Signals charts: - While pressing space bar, watched HHKB original controller signals by logic analyzer. - Row and column is looping between 0-7 each for selecting a key. - A key is scaned every about 15ms, so scan rate is 66Hz. - - (HHKB_chart1.jpg) - - Space bar locate at ROW:3 COL:7. A key is selected by HC4051(C,B,A) and LS145(C,B,A). - Key state can be read on TP1684(4/KEY) while asserting low on LS145(D). - - Usage of TP1684(5) is not clear. Controller seemed to output previous key state on this line. - However key state can be read without using this signal. - - (HHKB_chart2.jpg) - - -Matrix scan pseudo code: - for (row: 0-7) { - SELECT_ROW(row); // set HC4051(A,B,C) - - for (col: 0-7) { - SELECT_COL(col); // set LS145(A,B,C) - - _delay_us(40); - - if (prev_key_state(row, col)) { - KEY_PREV_ON; - } - - _delay_us(7); - - ENALBLE_COL(); // set LS145(D) to low - - _delay_us(10); - - if (KEY == 0) { // read TP1684(KEY) - // key pressed - } else { - // not pressed - } - - KEY_PREV_OFF; - UNALBLE_COL(); // set LS145(D) to high - - _delay_us(150); - } - } - - -Keymap layers -------------- -Followings are added layers with additional Fn keys. - -see keymap.c - -EOF diff --git a/hhkb/doc/HHKB_img/HHKB_TP1684.jpg b/hhkb/doc/HHKB_img/HHKB_TP1684.jpg Binary files differdeleted file mode 100644 index 0a03164094..0000000000 --- a/hhkb/doc/HHKB_img/HHKB_TP1684.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/HHKB_chart1.jpg b/hhkb/doc/HHKB_img/HHKB_chart1.jpg Binary files differdeleted file mode 100644 index 1f09bd185c..0000000000 --- a/hhkb/doc/HHKB_img/HHKB_chart1.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/HHKB_chart2.jpg b/hhkb/doc/HHKB_img/HHKB_chart2.jpg Binary files differdeleted file mode 100644 index 45f5ada905..0000000000 --- a/hhkb/doc/HHKB_img/HHKB_chart2.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/HHKB_connector.jpg b/hhkb/doc/HHKB_img/HHKB_connector.jpg Binary files differdeleted file mode 100644 index e8a09e9b28..0000000000 --- a/hhkb/doc/HHKB_img/HHKB_connector.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/HHKB_controller.jpg b/hhkb/doc/HHKB_img/HHKB_controller.jpg Binary files differdeleted file mode 100644 index e3dae8e86c..0000000000 --- a/hhkb/doc/HHKB_img/HHKB_controller.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/HHKB_keyswitch.jpg b/hhkb/doc/HHKB_img/HHKB_keyswitch.jpg Binary files differdeleted file mode 100644 index 3afc269e7b..0000000000 --- a/hhkb/doc/HHKB_img/HHKB_keyswitch.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/connector_contact.jpg b/hhkb/doc/HHKB_img/connector_contact.jpg Binary files differdeleted file mode 100644 index 5304bc8d7e..0000000000 --- a/hhkb/doc/HHKB_img/connector_contact.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/logic_analyzer.jpg b/hhkb/doc/HHKB_img/logic_analyzer.jpg Binary files differdeleted file mode 100644 index f1b438ae77..0000000000 --- a/hhkb/doc/HHKB_img/logic_analyzer.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/probe_contact.jpg b/hhkb/doc/HHKB_img/probe_contact.jpg Binary files differdeleted file mode 100644 index dc79afa0cc..0000000000 --- a/hhkb/doc/HHKB_img/probe_contact.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/teensy_install.jpg b/hhkb/doc/HHKB_img/teensy_install.jpg Binary files differdeleted file mode 100644 index 873d988edb..0000000000 --- a/hhkb/doc/HHKB_img/teensy_install.jpg +++ /dev/null diff --git a/hhkb/doc/HHKB_img/teensy_wiring.jpg b/hhkb/doc/HHKB_img/teensy_wiring.jpg Binary files differdeleted file mode 100644 index 1c4eb67434..0000000000 --- a/hhkb/doc/HHKB_img/teensy_wiring.jpg +++ /dev/null diff --git a/hhkb/keymap.c b/hhkb/keymap.c deleted file mode 100644 index 85a7c31b7e..0000000000 --- a/hhkb/keymap.c +++ /dev/null @@ -1,221 +0,0 @@ -/* -Copyright 2011 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -/* - * Keymap for PFU HHKB Pro - */ -#include <stdint.h> -#include <stdbool.h> -#include <avr/pgmspace.h> -#include "host.h" -#include "usb_keycodes.h" -#include "print.h" -#include "debug.h" -#include "util.h" -#include "keymap.h" - - -// Convert physical keyboard layout to matrix array. -// This is a macro to define keymap easily in keyboard layout form. -#define KEYMAP( \ - K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \ - K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \ |