There are some very good Android pinball applications. But I do not like to play using the touchscreen (I always end up hitting the home or menu icons).
I just needed real buttons, so I built this cabinet. The result is really reactive, and give full justice to these amazing pinball simulators!
Step 1: Technical Considerations
The principle I chose is to simulate finger touches. This will insure a perfect compatibility with all pinball applications (and not only the seldom ones supporting an external keyboard).
The buttons are connected to an USB keyboard controller. The SHIFT keys are detected and converted to touch events.
The tablet must have USB host capability, with an USB (or USB-on-the-go) connector. BTW, Android well supports external USB peripherals such as hard drives, keyboards, mice, hubs, etc.
Alternatively, Bluetooth keyboard may work, but I bet that the lag will badly impact the reactivity.
Also, an Arduino with an USB host controller, and directly connected to pinball buttons, may work. It would require ADK support.
In order to read and send raw events, the application requires the tablet to be permanently rooted.
IT IS VERY DANGEROUS TO USE A ROOTED TABLET, as malware could virtually access anything, including your personal data and online accounts. Do not run apps requiring rooting, except if you know exactly what they're doing.
Anyway, make a test before undertaking the project.