Uze64 Adapter: Difference between revisions

From Uzebox Wiki
Jump to navigation Jump to search
Line 65: Line 65:
You will need epoxy and I highly recommend getting a cheap hot glue gun. I recommend the liquid type of epoxy though the thicker types can also work. If you might be doing some other projects like this in the future, I would recommend keeping both types on hand. The thicker type will not run and this can be very helpful when you are fastening things to the controller case that you do not want epoxy leaking into like buttons/etc. You can actually build small "dams" or ridges to hold the liquid out of the places you don't want it, or simply use caution and some cotton swabs to ensure you keep those areas clean. Possibly a better method is to construct these ridges out of hotglue. It is also very handy to quickly put a dab of hot glue to hold something where you want, then epoxy over the top. Hot glue will stick to plastic or PCBs, but it is easy to pull off cleanly with no residue after it is of no use to you. You can drop the glue, then a couple seconds later it is cool enough to touch and you can form it with your fingers to the desired shape. DO NOT do that with epoxy, you will regret it!!
You will need epoxy and I highly recommend getting a cheap hot glue gun. I recommend the liquid type of epoxy though the thicker types can also work. If you might be doing some other projects like this in the future, I would recommend keeping both types on hand. The thicker type will not run and this can be very helpful when you are fastening things to the controller case that you do not want epoxy leaking into like buttons/etc. You can actually build small "dams" or ridges to hold the liquid out of the places you don't want it, or simply use caution and some cotton swabs to ensure you keep those areas clean. Possibly a better method is to construct these ridges out of hotglue. It is also very handy to quickly put a dab of hot glue to hold something where you want, then epoxy over the top. Hot glue will stick to plastic or PCBs, but it is easy to pull off cleanly with no residue after it is of no use to you. You can drop the glue, then a couple seconds later it is cool enough to touch and you can form it with your fingers to the desired shape. DO NOT do that with epoxy, you will regret it!!


Ok now to start, you need to fully disassemble the controller and put all the components into a container for safe keeping. The first consideration to take is how you will later program this chip. Normally you might install a full ISP 6 pin plug like the Uzebox console has, but I found this is significantly more work to route wires. Instead we can rely on the fact that all the wires required to program are also connected to the SNES plug wires...except the reset pin. So if we can just give access to the reset pin without disassembling the controller, we can plug wires from our ISP to the controller plug and this extra plug and easily program it. This is the method that will be shown.


If you are doing this at some point in the future that the firmware is "finalize" you could take a chance here and simply program it first before installing it. I would not recommend this but it is an option. You could also probably fit a DIP8 socket and solder to that instead allowing you to take the chip out later and reprogram it. I think this is not very convenient, requires extra parts, and you might struggle to find enough clearance for the added height.
Ok now to start, you need to fully disassemble the controller and put all the components into a container for safe keeping. The first consideration to take is how you will later program this chip. Normally you might install a full ISP 6 pin plug like the Uzebox console has, but I found this is significantly more work to route wires. Instead we can rely on the fact that all the wires required to program are also connected to the SNES plug wires...except the reset pin. So if we can just give access to the reset pin without disassembling the controller, we can plug wires from our ISP to the controller plug and this extra reset plug to program it. This is the method that will be shown.
 
 
If you are doing this at some point in the future that the firmware is "finalized" you could take a chance here and simply program it first before installing it. I would not recommend this but it is an option. You could also probably fit a DIP8 socket and solder to that instead allowing you to take the chip out later and reprogram it. I think this is not very convenient, requires extra parts, and you might struggle to find enough clearance for the added height.
 
 
Now that you have the controller apart you will want to cut off excess controller wire and leave about 6 inches to play with. Carefully strip off the sheathing to expose the individual wires. We will trim these down later when we have the wires routed and our location for the MCU decided. You should see something similar to this when you are done:
 
[[File:disassembled_n64.jpg]]
 
 
Now we need to prepare our MCU to fit inside for easy soldering. Trim about 1/8" off the legs of your DIP ATTiny85 then bend them over like this:
 
[[File:bent_pins_attiny.jpg]]
 
Now we will need to analyze the best spot to secure our MCU to. The best spot is the place that has enough clearance to close the controller back up properly while also allowing the wires to be routed in an easy manner that is not too close to posts, screws, or moving buttons. This may vary if you are using a different model controller. In this example I determined this was the best location for it. It might appear easier to put this into the bottom half of the shell, but I did not want too many wires stuck to the bottom that might make it more difficult to reassemble or take back apart later.
 
[[File:mcu_location.jpg]]


==What It Is==
==What It Is==

Revision as of 07:21, 14 December 2015

Overview

This page will describe 2 general methods to use a Nintendo 64 controller on your Uzebox game console. This is done with an adapter utilizing a small, cheap, and low power ATTiny85 MCU(a 25/45 may also work, TBD) with no external parts(even a pin left over for future use). This uses firmware on the ATTiny in a similar manner to the Uzebox Keyboard, which I would recommend reading through first if you have never done something like this. Along the way I will discuss some pitfalls as well as pros and cons to different options you can take on your own custom build. This could take anywhere from 1 hour to 6 if you get real crazy with case modifications and such!


Before you start, though this is not the most dangerous project out there, keep in mind these methods recommend using chemicals that can be dangerous to your health. They can also easily ruin things they leak on, and your significant other might not be so understanding at that point. You should wear appropriate eye protection, gloves, and respiratory protection. You should also do this in a well ventilated area. This can all be had very cheaply from many local stores. Do not skimp on this gear; you can reuse it for projects in the future. And if you think I am kidding about gloves for epoxy, just believe me it somehow always gets on your fingers without them and it will drive you mad! For conciseness, I wont repeat things in different segments. READ AND UNDERSTAND THE ENTIRE TUTORIAL BEFORE YOU DO ANYTHING PLEASE!


*Parts Required*
*1 N64 controller - ~$8.50 shipped
*1 ATTiny85 (25 or 45 may also work, get the 85 to leave room for the future expansion) - ~$3 shipped
*1 SNES controller extension cable - ~$2.50 shipped
*1 Epoxy Adhesive(recommend those labeled to bond with plastic) - ~$4.50 shipped
*1 N64 controller extension cable(optional, depending on your build choice) - ~$2.00 shipped
*1 standard female pin(optional, depending on your build choice) ` ~$1.50 for 40 shipped
*total cost off ebay ~$20.00-$23.00 USD, cheaper if you have some of this stuff already!

Design Choices

Since this requires additional circuitry, you must decide where you want to put it. Essentially you have 2 general choices in a similar manner to the Uzebox Keyboard adapter. You can place the circuitry inside the N64 controller, or you can put it inside the SNES plug. The circuitry is minimal, no parts besides the ATTiny and extra wire, but it can be a challenge for the average hobbyist to do either. I would say this is harder than the keyboard adapter if you want to place it inside the controller. I also believe it can, depending on how you do it, be easier than the keyboard adapter if you decide to go the SNES plug route for placement of your MCU. First, some pros and cons of both:

    • Inside Controller**
      • Pros***
  • arguably a cleaner and more minimal solution
  • less people will have it, more 3L1T3 if you will :)
  • can be done with only 1 N64 controller, 1 MCU, and 1 extension cable
      • Cons***
  • must disassemble and reassemble controller components multiple times
  • great care must be taken during fitting and placement of MCU and wiring
  • higher potential for failure
  • likely much more time investment
  • more work to replace the joystick in the future


    • Inside Plug**
      • Pros***
  • easier and faster!!
  • can be done with only 1 N64 controller, 1 MCU, and 1 extension cable(depending on choice)
  • much easier to replace a worn joystick
  • you can plug any N64 controller into the port, not just the one you built(though requires 1 extra N64 extension cable then)
  • you can have a much longer cord(requires the N64 extension cable)
      • Cons***
  • less cool than built into the controller?


So the first option is to put the MCU and wiring inside the N64 controller. I'd suggest you read this guide thoroughly before you do so; it can be more error prone than it appears at first. There is not a lot of room inside the controller and the spaces are awkwardly shaped. Great care must be taken to ensure wiring does not hinder button operation or get cinched by a screw. I don't recommend this option unless you like the additional challenge and perhaps the fact that the number of members in this club are smaller.

The second option really has 2 different paths you could take. The first would be to buy an N64 extension cable in addition to the SNES extension cable that all options require anyway. Instead of putting a female N64 controller plug into the SNES plug, which requires some fabrication, instead cut the end off of it and insert the cable into the SNES plug. This way you have much more room to do your wiring inside the SNES plug since the large N64 female plug is not taking up space. This is the method I recommend; your time is valuable and this is the quickest.

The other path for the inside plug option would be to actually put the female N64 plug inside the SNES plug. The first thing that becomes obvious is the N64 plug is taller than the SNES plug. This would require fabrication to cut and graft the 2 different cases together with a rotary tool then expoxy everything together. The plastic is probably 2 different colors and so you would probably want to paint it afterwards. The end result is harder to achieve, and I recommend you do the method in the previous paragraph. If you did decide to go this route, it is arguable this is even more hardcore than putting it inside the controller!

Inside Controller Method

Ok, you are a glutton for punishment and actually want to mess around inside the controller. This guide is written using what I think is the most common controller people will get, the generic controllers off ebay for about $10 shipped to your door. Make sure you do not get 1 that has a USB end, these will not work. In fact, if you did not know that please do the easier method describe below!!(ha, just kidding, but be careful). The quality of this particular controller is actually quite surprising compared to generic SNES controllers. The joystick seems to be spring based instead of whatever powder? method the original used, so it might even last longer? The accuracy of the stick seems very high and the buttons feel crisp so I actually recommend you buy these types, perhaps get 2 in case you mess 1 up ;)

You will need to buy a SNES extension cable since you will be replacing the controller cable with this method. I recommend only buying better grade cables that specify what length they are. I would recommend 6' or more if you can find them. While you are on ebay, you should be able to find your MCU for about $1 each instead of making a Digikey/Mouser order just for those. I would just buy 10 of them personally, as they seem to be the MCU of choice for Uzebox add-ons, and you can build yourself a Uzebox keyboard/etc. with the extras!

You will need epoxy and I highly recommend getting a cheap hot glue gun. I recommend the liquid type of epoxy though the thicker types can also work. If you might be doing some other projects like this in the future, I would recommend keeping both types on hand. The thicker type will not run and this can be very helpful when you are fastening things to the controller case that you do not want epoxy leaking into like buttons/etc. You can actually build small "dams" or ridges to hold the liquid out of the places you don't want it, or simply use caution and some cotton swabs to ensure you keep those areas clean. Possibly a better method is to construct these ridges out of hotglue. It is also very handy to quickly put a dab of hot glue to hold something where you want, then epoxy over the top. Hot glue will stick to plastic or PCBs, but it is easy to pull off cleanly with no residue after it is of no use to you. You can drop the glue, then a couple seconds later it is cool enough to touch and you can form it with your fingers to the desired shape. DO NOT do that with epoxy, you will regret it!!


Ok now to start, you need to fully disassemble the controller and put all the components into a container for safe keeping. The first consideration to take is how you will later program this chip. Normally you might install a full ISP 6 pin plug like the Uzebox console has, but I found this is significantly more work to route wires. Instead we can rely on the fact that all the wires required to program are also connected to the SNES plug wires...except the reset pin. So if we can just give access to the reset pin without disassembling the controller, we can plug wires from our ISP to the controller plug and this extra reset plug to program it. This is the method that will be shown.


If you are doing this at some point in the future that the firmware is "finalized" you could take a chance here and simply program it first before installing it. I would not recommend this but it is an option. You could also probably fit a DIP8 socket and solder to that instead allowing you to take the chip out later and reprogram it. I think this is not very convenient, requires extra parts, and you might struggle to find enough clearance for the added height.


Now that you have the controller apart you will want to cut off excess controller wire and leave about 6 inches to play with. Carefully strip off the sheathing to expose the individual wires. We will trim these down later when we have the wires routed and our location for the MCU decided. You should see something similar to this when you are done:

Disassembled n64.jpg


Now we need to prepare our MCU to fit inside for easy soldering. Trim about 1/8" off the legs of your DIP ATTiny85 then bend them over like this:

Bent pins attiny.jpg

Now we will need to analyze the best spot to secure our MCU to. The best spot is the place that has enough clearance to close the controller back up properly while also allowing the wires to be routed in an easy manner that is not too close to posts, screws, or moving buttons. This may vary if you are using a different model controller. In this example I determined this was the best location for it. It might appear easier to put this into the bottom half of the shell, but I did not want too many wires stuck to the bottom that might make it more difficult to reassemble or take back apart later.

Mcu location.jpg

What It Is

Programming This Beast

If you decided to wire in your own ISP plug then you don't need this section obviously. If you did the inside plug method or the inside controller method as recommended then it is simply a matter of connecting the appropriate pins off your ISP with jumpers to the SNES plug. The only ping that might be different across builds is the reset(purple line in diagram). Make sure to connect reset to whatever method you used to expose this pin, if you put an extra pin the the SNES plug(requires disassembling a second extension cable) then connect exactly as shown. It would be wise to do this test before you totally epoxy everything together while you can still make changes.

Snes isp.jpg

Now it is just a matter of programming the latest firmware found in this thread onto your device. You might also with to upload the controller tester to your Uzebox to make sure everything is functional.