Nintendo Controller Noise Maker

AVR inside a Nintendo controller that makes sounds when the buttons are pressed.

Similar projects worth following
I'm placing a ATtiny85 in a Nintendo game controller with a speaker. I'll be cramming in a power supply for both the controller and the chip and will use the buttons on the controller to trigger playing sounds. I'm sure it will be a challenge to fit everything into a single controller case. My reason for taking on this project is that my infant son loves to play with the controllers for my old game systems and press all of the bottoms. Turning a controller into a cord-less noise maker will hopefully give him something fun and durable to play with.

Programming an ATtiny85

I made an Arduino shield for programming ATtiny85's.  I'm programming them by loading the Arduino ISP example and compiling/pushing with an Arduino as ISP programmer from the Arduino IDE.  A instrucables project that looks similar to the one I used is here:  My shield doesn't look exactly like the instructables as it was based on an instructable that is no longer available.


Working with NES controllers

After seeing that I was getting false positives from the knockoff NES controller I build a NES controller adapter so that I could test controllers without soldering in connectors or modifying the controller in any way.  I started by opening up an old Nintendo and was pleased to find that the controller was just wired up to a connector.

I was able to disconnect this without damaging the plug at all and used female d-sub connectors on an adapter board to make a connector for the Arduino.

This pinout reflects postings from this forum link,8481.0.html

  • Finished!

    Ben09/13/2014 at 08:42 0 comments

    I'm finished!  At least except for the actual sounds.  I haven't updated the sounds getting triggered by each button but I can always do that a bit later.  I found that a great option for a speaker is a speaker from a Dreamcast VMU.  I know that's completely random but I happened to have a dead one laying around and I found that the sound was pretty good.  I drilled two holes in the front of the controller and that seemed to be about perfect.

    As for the controller, I had to cut out several of the plastic columns on the inside of the casing.  I managed to cut out enough that I could fit everything in.  It was a tight fit...

    and here's right before I close it up

    And here's the finished project

    I had a really hard time getting everything to lay flat.  I used a lot of wiring to increase the amount of play I'd have when laying everything down and then used hot glue to keep things in place.  That seemed to work well but the battery just never seemed to fit.  After some work I managed to find a good way to close the case and not have it appear to be bowing around where the components were.  I'll plan on letting my son play with this tomorrow and I'll give an update on how he likes it.

  • Proof of concepts part 2

    Ben08/21/2014 at 05:59 1 comment

    I decided to skip the Arduino UNO prototype and move directly to my ATtiny85 prototype.

    I'm still new to Fritzing....

    and the result 

    What I found was that everything worked well.  I ran down a few issues with the original code to read the shift register and determined that some delays were not necessary.  My code was based off of this design discussed in an Arduino forum.,8481.0.html  Serial output has continued to elude me and I don't have an oscilloscope so I must settle for what I can get; for what it's worth I think it's fun and I hope my kid will like it.  My only complaint is that the speaker isn't loud enough.  From here I'm going to explore a few other speakers and determine how much I need to shave off of some of the components.  For example, the coin-cell battery holder needs to be half it's height to fit so some rework needs to happen.  I'll take some more pics after I carve out some room in the NES controller.

  • Going Old School

    Ben08/18/2014 at 04:33 0 comments

    After building the adapter (see project details) I was able to run side-by-side tests against an original NES controller and a knockoff brand.  I found that a while both controllers produces accurate results, only the original controller functioned on 3.3v.  This is pretty big seeing as how using the original board mean that I would have much less space.  So, if I'm going to use the original controller, I'm all in - original board an all.  Next up, test out my adapter and the unmodified controllers with an ATtiny85 and see if I can make some noise.

  • Proof of concepts part 2 delayed

    Ben08/13/2014 at 05:26 0 comments

    First off, the knockoff controller was a bit disappointing.  The PCB uses a chip-on-board shift register and is very small leaving plenty of room for extra components, but it just doesn't have the original controller feel.  Luckily, I have a local shop that I was able to procure an original controller from.  I've done some measuring and I think I can cram all of the components into this space after cutting out the columns (see red box in image).  I'll need to use a different speaker though; I'm currently testing sound quality on a few speaks that I have laying around and will post which one I choose.  I've also decided that since I won't have a good time to work on this unit this weekend anyways that I'll wait and pick up some dead NES components from my local shop and use them to make a controller breakout board.  This is largely due to the connectivity issues I had while testing the knockoff board as the connector sockets are too large to support my male-to-male perf-board wires.  The wire size issues caused my initial test to get a lot of false positive button presses during my tests and I think it would be useful to solve this before choosing beyond a doubt which controller I should move forward with.

  • Proof of concepts Part 1

    Ben08/11/2014 at 21:07 0 comments

    First proof of concept was to use a ATtiny85 to produce sounds.  I modified the Arduino melody example to play off of a button push and programmed that into the tiny.   I powered the tiny from the 5v output of the Arduino.  After uploading I was able to successfully get the melody to play with push button.  Sorry for the spaghetti wiring, it's just a speaker hooked to pin 3 and a push button hooked to pin 2.

View all 5 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

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