Since I'm from Tiproland, I can get you some USB onesRC-1140 wrote:That's apparently an USB Tipro Controller board. I wish I had an USB one too. I only have two PS/2 ones.
Is remapping a USB keyboard using Teensy possible?
- Half-Saint
- Location: Slovenia, Europe
- Main keyboard: Raptor Gaming K1
- Main mouse: Logitech G5 Mk.2
- Favorite switch: Cherry MX Blue
- DT Pro Member: 0058
- hasu
- Location: Japan
- Main keyboard: HHKB
- Main mouse: HHKB
- Favorite switch: Topre
- DT Pro Member: -
I added USB to USB converter in my keyboard firmware repository.
See this post. http://geekhack.org/index.php?topic=330 ... #msg653549
My Sparkfun Host Shield is obsolete and incompatible with Leonardo, this needed messy cables to connect with Leonardo. Of course Circuit@Home Shield doesn't need this messy cables, it can be stacked well on Leonardo.
See this post. http://geekhack.org/index.php?topic=330 ... #msg653549
My Sparkfun Host Shield is obsolete and incompatible with Leonardo, this needed messy cables to connect with Leonardo. Of course Circuit@Home Shield doesn't need this messy cables, it can be stacked well on Leonardo.
-
- Location: US
- Main keyboard: HHKB Pro 2
- Main mouse: G700, Mamba
- Favorite switch: Topre, Red, Brown
- DT Pro Member: -
How exciting!
So, I need to purchase
1. https://www.circuitsathome.com/products ... ino-boards
[ Edit: this is not what is needed. It is Arduino Leonardo that is needed for this mod. Link for Arduino Leonardo http://arduino.cc/en/Main/arduinoBoardLeonardo ]
2. https://www.circuitsathome.com/products ... r-arduino/
Does this support second layer customizing? (is your firm ware easily modifiable?)
Why is the standard B connector on Arduino is mini B connector in your Arduino board?
Not sure exactly how firmware update is done or whether firm ware is edit friendly, but definitely interesting!! Thanks hasu!
So, I need to purchase
1. https://www.circuitsathome.com/products ... ino-boards
[ Edit: this is not what is needed. It is Arduino Leonardo that is needed for this mod. Link for Arduino Leonardo http://arduino.cc/en/Main/arduinoBoardLeonardo ]
2. https://www.circuitsathome.com/products ... r-arduino/
Does this support second layer customizing? (is your firm ware easily modifiable?)
Why is the standard B connector on Arduino is mini B connector in your Arduino board?
Not sure exactly how firmware update is done or whether firm ware is edit friendly, but definitely interesting!! Thanks hasu!
Last edited by Limmy on 06 Sep 2012, 13:49, edited 1 time in total.
- Soarer
- Location: UK
- Favorite switch: F
- DT Pro Member: -
1. No, not the Uno, you want the Arduino Leonardo. (explains the connector difference as well).
2. Yes. This one fits neatly on the Arduino. If you don't want to solder there's also an assembled version.
Alternatively, a Teensy 2.0 with the mini shield should work too, as in my earlier post. I haven't got round to trying hasu's code on it yet though!
2. Yes. This one fits neatly on the Arduino. If you don't want to solder there's also an assembled version.
Alternatively, a Teensy 2.0 with the mini shield should work too, as in my earlier post. I haven't got round to trying hasu's code on it yet though!
- hasu
- Location: Japan
- Main keyboard: HHKB
- Main mouse: HHKB
- Favorite switch: Topre
- DT Pro Member: -
Right, Leonardo is needed instead of Uno. Circuit@Home has no Leonardo, you need to find other shop.
Of course, multi layer, media key and mouse key are supported. Just edit keymap.c to have your favourite keymap.
https://github.com/tmk/tmk_keyboard/blo ... b/keymap.c
Note that my USB to USB converter is not mature enough and has some limitations.
- Hub is not supported, this means HHKB pro2 will not work.
- Only 'boot protocol'(6KRO) is supported, not NKRO keyboards like Noppoo Choc mini. (Never support NKRO)
- keyboard LED is not supported. (I don't have keyboard with LED around
- wake/resume is not supported.
- You may need unplug and plug your keyboard to start initialization process. (maybe needs some hardware mod)
Of course, multi layer, media key and mouse key are supported. Just edit keymap.c to have your favourite keymap.
https://github.com/tmk/tmk_keyboard/blo ... b/keymap.c
Note that my USB to USB converter is not mature enough and has some limitations.
- Hub is not supported, this means HHKB pro2 will not work.
- Only 'boot protocol'(6KRO) is supported, not NKRO keyboards like Noppoo Choc mini. (Never support NKRO)
- keyboard LED is not supported. (I don't have keyboard with LED around
- wake/resume is not supported.
- You may need unplug and plug your keyboard to start initialization process. (maybe needs some hardware mod)
-
- Location: US
- Main keyboard: HHKB Pro 2
- Main mouse: G700, Mamba
- Favorite switch: Topre, Red, Brown
- DT Pro Member: -
Thank you for the update!
With PS/2 to USB converter using Teensy(one developed by Soarer or another by hasu) and this USB device, I should be able to remap any keyboard except keyboards with integrated USB hub.
I don't put my computer to sleep nor require NKRO(6KRO is enough for me), so I am happy with the solution you guys provided. Thank you guys!
With PS/2 to USB converter using Teensy(one developed by Soarer or another by hasu) and this USB device, I should be able to remap any keyboard except keyboards with integrated USB hub.
I don't put my computer to sleep nor require NKRO(6KRO is enough for me), so I am happy with the solution you guys provided. Thank you guys!
-
- Location: .de
- DT Pro Member: -
Sorry for bump, but have you found some time to test it?Soarer wrote:Alternatively, a Teensy 2.0 with the mini shield should work too, as in my earlier post. I haven't got round to trying hasu's code on it yet though!
- Soarer
- Location: UK
- Favorite switch: F
- DT Pro Member: -
I tried hasu's code with the mini shield without success - I get "HID init: failed" with both an ML4100 and an MX3000, both when starting from the bootloader and when just plugging it in. I'm not sure at this point whether the code doesn't like those keyboards, or whether the different hardware is causing the problem, and I just haven't had time to look into it furtherFranzl wrote:Sorry for bump, but have you found some time to test it?Soarer wrote:Alternatively, a Teensy 2.0 with the mini shield should work too, as in my earlier post. I haven't got round to trying hasu's code on it yet though!
I'm assuming that some configuration issue is most likely, since it's failing at a very early stage. My hardware setup passes the board_qc test in the USBHostShield2 libary though, and that can read the device descriptor OK.
- fossala
- Elite +1
- Location: UK
- Main keyboard: HHKB Type-S
- Main mouse: Rollermouse Free2
- Favorite switch: Topre
- DT Pro Member: -
Got any pictures, pictures are always good.Soarer wrote:Right, got it working... simply a config setting in tmk_keyboard/protocol/usb_hid/USB_Host_Shield_2.0/avrpins.h: needed to uncomment #define BOARD_TEENSY to get it working with the Teensy 2.0 + Mini shield combo.
-
- Location: US
- Main keyboard: HHKB Pro 2
- Main mouse: G700, Mamba
- Favorite switch: Topre, Red, Brown
- DT Pro Member: -
Wonderful! Now, it would be perfect if we could get a decent housing for the parts. Is there a popular way to put them in a case? It seems it would be hard to hold the boards in place. Is there an easy solution to this? Hmm.. glue gun?
- Soarer
- Location: UK
- Favorite switch: F
- DT Pro Member: -
There was a link just a few posts ago! It's the USB host, so that's where the keyboard plugs in
Casing it properly would be tricky. A custom made case using layers of acrylic or aluminium might work nicely. But I'll probably just use tape or heatshrink (after smoothing sharp solder joints and PCB corners)
Casing it properly would be tricky. A custom made case using layers of acrylic or aluminium might work nicely. But I'll probably just use tape or heatshrink (after smoothing sharp solder joints and PCB corners)
-
- Main keyboard: HHKB Pro 2
- Favorite switch: Topre
- DT Pro Member: -
I am not a hardware engineer and have quite frankly never done something like this myself, but hell would I like to have such a thing lying around! I will be checking this post every once in a while to check for updates. Sounds promising.
- Soarer
- Location: UK
- Favorite switch: F
- DT Pro Member: -
The easiest option for hardware is an Arduino Leonardo plus the circuits@home USB shield 2.0 - much larger than the mini combo above, but no fiddly soldering to do, they just plug together. Also, they both have mounting holes and the connectors come out on the same side, so it would be far easier to mount into a box.
However, the edge with the connectors of the host shield doesn't line up with the edge of the Leonardo, which is a shame. This picture is of some other Arduino, not a Leonardo, but the dimensions are similar:
tinyosshop have a USB host shield that appears to be the same design as the circuits@home shield, and slightly cheaper. Even cheaper to buy on ebay though, and free postage. They also have Tosduino Leonardo which is priced well (again, search ebay for it, can be found with free postage).
But still, I don't think hasu will mind me saying, the software needs work before it could really be called ready for general use.
However, the edge with the connectors of the host shield doesn't line up with the edge of the Leonardo, which is a shame. This picture is of some other Arduino, not a Leonardo, but the dimensions are similar:
tinyosshop have a USB host shield that appears to be the same design as the circuits@home shield, and slightly cheaper. Even cheaper to buy on ebay though, and free postage. They also have Tosduino Leonardo which is priced well (again, search ebay for it, can be found with free postage).
But still, I don't think hasu will mind me saying, the software needs work before it could really be called ready for general use.
-
- Location: USA
- Main keyboard: Laptop (until I modify a desktop keyboard)
- Main mouse: touchpad
- Favorite switch: Buckling Spring or Cherry Blue
- DT Pro Member: -
Forgive me for being dense, but does this mean that the Soarer Converter will not work when connected to a typical USB keyboard connected through a simple USB to PS/2 adapter?
http://www.cyberguys.com/product-detail ... uctid=4202
http://www.cyberguys.com/product-detail ... uctid=4202
- Soarer
- Location: UK
- Favorite switch: F
- DT Pro Member: -
My converter works just fine like that (as long as the keyboard supports PS/2).Hubbert wrote:Forgive me for being dense, but does this mean that the Soarer Converter will not work when connected to a typical USB keyboard connected through a simple USB to PS/2 adapter?
http://www.cyberguys.com/product-detail ... uctid=4202
This project's slow progress is mostly explained by its limited applicability. On the one hand most simple 6KRO USB keyboards also work fine over PS/2, so a PS/2 converter can be used instead. On the other, supporting fancier USB keyboards which have >6KRO (or even media keys etc) requires a lot of work. So this just fills a small niche, for now.
-
- Location: USA
- Main keyboard: Laptop (until I modify a desktop keyboard)
- Main mouse: touchpad
- Favorite switch: Buckling Spring or Cherry Blue
- DT Pro Member: -
Thanks; that's good news. All my keyboards are either native PS/2 or include an adapter in the box, which should be enough for now. WASD claims NKRO over the included hunk-o-plastic PS/2 adapter, which should make an interesting test.
- Soarer
- Location: UK
- Favorite switch: F
- DT Pro Member: -
... if you don't mind the wait I ordered both on the 9th. The host shield arrived today, and the Leornardo clone arrived a few days ago. Not toooo bad, I suppose, but the ethernet shield I ordered at the same time arrived over a week ago!Soarer wrote:tinyosshop have a USB host shield that appears to be the same design as the circuits@home shield, and slightly cheaper. Even cheaper to buy on ebay though, and free postage. They also have Tosduino Leonardo which is priced well (again, search ebay for it, can be found with free postage).
The things I want to play around with first are actually pointer device related - upping report rate to 500Hz or 1000Hz, and allowing sensitivity and acceleration settings per device (for when multiple pointer devices are in use).
- damorgue
- Location: Sweden
- Main mouse: MX500
- Favorite switch: BS, MX Green and MX Clear
- DT Pro Member: -
- Contact:
How would the Noppoo Choc Mini work with this? If I remember correctly, it manages NKRO over USB by emulating two keybaords. I may have confused it with another model. Just a theoretical question.
Last edited by damorgue on 05 Jan 2013, 15:57, edited 1 time in total.
- Soarer
- Location: UK
- Favorite switch: F
- DT Pro Member: -
It wouldn't - anything other than the basic 6KRO means a lot of work
- read descriptors
- parse descriptors
- set up some structures for dealing with the report described by the descriptor
- map that report data into the output reports
- send output reports when needed
Hasu (who has done _all_ the work on this so far) doesn't seem keen to do it, and I've no idea when I would find time to have a look at it (or even the pointer stuff I want to play with, if I'm honest). If Hasu doesn't beat me to it, I do want to try and get the reset working nicely though, and perhaps also get it working for keyboards with built-in hubs (although the hub wouldn't work).
edit: forgot about the other bit I thought I might look at - telling the keyboard to use 6KRO mode, like a BIOS does. That might make the noppoo work, I don't know.
- read descriptors
- parse descriptors
- set up some structures for dealing with the report described by the descriptor
- map that report data into the output reports
- send output reports when needed
Hasu (who has done _all_ the work on this so far) doesn't seem keen to do it, and I've no idea when I would find time to have a look at it (or even the pointer stuff I want to play with, if I'm honest). If Hasu doesn't beat me to it, I do want to try and get the reset working nicely though, and perhaps also get it working for keyboards with built-in hubs (although the hub wouldn't work).
edit: forgot about the other bit I thought I might look at - telling the keyboard to use 6KRO mode, like a BIOS does. That might make the noppoo work, I don't know.
-
- DT Pro Member: -
In my quest to use learn a new keyboard layout, I actually did a Leonard + USB Host Shield 2 combo and came up with the code to make it work (for me).
I have posted my code and seutp here if you are interested:
http://forum.colemak.com/viewtopic.php?pid=10837
Cheers!
I have posted my code and seutp here if you are interested:
http://forum.colemak.com/viewtopic.php?pid=10837
Cheers!
- Soarer
- Location: UK
- Favorite switch: F
- DT Pro Member: -
One year on, and I still haven't found the time or motivation to work on this at all
I did just stumble across another possible approach, and thought I might as well throw some links up. Hobbytronics have a USB Host Board using the Microchip 24FJ64GB002 microcontroller. They have various firmwares for it, including keyboard, however it outputs a serial stream that's not flexible enough for our wants. I don't know if their source is available, or if it would be better to start from the samples included in the 24F Starter Kit from Microchip.
I did just stumble across another possible approach, and thought I might as well throw some links up. Hobbytronics have a USB Host Board using the Microchip 24FJ64GB002 microcontroller. They have various firmwares for it, including keyboard, however it outputs a serial stream that's not flexible enough for our wants. I don't know if their source is available, or if it would be better to start from the samples included in the 24F Starter Kit from Microchip.
-
- Location: Ålesund, Norway
- DT Pro Member: -
You could also use a MBED-thing.. that one has both USB-host and USB out.. would be WAY overkill, but it should be possible