Finally, a keyboard for the iPhone

1941564841616847948

We can’t say we’ve had problems typing on our iPhones here at HackaDay, must be the elfin fingers, but for [Ben Kurtz] it was a real pain. The obvious solution is to carry around an Arduino, 9 volt battery, iPhone breakout board, a ps2 keyboard, and of course the iPhone itself. Well, maybe it could be a little smaller with fewer parts, but at least it works. The Arduino reads input from the keyboard and converts it to serial, then the iPhone pulls the data via VNC. Like we said, a little roundabout, but we love the amount of ingenuity involved.

31 thoughts on “Finally, a keyboard for the iPhone

  1. just needs one of those roll-up keyboards. besides, with the level of man purses out there (re: back-packs) you can always carry a few more items.

  2. Sweet, this is something I’ve been looking to make myself, and it looks like the only thing I’ll need to buy is the ipod connector breakout. I’m off to sparkfun ^_^

  3. A refined solution would be a very small PCB with a UART IC solution or whatever(I don’t know the specs) that is very low profile. You could probably use a much smaller cell too, something with maybe 5v and 2kmah+.

    Thanks adruino for another hack.

  4. I did a little more sleuthing and found some code towards iphone/ipod bluetooth keyboards:

    http://code.google.com/p/btstack/

    http://code.google.com/p/ibluetoothproject/

    I just I wish I had some time to hack on this. ibluetoothproject looks like more of a hack, while btstack looks more robust – or at least intends to be :) With the ipod portability / battery life, it makes an attractive portable computing system with a keyboard. You could get a full 80 width terminal in there with 6 pixels per character.

  5. @mj: Yep, shouldn’t be too hard to remove the ATMega from its arduino board and place it onto its own board along with the Sparkfun iPhone interface board, then shove it all inside the body of the keyboard.

  6. It doesn’t look pretty, or portable, but it works (and documented nicely). It’s up to you to make a custom PCB and make it all-in-one and smaller.

  7. Have a look at Atmel’s appnote AVR313: Interfacing the PC AT Keyboard.

    http://www.atmel.com/dyn/resources/prod_documents/DOC1235.PDF

    This was published in 2002 and includes full C source code for an AT keyboard-to-serial interface. Integrating an AVR and mini-din socket within the space of an iPhone connector shell is an exercise for the astute reader. It shouldn’t be too hard.

    When all you have is an Arduino, the solution to every problem is doomed to be a $30+ rat’s nest.

    For those of you interested in implementing this at home, there may be a better solution than either the Arduino or the bare AVR. Most PDAs manufactured in the past 10 years had various aftermarket keyboards available; you can find them for pocket change on the used market since the PDAs are obsolete. Most of these keyboards (Palm Pilot, Compaq IPAQ) use a simple serial interface which should connect directly to the iPhone’s serial lines. Here’s one guy’s project to get you started:

    http://www.splorp.com/newton/stowaway/

    Better jump on it before Apple releases Bluetooth HID and takes all the fun out of the hack.

  8. Seems like a lot of hard work went into this project. I hacked together a keyboard using the same VNC method last year, but the wiring was much simpler.

  9. Hi,
    I’ve been trying to get TouchClient.c to compile on my ipod but so far no succes, when i type “gcc -static-libgcc -o TouchClient TouchClient.c -lvncclient ”
    I get:
    “ld: library not found for -lSystem
    collect2: ld returned 1 exit status”
    Does anyone know how to fix this?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s