You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					152 lines
				
				4.6 KiB
			
		
		
			
		
	
	
					152 lines
				
				4.6 KiB
			| 
								 
											15 years ago
										 
									 | 
							
								Alternative Controller for HHKB
							 | 
						||
| 
								 | 
							
								===============================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Feature
							 | 
						||
| 
								 | 
							
								-------
							 | 
						||
| 
								 | 
							
								- Mouse Keys
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								- NKRO on USB(PJRC Tennsy only)
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								- Keymap Layers
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Customize Keymap
							 | 
						||
| 
								 | 
							
								----------------
							 | 
						||
| 
								 | 
							
								see keymap.c.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								
							 | 
						||
| 
								 | 
							
								Build
							 | 
						||
| 
								 | 
							
								=====
							 | 
						||
| 
								 | 
							
								PJRC Teensy
							 | 
						||
| 
								 | 
							
								-----------
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								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
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								    MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, NKRO_ENABLE
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								3. Build hex file.
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								    $ make -f Makefile.pjrc
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								4. Program MCU.
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								    $  make -f Makefile.pjrc program
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								V-USB
							 | 
						||
| 
								 | 
							
								-----
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								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
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								    MOUSEKEY_ENABLE, EXTRAKEY_ENABLE
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								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
							 | 
						||
| 
								 | 
							
								-----
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								                +---+   +---------------+
							 | 
						||
| 
								 | 
							
								USB            GND  |   |   ATmega168   |
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								~~~                 C3  |               |
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								5V <-------+--------+---|Vcc,AVCC       |        HHKB
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								           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
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								                        +---------------+
							 | 
						||
| 
								 | 
							
								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)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 
											14 years ago
										 
									 | 
							
								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).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 
											15 years ago
										 
									 | 
							
								EOF
							 |