diff --git a/.gitmodules b/.gitmodules index 17a20decb7c..e21f449613e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ -[submodule "protocol/usb_hid/USB_Host_Shield_2.0"] - path = protocol/usb_hid/USB_Host_Shield_2.0 - url = git@github.com:tmk/USB_Host_Shield_2.0.git [submodule "protocol/lufa/LUFA-git"] path = protocol/lufa/LUFA-git url = https://github.com/abcminiuser/lufa.git +[submodule "protocol/usb_hid/USB_Host_Shield_2.0"] + path = protocol/usb_hid/USB_Host_Shield_2.0 + url = https://github.com/felis/USB_Host_Shield_2.0.git diff --git a/converter/usb_usb/Makefile b/converter/usb_usb/Makefile index 13f77ca9b7d..4f983e7f68c 100644 --- a/converter/usb_usb/Makefile +++ b/converter/usb_usb/Makefile @@ -120,7 +120,7 @@ VPATH += $(TOP_DIR) # program Leonardo -PROGRAM_CMD = avrdude -p$(MCU) -cavr109 -P$(DEV) -b57600 -Uflash:w:$(TARGET).hex +PROGRAM_CMD = avrdude -p$(MCU) -cavr109 -b57600 -Uflash:w:$(TARGET).hex -P$(DEV) diff --git a/converter/usb_usb/README b/converter/usb_usb/README index a4893711079..69caabb2788 100644 --- a/converter/usb_usb/README +++ b/converter/usb_usb/README @@ -19,13 +19,42 @@ Build firmware $ cd converter/usb_usb $ make -You will get usb_usb.hex if you are lucky. -Program your Leonardo with avrdude(or easy-going Arduino IDE): +Program converter. Push reset button on Leonardo before run this command. Serial port name(COM17) depends your system. On Linux I got /dev/ttyACM0. + + $ DEV=COM17 make program + or + $ avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:usb_usb.hex -PCOM17 - $ avrdude -patmega32u4 -cavr109 -PCOM17 -b57600 -Uflash:w:usb_usb.hex Limitation ---------- Only supports 'HID Boot protocol'. Not support keyboard LED yet. + + + +Update +------ +2014/12/11 Added Hub support(confirmed with HHKB pro2) + + + +Resource +-------- +USB Host Sheild 2.0 + https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino + https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-for-arduino-pro-mini +USB Host Sheild 2.0 source + https://github.com/felis/USB_Host_Shield_2.0 +Arduino USB Host Shield(with bootst converter) + http://arduino.cc/en/Main/ArduinoUSBHostShield +Arduino source + https://github.com/arduino/Arduino/hardware/arduino/{cores,variants} +Initial release of TMK USB-USB converter + https://geekhack.org/index.php?topic=33057.msg653549#msg653549 + http://deskthority.net/workshop-f7/is-remapping-a-usb-keyboard-using-teensy-possible-t2841-30.html#p74854 +Arduino-based hardware keyboard remapper - Colemak forum + http://forum.colemak.com/viewtopic.php?id=1561 +Teensy + Host Shield + http://www.pjrc.com/teensy/td_libs_USBHostShield.html diff --git a/converter/usb_usb/config.h b/converter/usb_usb/config.h index d614973f7eb..bdc02868c8f 100644 --- a/converter/usb_usb/config.h +++ b/converter/usb_usb/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCAFE +#define PRODUCT_ID 0x005B #define DEVICE_VER 0x0814 #define MANUFACTURER t.m.k. #define PRODUCT USB to USB keyboard converter diff --git a/converter/usb_usb/main.cpp b/converter/usb_usb/main.cpp index 20b7af66a25..30fd3348a34 100644 --- a/converter/usb_usb/main.cpp +++ b/converter/usb_usb/main.cpp @@ -8,11 +8,13 @@ #include "hid.h" #include "hidboot.h" #include "parser.h" +#include "usbhub.h" // LUFA #include "lufa.h" #include "timer.h" +#include "sendchar.h" #include "debug.h" #include "keyboard.h" @@ -22,6 +24,15 @@ static USB usb_host; static HIDBoot kbd(&usb_host); static KBDReportParser kbd_parser; +static USBHub hub1(&usb_host); // one hub is enough for HHKB pro2 +/* may be needed for other device with more hub +static USBHub hub2(&usb_host); +static USBHub hub3(&usb_host); +static USBHub hub4(&usb_host); +static USBHub hub5(&usb_host); +static USBHub hub6(&usb_host); +static USBHub hub7(&usb_host); +*/ static void LUFA_setup(void) { @@ -39,6 +50,7 @@ static void LUFA_setup(void) // for Console_Task USB_Device_EnableSOFEvents(); + print_set_sendchar(sendchar); } static void HID_setup() @@ -60,9 +72,11 @@ int main(void) LED_TX_ON; debug_enable = true; +/* debug_matrix = true; debug_keyboard = true; debug_mouse = true; +*/ host_set_driver(&lufa_driver); keyboard_init(); diff --git a/protocol/usb_hid.mk b/protocol/usb_hid.mk index 6914dce809e..8fda76c2e5b 100644 --- a/protocol/usb_hid.mk +++ b/protocol/usb_hid.mk @@ -8,6 +8,7 @@ USB_HOST_SHIELD_DIR = $(USB_HID_DIR)/USB_Host_Shield_2.0 USB_HOST_SHIELD_SRC = \ $(USB_HOST_SHIELD_DIR)/Usb.cpp \ $(USB_HOST_SHIELD_DIR)/hid.cpp \ + $(USB_HOST_SHIELD_DIR)/usbhub.cpp \ $(USB_HOST_SHIELD_DIR)/parsetools.cpp \ $(USB_HOST_SHIELD_DIR)/message.cpp diff --git a/protocol/usb_hid/USB_Host_Shield_2.0 b/protocol/usb_hid/USB_Host_Shield_2.0 index 8bb790f83af..2b4a56de3d0 160000 --- a/protocol/usb_hid/USB_Host_Shield_2.0 +++ b/protocol/usb_hid/USB_Host_Shield_2.0 @@ -1 +1 @@ -Subproject commit 8bb790f83af298b5f3e5516259c9d8ec27efe522 +Subproject commit 2b4a56de3d090686f62d25ea34042759dc4352d6