103 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ADB to USB keyboard converter
 | |
| =============================
 | |
| This firmware converts ADB keyboard protocol to USB.
 | |
| You can use PJRC Teensy for this converter, though, other USB AVR(ATMega32U4, AT90USB64/128 or etc) should work.
 | |
| But binary size is about 10KB or more it doesn't fit into 8K flash like ATMega8U2.
 | |
| 
 | |
| Discuss: http://geekhack.org/showwiki.php?title=Island:14290
 | |
| 
 | |
| 
 | |
| 
 | |
| README FIRST
 | |
| ------------
 | |
| https://github.com/tmk/tmk_keyboard
 | |
| https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb
 | |
| 
 | |
| Also check these when you are in trouble.
 | |
| 
 | |
| https://github.com/tmk/tmk_keyboard/wiki
 | |
| https://github.com/tmk/tmk_keyboard/labels/NOTE
 | |
| 
 | |
| 
 | |
| Wiring
 | |
| ------
 | |
| Connect ADB pins to controller just by 3 lines(Vcc, GND, Data). By default Data line uses port PD0.
 | |
| 
 | |
| ADB female socket from the front:
 | |
| 
 | |
|       ,--_--.
 | |
|      / o4 3o \      1: DATA
 | |
|     | o2   1o |     2: Power SW
 | |
|      -  ===  -      3: VCC
 | |
|       `-___-'       4: GND
 | |
| 
 | |
| This converter uses AVR's internal pull-up, but it seems to be too weak, in particular when you want to use a long or coiled cable. The external pull-up resistor(1K-10K Ohm) on Data is strongly recommended.(It is almost must!)
 | |
| https://github.com/tmk/tmk_keyboard/wiki/FAQ#pull-up-resistor
 | |
| 
 | |
| Pull-up resister:
 | |
| 
 | |
|     Keyboard       Conveter
 | |
|                    ,------.
 | |
|     5V------+------|VCC   |
 | |
|             |      |      |
 | |
|            [R]     |      |
 | |
|             |      |      |
 | |
|     Signal--+------|PD0   |
 | |
|                    |      |
 | |
|     GND------------|GND   |
 | |
|                    `------'
 | |
|     R: 1K Ohm resistor
 | |
| 
 | |
| 
 | |
| Define following macros for ADB connection in config.h if you use other than port PD0.
 | |
| 
 | |
|     ADB_PORT, ADB_PIN, ADB_DDR, ADB_DATA_BIT
 | |
| 
 | |
| 
 | |
| Build
 | |
| -----
 | |
| See doc/build.md. In short,
 | |
| 
 | |
|     $ make clean
 | |
|     $ make
 | |
| 
 | |
| You can select keymap(ansi is default) like this:
 | |
| 
 | |
|     $ make KEYMAP=[ansi|iso|hasu]
 | |
| 
 | |
| 
 | |
| Keymap
 | |
| ------
 | |
| You can change a keymap by editing code of keymap_[ansi|iso|hasu|yours].c.
 | |
| How to define the keymap is probably obvious. You can find key symbols in common/keycode.h. And see doc/keymap.md for more detail.
 | |
| 
 | |
| 
 | |
| Magic command
 | |
| -------------
 | |
| To get help press `h` holding Magic key. Magic key is `Power key`.
 | |
| 
 | |
| 
 | |
| Locking CapsLock
 | |
| ----------------
 | |
| Many of old ADB keyboards have mechanical push-lock switch for Capslock key and this converter supports the locking Capslock key by default. See README in top directory for more detail about this feature.
 | |
| https://github.com/tmk/tmk_keyboard/blob/master/README.md#mechanical-locking-support
 | |
| 
 | |
| Also you may want to remove locking pin from the push-lock switch to use capslock as a normal momentary switch.
 | |
| 
 | |
| 
 | |
| Notes
 | |
| -----
 | |
| Not-extended ADB keyboards have no discrimination between right modifier and left one,
 | |
| you will always see left control even if you press right control key.
 | |
| Apple Extended Keyboard and Apple Extended Keyboard II can discriminate both side
 | |
| 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 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
 | |
| 
 | |
| EOF
 | 
