Pi Zero in a NES Controller


Similar projects worth following
Hacking apart a NES controller, add a Pi Zero to make a retro games toy.

Inspired by usedbytes project, add a LiPo battery for portability/demos/ups.

Using a 'proper' NES controller to simplify the build.

Aim is to keep the original case and controller aesthetic.

JPEG Image - 462.95 kB - 06/15/2016 at 22:57


JPEG Image - 460.99 kB - 06/15/2016 at 22:54


JPEG Image - 448.81 kB - 06/15/2016 at 22:54


JPEG Image - 517.07 kB - 06/12/2016 at 22:51


JPEG Image - 540.02 kB - 06/12/2016 at 22:51


View all 19 files

  • 1 × Raspberry Pi Zero Desolder the camera connector and Power Micro USB!
  • 1 × Cheap NES Controller One with a NES connector, not a USB one.
  • 1 × MicroSD Card with RetroPie Installed
  • 1 × Adafruit PowerBoost 500 Charger To avoid opening the case to replace the battery
  • 1 × 850 mAH Battery Needs to be physically small, this is the biggest I think I can cram in!

View all 10 components

  • Progress

    P.Mo06/15/2016 at 23:50 0 comments

    Power switch added, LED fitted but not wired.

    Should concealed button shut down the pi, or hard reset it? Decisions...

  • First Light

    P.Mo06/13/2016 at 00:35 0 comments

    Got the majority of the hardware setup and working, still to do is adding the power switch, wiring the reset button and sorting out the bicolour LED.

    Actually the power boost LED and Pi activity LED shine through the case with a cool glow, so not sure what to do with the remaining LED. Pi Power as I removed the LED from the power boost to make everything fit?

View all 2 project logs

  • 1
    Step 1

    Step 1: Disassemble and strip stuff down

    Remove three screws from the back and gently prise open the case. Then remove the one screw holding the PCB and remove all the controller buttons. Keep it all in a bag somewhere as the screws are small and easy to lose!

    Using a dremel and a set of files, remove material internal pillars and flanges as shown in the images.

    Remove the power micro-usb from the Pi zero, I also removed the camera connector to save me having any issues with it later.

    From the power boost I had to remove the LED labelled PWR, this was to make it fit in the case and I might relocate to the 5mm case LED. Alternatively route a micro USB cable through the existing case cable mount and drop the case LED completely, this would save creating a separate power opening later.

  • 2
    Step 2

    Step 2: Add mounting bits

    The pit sits on the base of the controller, so material is removed from one side of the clam-shell only (see photos).

    The PowerBooster sits next to the Pi, and needs a spacer (a couple of m2 nuts and a push button worked for me) to mount it at a nice level. File back a slot in the other side of the pi case (no picture for this one I'm afraid).

    Apply a chamfer to the ports, so they 'open up' as they go into the case - this will make it easier to locate the hardware and helps with the flanges on the micro-usb port.

    Solder wires from the PowerBoost output directly to the Pi GPIO 5V and ground pins; don't bother with the included bulky USB or terminal block.

    The push button is soldered to the reset pin of the Pi (to be used in emergencies) while the small switch can be mounted to fully power on/off the Pi zero - remember to shutdown where possible to avoid SD card corruption.

    The LiPo sits in the other shell piece of the controller. It's a snug fit (tucked under the controller PCB) so make sure you have removed all traces of the internal structure it would clash with.

  • 3
    Step 3

    Step 3: Assemble and test

    Taking the PCB check the traces match up to the colours below and then solder directly to the Pi. Add a blob of hot glue to act as strain relief on the wires once you have checked it all works.

    NES PinWire ColourSignalGPIO
    1WhiteGroundAny GND
    4BrownDataGPIO2,3,4 or 7
    7Red+V+3V3 (NOT +5V)

    Plug the LiPo in, and tape all wires safely in place with electrical tape.

    Reinstall the controller buttons and screw the controller PCB back in place, ensuring that it sits true.

    Clip the two halves together, you may need to make some adjustments to make sure no wires are trapped and the case closes without bulging. Reinstall the screws (you can drill out and use some of the unused ones if you want) and the hardware mods are done!

View all 5 instructions

Enjoy this project?



Sam Hanley wrote 03/17/2017 at 02:16 point

Thanks so much for the info on the controller (and sorry for taking so long to say so, hah!)! One more question - do you remember where you sourced the 850mAh battery from? I ordered what looked like the exact same ones from Sparkfun, but they seem to be wider than the one you had, and there's no way it's fitting in the controller. Hoping I don't have to drop down to a 500mAh. Thanks in advance! :)

  Are you sure? yes | no

P.Mo wrote 05/20/2017 at 20:18 point

I got it from I did a lot of searching till I came across one that would fit.

  Are you sure? yes | no

P.Mo wrote 01/29/2017 at 18:03 point

It was called '8 Bit Gaming Controller Joystick for Nintendo NES System Console Classic Style' from

  Are you sure? yes | no

Sam Hanley wrote 01/29/2017 at 15:01 point

Great job on this awesome build! Question for you - do you know what the brand is of the "cheap NES controller" you used for the build? I've tried a couple but the PCB in the ones I've found is way bigger, meaning I'm not able to fit all the other components around it. I'd appreciate any info you've got!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates