@@ -1,6 +1,6 @@ | |||
[submodule "protocol/usb_hid/USB_Host_Shield_2.0"] | |||
path = protocol/usb_hid/USB_Host_Shield_2.0 | |||
url = [email protected]: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 |
@@ -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) | |||
@@ -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 |
@@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
#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 |
@@ -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<HID_PROTOCOL_KEYBOARD> 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(); |
@@ -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 | |||
@@ -1 +1 @@ | |||
Subproject commit 8bb790f83af298b5f3e5516259c9d8ec27efe522 | |||
Subproject commit 2b4a56de3d090686f62d25ea34042759dc4352d6 |