adb_usb: Clean repository
This commit is contained in:
parent
7a7d9f64b5
commit
daf1ef1db2
13 changed files with 40 additions and 153 deletions
|
|
@ -1,27 +0,0 @@
|
|||
ADB keyboard handle id
|
||||
======================
|
||||
0x01 Apple Standard keyboard M0116 ANSI
|
||||
0x01 Apple Desktop Bus keyboard 658-4081 ANSI
|
||||
0x02 Apple Extended Keyboard M0115 ANSI
|
||||
0x02 Apple Extended Keyboard II M3501 ANSI
|
||||
0x03 Logical id for Extended Protocol
|
||||
0x10 Apple Adjustable keyboard M1242 ANSI
|
||||
|
||||
|
||||
Adjustable Keyboard media key
|
||||
=============================
|
||||
Media key part has different address than the main keyboard(0x02).
|
||||
|
||||
Device Address: 0x07(Appliances/Misc devices)
|
||||
Handler ID: 0x02
|
||||
|
||||
Scan Codes
|
||||
----------
|
||||
Media key ADB Code Code in Matix
|
||||
-----------------------------------------
|
||||
Volume Up: 0x03 0x48
|
||||
Volume Down: 0x02 0x49
|
||||
Mute: 0x01 0x4a
|
||||
Mic: 0x00 0x42
|
||||
|
||||
As for these keys raw ADB codes are translate into logical codes in matrix.
|
||||
|
|
@ -9,7 +9,6 @@ TARGET_DIR ?= .
|
|||
|
||||
# project specific files
|
||||
SRC ?= matrix.c \
|
||||
led.c \
|
||||
adb.c
|
||||
|
||||
CONFIG_H = config.h
|
||||
|
|
@ -64,26 +63,27 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
|||
# Atmel DFU loader 4096 for TMK Converter rev.1/rev.2
|
||||
# LUFA bootloader 4096
|
||||
# USBaspLoader 2048
|
||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
BOOTLOADER_SIZE ?= 4096
|
||||
OPT_DEFS += -DBOOTLOADER_SIZE=$(BOOTLOADER_SIZE)
|
||||
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
#
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
#NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
ADB_MOUSE_ENABLE = yes
|
||||
#UNIMAP_ENABLE = yes
|
||||
#ACTIONMAP_ENABLE = yes # Use 16bit actionmap instead of 8bit keymap
|
||||
#KEYMAP_SECTION_ENABLE = yes # fixed address keymap for keymap editor
|
||||
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||
NKRO_ENABLE ?= no # USB Nkey Rollover
|
||||
ADB_MOUSE_ENABLE ?= yes # ADB Mouse support
|
||||
UNIMAP_ENABLE ?= yes # Use unimap
|
||||
ACTIONMAP_ENABLE ?= no # Use 16bit actionmap instead of 8bit keymap
|
||||
KEYMAP_SECTION_ENABLE ?= yes # fixed address keymap for keymap editor
|
||||
|
||||
# ADB Mice need acceleration for todays much bigger screens.
|
||||
OPT_DEFS += -DADB_MOUSE_MAXACC=8
|
||||
ADB_MOUSE_MAXACC ?= 8
|
||||
OPT_DEFS += -DADB_MOUSE_MAXACC=$(ADB_MOUSE_MAXACC)
|
||||
|
||||
|
||||
# Optimize size but this may cause error "relocation truncated to fit"
|
||||
|
|
@ -93,10 +93,10 @@ OPT_DEFS += -DADB_MOUSE_MAXACC=8
|
|||
#
|
||||
# Keymap file
|
||||
#
|
||||
ifdef UNIMAP_ENABLE
|
||||
ifeq (yes,$(strip $(UNIMAP_ENABLE)))
|
||||
KEYMAP_FILE = unimap
|
||||
else
|
||||
ifdef ACTIONMAP_ENABLE
|
||||
ifeq (yes,$(strip $(ACTIONMAP_ENABLE)))
|
||||
KEYMAP_FILE = actionmap
|
||||
else
|
||||
KEYMAP_FILE = keymap
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
TARGET = adb_usb_teensy
|
||||
MCU = atmega32u4
|
||||
include Makefile
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
TARGET = adb_usb_rev1_unimap
|
||||
UNIMAP_ENABLE = yes
|
||||
KEYMAP_SECTION_ENABLE = yes
|
||||
MCU = atmega32u4
|
||||
include Makefile
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
TARGET = adb_usb_rev2_unimap
|
||||
UNIMAP_ENABLE = yes
|
||||
KEYMAP_SECTION_ENABLE = yes
|
||||
MCU = atmega32u2
|
||||
include Makefile
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
ADB to USB keyboard converter
|
||||
=============================
|
||||
This firmware converts Apple ADB keyboard protocol to USB, you can use it to plug old ADB keyboard into modern computer. It works on TMK ADB-USB Converter, PJRC Teensy2.0 and other USB AVR MCU(ATMega32U4, AT90USB64/128 or etc) and needs more than 10KB flash at least.
|
||||
This firmware converts Apple ADB keyboard/mouse protocol to USB, you can use it to plug old ADB keyboard/mouse into modern computer. It works on prebuilt TMK ADB-USB Converter or generic dev board with USB AVR MCU(ATMega32U4/2) like Teensy2.0.
|
||||
|
||||
Discuss here: http://geekhack.org/showwiki.php?title=Island:14290
|
||||
Discuss about this here: http://geekhack.org/showwiki.php?title=Island:14290
|
||||
|
||||
You can buy a TMK converter here: https://geekhack.org/index.php?topic=72052.0
|
||||
Prebuilt TMK ADB-USB converter is available here: https://geekhack.org/index.php?topic=72052.0
|
||||
|
||||
|
||||
|
||||
|
|
@ -21,13 +21,15 @@ 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.
|
||||
If you build this yourself you have to solder some wires.
|
||||
Connect ADB pins to controller just by 3 lines(Vcc, GND, Data) at least. By default Data line uses port PD0.
|
||||
This is not needed but you can connect PSW to PD1 optionally.
|
||||
|
||||
ADB female socket from the front:
|
||||
|
||||
,--_--.
|
||||
/ o4 3o \ 1: DATA
|
||||
| o2 1o | 2: Power SW
|
||||
| o2 1o | 2: PSW(Power SW)
|
||||
- === - 3: VCC
|
||||
`-___-' 4: GND
|
||||
|
||||
|
|
@ -36,13 +38,13 @@ https://github.com/tmk/tmk_keyboard/wiki/FAQ#pull-up-resistor
|
|||
|
||||
Pull-up resister:
|
||||
|
||||
Keyboard Conveter
|
||||
Keyboard AVR MCU
|
||||
,------.
|
||||
5V------+------|VCC |
|
||||
| | |
|
||||
[R] | |
|
||||
| | |
|
||||
Signal--+------|PD0 |
|
||||
DATA----+------|PD0 |
|
||||
| |
|
||||
GND------------|GND |
|
||||
`------'
|
||||
|
|
@ -58,31 +60,29 @@ Build firmware and Program microcontroller
|
|||
------------------------------------------
|
||||
See [doc/build.md](../../tmk_core/doc/build.md).
|
||||
|
||||
To build firmware and program TMK Converter run these commands:
|
||||
To build firmware and program TMK ADB-USB Converter run these commands:
|
||||
|
||||
$ make -f Makefile clean
|
||||
$ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)]
|
||||
$ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)] dfu
|
||||
$ make -f Makefile [KEYMAP=yourname]
|
||||
$ make -f Makefile [KEYMAP=yourname] dfu
|
||||
|
||||
You can select keymap with optional `KEYMAP=` (plain is default). Push button on the converter before running `dfu` target.
|
||||
You can select keymap name with optional `KEYMAP=` ('plain' is default name). Push button on the converter before running `dfu` target.
|
||||
|
||||
Use **Makefile.rev1** for old TMK Converter rev.1 and **Makefile.teensy** for Teensy2.0 instead of **Makefile**. For TMK Converter rev.2 just use **Makefile**.
|
||||
|
||||
To program Teensy you can use `teensy` target:
|
||||
|
||||
$ make -f Makefile.teensy [KEYMAP=(plain|ansi|iso|hasu)] teensy
|
||||
Use **Makefile.rev1** for old TMK Converter rev.1 and Teensy2.0 instead of **Makefile**.
|
||||
|
||||
|
||||
|
||||
Keymap
|
||||
------
|
||||
You can change a keymap by editing code of keymap_[plain|ansi|iso|hasu|yours].c.
|
||||
You can change keymap by editing code of unimap_plain.c directly, or copy it to your own keymap file like unimap_yourname.c and edit the file.
|
||||
How to define the keymap is probably obvious. You can find key symbols in common/keycode.h. And see [doc/keymap.md](../../tmk_core/doc/keymap.md) for more detail.
|
||||
|
||||
|
||||
Magic command
|
||||
-------------
|
||||
To get help press `h` holding Magic key. Magic key is `Power key`.
|
||||
To get help message in hid_listen press `h` holding Magic key. Magic key is `Power key`.
|
||||
|
||||
https://github.com/tmk/tmk_keyboard/wiki#debug
|
||||
|
||||
|
||||
Locking CapsLock
|
||||
|
|
@ -106,11 +106,7 @@ 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,
|
||||
And most of ADB keyboards have no diodes in its matrix so they are not NKRO unfortunately,
|
||||
though ADB protocol itself supports it. See protocol/adb.c for more info.
|
||||
|
||||
If keyboard has ISO layout you may have swapped keys problem, see this for the detail.
|
||||
|
||||
https://github.com/tmk/tmk_keyboard/issues/35
|
||||
|
||||
EOF
|
||||
|
|
|
|||
|
|
@ -1,27 +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/>.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <util/delay.h>
|
||||
#include "adb.h"
|
||||
#include "led.h"
|
||||
|
||||
|
||||
void led_set(uint8_t usb_led)
|
||||
{
|
||||
adb_host_kbd_led(ADB_ADDR_KEYBOARD, ~usb_led);
|
||||
}
|
||||
|
|
@ -337,3 +337,8 @@ static void register_key(uint8_t key)
|
|||
matrix[row] |= (1<<col);
|
||||
}
|
||||
}
|
||||
|
||||
void led_set(uint8_t usb_led)
|
||||
{
|
||||
adb_host_kbd_led(ADB_ADDR_KEYBOARD, ~usb_led);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -243,50 +243,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
ADB ANSI/ISO Keymapping Note
|
||||
============================
|
||||
ANSI
|
||||
,----------- ----------.
|
||||
| *a| 1| 2 =|Backspa|
|
||||
|----------- ----------|
|
||||
|Tab | Q| | ]| *c|
|
||||
|----------- ----------|
|
||||
|CapsLo| A| '|Return |
|
||||
|----------- ----------|
|
||||
|Shift | Shift |
|
||||
`----------- ----------'
|
||||
|
||||
ISO
|
||||
,----------- ----------.
|
||||
| *a| 1| 2 =|Backspa|
|
||||
|----------- ----------|
|
||||
|Tab | Q| | ]|Retur|
|
||||
|----------- -----` |
|
||||
|CapsLo| A| '| *c| |
|
||||
|----------- ----------|
|
||||
|Shif| *b| Shift |
|
||||
`----------- ----------'
|
||||
|
||||
ADB Keyboard scan code:
|
||||
ADB scan code USB usage
|
||||
------------- ---------
|
||||
Key ANSI ISO ANSI ISO
|
||||
---------------------------------------------
|
||||
*a 0x32 0x0A 0x35 0x35
|
||||
*b ---- 0x32 ---- 0x64
|
||||
*c 0x2A 0x2A 0x31 0x31(or 0x32)
|
||||
|
||||
|
||||
TMK ADB-USB mapping:
|
||||
ADB USB(ANSI) USB(ISO)
|
||||
---------------------------------
|
||||
0x32 0x35 0x64
|
||||
0x0A ---- 0x35
|
||||
0x2A 0x31 0x31(or 0x32)
|
||||
|
||||
Note that mappings of ADB code 0x32 are diffrent between ANSI and ISO keyboard.
|
||||
https://github.com/tmk/tmk_keyboard/issues/35
|
||||
*/
|
||||
Loading…
Add table
Reference in a new issue