From af85b6bba6744573f1edecd26fb504c31094414f Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 25 May 2011 10:37:58 +0900 Subject: added HHKB/README and clean some codes. --- hhkb/Makefile | 11 ++++-- hhkb/Makefile.vusb | 11 +++--- hhkb/README | 80 +++++++++++++++++++++++++++++++++++++ hhkb/config.h | 48 ---------------------- hhkb/config_pjrc.h | 48 ++++++++++++++++++++++ hhkb/config_vusb.h | 88 ----------------------------------------- hhkb/doc/HHKB_TP1684.jpg | Bin hhkb/doc/HHKB_chart1.jpg | Bin hhkb/doc/HHKB_chart2.jpg | Bin hhkb/doc/HHKB_connector.jpg | Bin hhkb/doc/HHKB_controller.jpg | Bin hhkb/doc/HHKB_keyswitch.jpg | Bin hhkb/doc/connector_contact.jpg | Bin hhkb/doc/logic_analyzer.jpg | Bin hhkb/doc/probe_contact.jpg | Bin hhkb/doc/teensy_install.jpg | Bin hhkb/doc/teensy_wiring.jpg | Bin 17 files changed, 142 insertions(+), 144 deletions(-) mode change 100755 => 100644 hhkb/Makefile create mode 100644 hhkb/README delete mode 100644 hhkb/config.h create mode 100644 hhkb/config_pjrc.h mode change 100755 => 100644 hhkb/doc/HHKB_TP1684.jpg mode change 100755 => 100644 hhkb/doc/HHKB_chart1.jpg mode change 100755 => 100644 hhkb/doc/HHKB_chart2.jpg mode change 100755 => 100644 hhkb/doc/HHKB_connector.jpg mode change 100755 => 100644 hhkb/doc/HHKB_controller.jpg mode change 100755 => 100644 hhkb/doc/HHKB_keyswitch.jpg mode change 100755 => 100644 hhkb/doc/connector_contact.jpg mode change 100755 => 100644 hhkb/doc/logic_analyzer.jpg mode change 100755 => 100644 hhkb/doc/probe_contact.jpg mode change 100755 => 100644 hhkb/doc/teensy_install.jpg mode change 100755 => 100644 hhkb/doc/teensy_wiring.jpg (limited to 'hhkb') diff --git a/hhkb/Makefile b/hhkb/Makefile old mode 100755 new mode 100644 index 4a0af1cdc..e1cc2f210 --- a/hhkb/Makefile +++ b/hhkb/Makefile @@ -1,5 +1,10 @@ +# +# Makefile for PJRC Teensy +# + + # Target file name (without extension). -TARGET = hhkb +TARGET = hhkb_pjrc # Directory common source filess exist COMMON_DIR = .. @@ -13,7 +18,7 @@ TARGET_SRC = main_pjrc.c \ matrix.c \ led.c -CONFIG_H = config.h +CONFIG_H = config_pjrc.h # MCU name, you MUST set this to match the board you are using @@ -36,7 +41,7 @@ F_CPU = 16000000 # comment out to disable the options. MOUSEKEY_ENABLE = yes # Mouse keys #PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support -USB_EXTRA_ENABLE = yes # Enhanced feature for Windows(Audio control and System control) +USB_EXTRA_ENABLE = yes # Audio control and System control USB_NKRO_ENABLE = yes # USB Nkey Rollover diff --git a/hhkb/Makefile.vusb b/hhkb/Makefile.vusb index 7826ffd02..77841b824 100644 --- a/hhkb/Makefile.vusb +++ b/hhkb/Makefile.vusb @@ -1,3 +1,8 @@ +# +# Makefile for V-USB +# + + # Target file name (without extension). TARGET = hhkb_vusb @@ -23,10 +28,6 @@ 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 = at90usb162 # Teensy 1.0 -#MCU = atmega32u4 # Teensy 2.0 -#MCU = at90usb646 # Teensy++ 1.0 -#MCU = at90usb1286 # Teensy++ 2.0 MCU = atmega168 @@ -42,7 +43,7 @@ F_CPU = 20000000 # comment out to disable the options. # MOUSEKEY_ENABLE = yes # Mouse keys -USB_EXTRA_ENABLE = yes # Enhanced feature for Windows(Audio control and System control) +USB_EXTRA_ENABLE = yes # Audio control and System control #USB_NKRO_ENABLE = yes # USB Nkey Rollover diff --git a/hhkb/README b/hhkb/README new file mode 100644 index 000000000..2a4418101 --- /dev/null +++ b/hhkb/README @@ -0,0 +1,80 @@ +Alternative Controller for HHKB +=============================== + +Feature +------- +- Mouse Keys +- NKRO on USB +- Keymap Layers + + +Customize Keymap +---------------- +see keymap.c. + + +Build for 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, USB_EXTRA_ENABLE, USB_NKRO_ENABLE +3. Build hex file. + $ make +4. Program MCU. + $ make program + + +Build for 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, USB_EXTRA_ENABLE, USB_NKRO_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 + + +V-USB Circuit +------------- + +---+ +---------------+ +USB GND | | ATmega168 | +=== C3 | | +5V <-------+--------+---|Vcc,AVCC | HHKB + R1 | | ==== +D- <----+--+-----R2-----|INT1 PB0-2|------->ROW +D+ <----|---+----R3-----|INT0 PB3-5|------->COL + Z1 Z2 | PB6|------->ENABLE +GND<----+---+--+--+-----|GND PE6|------->KEY + | | | PE7|------->PREV + | C2-+--|XTAL1 | (see doc/HHKB.txt for pinouts) + | X1 | | + +--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) + + +EOF diff --git a/hhkb/config.h b/hhkb/config.h deleted file mode 100644 index 886eef928..000000000 --- a/hhkb/config.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef CONFIG_H -#define CONFIG_H - -/* controller configuration */ -#include "controller_teensy.h" - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCAFE -#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 == (BIT_LSHIFT | BIT_RSHIFT) || \ - keyboard_report->mods == (BIT_LCTRL | BIT_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_pjrc.h b/hhkb/config_pjrc.h new file mode 100644 index 000000000..886eef928 --- /dev/null +++ b/hhkb/config_pjrc.h @@ -0,0 +1,48 @@ +#ifndef CONFIG_H +#define CONFIG_H + +/* controller configuration */ +#include "controller_teensy.h" + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xCAFE +#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 == (BIT_LSHIFT | BIT_RSHIFT) || \ + keyboard_report->mods == (BIT_LCTRL | BIT_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 index 3b44b94a3..7c4291a21 100644 --- a/hhkb/config_vusb.h +++ b/hhkb/config_vusb.h @@ -29,92 +29,4 @@ #endif -/* PS/2 lines */ -#ifdef PS2_MOUSE_ENABLE - -#define PS2_CLOCK_PORT PORTD -#define PS2_CLOCK_PIN PIND -#define PS2_CLOCK_DDR DDRD -#define PS2_CLOCK_BIT 4 -#define PS2_DATA_PORT PORTD -#define PS2_DATA_PIN PIND -#define PS2_DATA_DDR DDRD -#define PS2_DATA_BIT 0 - - -// Synchronous USART is used to receive data from keyboard. -// Use RXD pin for PS/2 DATA line and XCK for PS/2 CLOCK. -// NOTE: This is recomended strongly if you use V-USB library. -#define PS2_USE_USART - -// External or Pin Change Interrupt is used to receive data from keyboard. -// Use INT1 or PCINTxx for PS/2 CLOCK line. see below. -//#define PS2_USE_INT - - -#ifdef PS2_USE_USART -// synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge -// set DDR of CLOCK as input to be slave -#define PS2_USART_INIT() do { \ - PS2_CLOCK_DDR &= ~(1<