~ruther/qmk_firmware

b47450da9ffc1c296b3ba6ecd189fced0b7b8ed9 — Jun Wako 10 years ago f6f698d + 30864ea
Merge branch 'usb_usb_hub'
M .gitmodules => .gitmodules +3 -3
@@ 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

M converter/usb_usb/Makefile => converter/usb_usb/Makefile +1 -1
@@ 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)




M converter/usb_usb/README => converter/usb_usb/README +32 -3
@@ 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

M converter/usb_usb/config.h => converter/usb_usb/config.h +1 -1
@@ 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

M converter/usb_usb/main.cpp => converter/usb_usb/main.cpp +14 -0
@@ 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();

M protocol/usb_hid.mk => protocol/usb_hid.mk +1 -0
@@ 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 


M protocol/usb_hid/USB_Host_Shield_2.0 => protocol/usb_hid/USB_Host_Shield_2.0 +1 -1
@@ 1,1 1,1 @@
Subproject commit 8bb790f83af298b5f3e5516259c9d8ec27efe522
Subproject commit 2b4a56de3d090686f62d25ea34042759dc4352d6