Page 2 of 2
Posted: 24 Jun 2012, 22:00
by Half-Saint
RC-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.
Since I'm from Tiproland, I can get you some USB ones

Posted: 03 Sep 2012, 15:41
by hasu
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.
Posted: 06 Sep 2012, 00:02
by Limmy
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!
Posted: 06 Sep 2012, 00:47
by Soarer
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!
Posted: 06 Sep 2012, 03:10
by hasu
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)
Posted: 06 Sep 2012, 14:01
by Limmy
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!
Posted: 30 Oct 2012, 03:13
by Franzl
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!
Sorry for bump, but have you found some time to test it?
Posted: 30 Oct 2012, 14:58
by Soarer
Franzl wrote: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!
Sorry for bump, but have you found some time to test it?
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 further
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.
Posted: 31 Oct 2012, 03:26
by Soarer
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.
Posted: 31 Oct 2012, 07:45
by fossala
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.
Got any pictures, pictures are always good.
Posted: 31 Oct 2012, 13:45
by Soarer
The next step will be to fold it over and use header pins in some of the spare holes to hold it together.

- Teensy_with_Mini_Shield_real.jpg (500.97 KiB) Viewed 19748 times
Posted: 01 Nov 2012, 04:57
by Limmy
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?
Posted: 01 Nov 2012, 09:06
by fossala
Do you plug the keyboard into the mini shield or the teensy? It would be better into the mini shield because it's usb 2.0. What is a mini shield?
Posted: 01 Nov 2012, 12:11
by Soarer
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)

Posted: 01 Nov 2012, 13:23
by fossala
Dammit Soarer and Hasu, you're just adding to the list of things I NEED to buy.
Posted: 03 Nov 2012, 14:30
by Janner
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.
Posted: 03 Nov 2012, 15:41
by Soarer
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.
Posted: 24 Nov 2012, 22:05
by Hubbert
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
Posted: 24 Nov 2012, 22:41
by Soarer
My converter works just fine like that (as long as the keyboard supports PS/2).
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.
Posted: 24 Nov 2012, 22:51
by Hubbert
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.
Posted: 01 Dec 2012, 23:17
by Soarer
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).
... 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!
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).
Posted: 01 Dec 2012, 23:48
by damorgue
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.
Posted: 02 Dec 2012, 00:18
by Soarer
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.
Posted: 03 Dec 2012, 13:50
by darkness
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!
Posted: 07 Dec 2013, 19:55
by Soarer
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.
Posted: 07 Dec 2013, 20:13
by Aleksander
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

Posted: 07 Dec 2013, 20:45
by Soarer
Overkill is fine if the price is cheap! (And if writing/loading code is easy and doesn't require buying more stuff). But €49 (for
this one) is more than a Teensy with a module costs... for now! Is there a cheaper one with USB host and device?