Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

From a software and hardware standpoint, what kind of interface does the keyboard use? I'm guessing it's not just a usb-hid interface, or if it is there's something special for the special keys.

If I were to make my own device like that, say based on an Android sbc, what would I have to do to replicate it?

share|improve this question
Why would there need to be something special for the special keys? All the keyboard does is send an integer keycode when a key is pressed, special or otherwise. It's the software that's responsible for turning the keycode into an event such as "insert x" or "return home". – Trebor Rude May 2 '13 at 7:54
So then it's just USB-HID with a custom keyboard layout? – mordac May 2 '13 at 18:47
up vote 1 down vote accepted

It appears to be an I2C interface. According to this post on xda-developers asusdec is the name of the keyboard dock device. When I cat /proc/bus/input/devices on my Transformer, this is what it says about asusdec:

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="asusdec"
P: Phys=/dev/input/asusdec
S: Sysfs=/devices/platform/tegra-i2c.1/i2c-1/1-0019/input/input15
U: Uniq=
H: Handlers=sysrq event3 
B: EV=20003
B: KEY=3fffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe
B: LED=2

Also, ps shows a com.asus.keyboard process running as system. That's an Android process. I'm not sure how exactly it's getting the input from the keyboard, though. I assume it has sufficient permissions to open the device for reading and converts the incoming keycodes to Android events.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.