Here’s one way to really keep the component count low. [David] developed an NES controller that doesn’t use any buttons. The copper clad has been milled to provide a pad which registers a button push based on capacitance. The board has a SIL header at the top, making it easy to plug into the Arduino board that reads the inputs.
[David] had trouble getting the Arduino pin read functions to respond fast enough for he NES console’s expectations. He ended up using commands to access the ATmega’s peripherals directly in order to achieve the target timing. Speaking of, he did his own sniffing of the communication scheme using a logic analyzer. The results of that work, as well as the board files and code are available at the site linked above. And there’s a demo of the controller used to play Super Mario Bros. in the clip after the break.
This is actually a tangential project using a PCB mill which he’s developing through Kickstarter. This certainly shows that the mills works as designed.