gc3ds is a 3DS modification that allows user to use Nintendo GameCube controller to play any games on Nintendo 3DS consoles. This open-source project uses an Arduino Nano to read the state of GameCube controller, then mirror them to Nintendo 3DS with a maximum delay of no more than 1/1000 seconds (1 millisecond). Users can also choose to customize button mappings between gc controller and 3DS with a LCD screen.
For all the resources about this project(video, parts list, guides, etc), see http://goo.gl/SyRLb5