From daf1ef1db2dd2d22f47f7acfa1527eae9d7c3521 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 21 Jun 2019 14:40:09 +0900 Subject: [PATCH] adb_usb: Clean repository --- converter/adb_usb/MEMO.txt | 27 ----------- converter/adb_usb/Makefile | 32 ++++++------- converter/adb_usb/Makefile.teensy | 3 -- converter/adb_usb/Makefile.unimap.rev1 | 5 -- converter/adb_usb/Makefile.unimap.rev2 | 5 -- converter/adb_usb/README.md | 42 ++++++++--------- converter/adb_usb/led.c | 27 ----------- converter/adb_usb/matrix.c | 5 ++ .../adb_usb/{ => old_keymap}/keymap_ansi.c | 0 .../adb_usb/{ => old_keymap}/keymap_common.h | 47 ------------------- .../adb_usb/{ => old_keymap}/keymap_hasu.c | 0 .../adb_usb/{ => old_keymap}/keymap_iso.c | 0 .../adb_usb/{ => old_keymap}/keymap_plain.c | 0 13 files changed, 40 insertions(+), 153 deletions(-) delete mode 100644 converter/adb_usb/MEMO.txt delete mode 100644 converter/adb_usb/Makefile.teensy delete mode 100644 converter/adb_usb/Makefile.unimap.rev1 delete mode 100644 converter/adb_usb/Makefile.unimap.rev2 delete mode 100644 converter/adb_usb/led.c rename converter/adb_usb/{ => old_keymap}/keymap_ansi.c (100%) rename converter/adb_usb/{ => old_keymap}/keymap_common.h (93%) rename converter/adb_usb/{ => old_keymap}/keymap_hasu.c (100%) rename converter/adb_usb/{ => old_keymap}/keymap_iso.c (100%) rename converter/adb_usb/{ => old_keymap}/keymap_plain.c (100%) diff --git a/converter/adb_usb/MEMO.txt b/converter/adb_usb/MEMO.txt deleted file mode 100644 index f079442c..00000000 --- a/converter/adb_usb/MEMO.txt +++ /dev/null @@ -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. diff --git a/converter/adb_usb/Makefile b/converter/adb_usb/Makefile index 14fc181b..fe94d9f7 100644 --- a/converter/adb_usb/Makefile +++ b/converter/adb_usb/Makefile @@ -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 diff --git a/converter/adb_usb/Makefile.teensy b/converter/adb_usb/Makefile.teensy deleted file mode 100644 index 604e3642..00000000 --- a/converter/adb_usb/Makefile.teensy +++ /dev/null @@ -1,3 +0,0 @@ -TARGET = adb_usb_teensy -MCU = atmega32u4 -include Makefile diff --git a/converter/adb_usb/Makefile.unimap.rev1 b/converter/adb_usb/Makefile.unimap.rev1 deleted file mode 100644 index 41ec16e6..00000000 --- a/converter/adb_usb/Makefile.unimap.rev1 +++ /dev/null @@ -1,5 +0,0 @@ -TARGET = adb_usb_rev1_unimap -UNIMAP_ENABLE = yes -KEYMAP_SECTION_ENABLE = yes -MCU = atmega32u4 -include Makefile diff --git a/converter/adb_usb/Makefile.unimap.rev2 b/converter/adb_usb/Makefile.unimap.rev2 deleted file mode 100644 index 3e46eeeb..00000000 --- a/converter/adb_usb/Makefile.unimap.rev2 +++ /dev/null @@ -1,5 +0,0 @@ -TARGET = adb_usb_rev2_unimap -UNIMAP_ENABLE = yes -KEYMAP_SECTION_ENABLE = yes -MCU = atmega32u2 -include Makefile diff --git a/converter/adb_usb/README.md b/converter/adb_usb/README.md index 2240d023..4125568d 100644 --- a/converter/adb_usb/README.md +++ b/converter/adb_usb/README.md @@ -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 diff --git a/converter/adb_usb/led.c b/converter/adb_usb/led.c deleted file mode 100644 index ea9bf77b..00000000 --- a/converter/adb_usb/led.c +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2011 Jun Wako - -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 . -*/ - -#include -#include -#include "adb.h" -#include "led.h" - - -void led_set(uint8_t usb_led) -{ - adb_host_kbd_led(ADB_ADDR_KEYBOARD, ~usb_led); -} diff --git a/converter/adb_usb/matrix.c b/converter/adb_usb/matrix.c index 966ccf52..a1dddf9f 100644 --- a/converter/adb_usb/matrix.c +++ b/converter/adb_usb/matrix.c @@ -337,3 +337,8 @@ static void register_key(uint8_t key) matrix[row] |= (1<. } #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 - */ diff --git a/converter/adb_usb/keymap_hasu.c b/converter/adb_usb/old_keymap/keymap_hasu.c similarity index 100% rename from converter/adb_usb/keymap_hasu.c rename to converter/adb_usb/old_keymap/keymap_hasu.c diff --git a/converter/adb_usb/keymap_iso.c b/converter/adb_usb/old_keymap/keymap_iso.c similarity index 100% rename from converter/adb_usb/keymap_iso.c rename to converter/adb_usb/old_keymap/keymap_iso.c diff --git a/converter/adb_usb/keymap_plain.c b/converter/adb_usb/old_keymap/keymap_plain.c similarity index 100% rename from converter/adb_usb/keymap_plain.c rename to converter/adb_usb/old_keymap/keymap_plain.c -- 2.46.2