Welcome Guest [Log In] [Register]
Welcome to Nintendo 64 Forever. We hope you enjoy your visit.


You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free.


Join our community!


If you're already a member please log in to your account to access all of our features:

Username:   Password:
Add Reply
  • Pages:
  • 1
  • 2
N64 Thumbstick Test Program
Topic Started: Jul 31 2012, 11:48 AM (8,953 Views)
sanni
Member Avatar
Senior Member
I ported the ControllerTest program to Arduino/Processing so now you can use it on your PC without the need of an emulator.
My goal is to create a portable N64 controller tester with just the Arduino and no PC but I need a LCD for the Arduino first ;)

There might be still some bugs especially the skipping test doesn't work very well because it updates not fast enough.

Things you need:
- Arduino Uno: http://www.ebay.com/itm/290808383264 ($15)
- Arduino Software: http://arduino.cc/en/Main/Software
- Processing Software: http://processing.org/download/
- Code to program to the Arduino(N64_Arduino.zip): http://www.instructables.com/id/Use-an-Arduino-with-an-N64-controller/step2/Unpack-and-Run-the-Code/
- Code to open in Processing: http://dl.dropbox.com/u/20912715/N64/ControllerTest_PC.zip
- 3 wires to connect the N64 controller to the Arduino
- a N64 controller
- a PC
- one usb cable, the same you use for printers

Step 1:
Download and run the Arduino software.
Plug your Arduino into your PC's usb slot and manually install the drivers in the device manager like so:

Step 2:
Open the N64_Arduino project and upload it to your Arduino. Close the Arduino software.

Step 3:
Use 3 wires to connect your N64 controller with your Arduino. See here:
http://www.instructables.com/id/Use-an-Arduino-with-an-N64-controller/#step1

Step 4:
Open and run ControllerTest in Processing.

Step 5:
Test your Controller.
Edited by sanni, Sep 3 2014, 02:33 AM.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
ChemicalJoy
Member Avatar
Newbie
I just want to say that I have found this thread extremely informative and am very impressed with the program.

What's the chance I could ship a control stick off to someone to be tested and recorded, seeing as I don't have a flash cart?

It's not a pressing need. I just ruined my last franken-analog stick.
My ModBlog- http://fixmodbreak.blogspot.com/
I am a Junior in Chemical Engineering at Iowa State University
I got my first N64 for free by mailing in Kool-Aid stamps.
I have an overclocked 64 with switchable clock rates and new heat sinks plus case fan.
First priority is respecting the N64. I'm not a fan of portables, or accidentally "killing" them.
All mods should either improve or maintain the playability of the N64
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
Here is a guide on how to use the program with the MESS emulator. Still it's advised to run it on a real N64 to have the best result.

First of all I'm using a Raphnet N64 to USB adapter .
Then I download the lastest MESSui and the N64.zip with the bios files.

Next I create a Mess folder and inside that a roms folder. The N64.zip goes into the roms folder, the mess executables into the Mess folder.
Finally I right-click the Mess folder, select Properties and under Security I allow Full Access to the folder for non-administators. In this case I tick "Vollzugriff"(Full Access in english) under "Benutzer(Antec\Benutzer)" (which means User(*name of your PC*\User) in english).
Without this Mess can't write its setting files.
As an alternative you can run the messui as Administrator.
Posted Image

Now I launch DXTweak to make sure that Windows didn't mess up the analog range and that the Controller is actually working. Both Raw and DirectInput must output the same values. If not then reset to device defaults.

Finally I launch Messui.exe. In the list I search for Nintendo 64 and right-click on it, then I select "Properties". Under Controller I disable the deadzone and set the saturation to 1.00(this will give you the full analog range of your N64 controller)

Now I press ok to save the settings and exit the menu, then I double click on Nintendo 64 to launch the emulation.
You have to type OK twice then hit the ENTER key.

Next in the menu bar I select "File" and unselect "Full Screen" just to make the mess window a little smaller.
Next I click "File" then "Show Tab Menu".

Here I choose "Input (this System)" and configure my button layout. I select the key I want to configure with the mouse, hit the DEL key on the keyboard to clear it.
Then double click on it and press the button on the N64 controller I want to use.
After I have setup all the keys I choose "Return to prior Menu" and then "return to system".

Now under devices -> cartslot I mount the controllertest rom.

Once the program is running I hold both the L+R+START buttons at the same time to reset the calibration of the analog stick. This works on a real N64 too and also in any N64 game. It's even pointed out in the manuals of the games.
Edited by sanni, Sep 3 2014, 02:26 AM.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
And here I have made a small standalone controller tester:

Edited by sanni, May 5 2016, 02:24 AM.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
Sourcecode: https://www.dropbox.com/s/1mu28v66ozw6gvb/ControllerTest_NOKIA.7z?dl=0

Edited by sanni, Apr 3 2016, 09:33 AM.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
Roboplodicus
Member Avatar
Newbie
Hey what do I do if the raw and the direct input value don't match for my controller?
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
You need to reset the calibration. Start DXTweak and click Device Defaults.
Edited by sanni, Sep 3 2014, 02:16 AM.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
spinal
Newbie
Old topic I know, but what are some good values for the diagonals (x,y)? I can see that 84/85 is a good 90degree.
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
Have a look into this thread, Linus did measure a new oem stick including the angles:

Posted Image
Edited by sanni, Apr 3 2016, 09:38 AM.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
cell
Member Avatar
Newbie
First time seeing this thread.
Been using this program on flashcart, for my controllers for a while now and its been extremely useful.
I hadn't realized that the sanni posting here, was the same sanni credited on the test program start screen :facepalm:
So just stopping by to say thanks, sanni :yeah:
Offline Profile Quote Post Goto Top
 
Roboplodicus
Member Avatar
Newbie
where did you get the lcd for the portable tester?
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
I bought it here: http://www.ebay.com/itm/140730843931
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
Roboplodicus
Member Avatar
Newbie
where did you get the case you have it all in?
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
This is the case: http://www.pollin.de/shop/dt/Mjk5OTM1OTk-/Bauelemente_Bauteile/Gehaeuse/Kunststoffgehaeuse_021_002_163.html
http://www.pimfg.com/Product-Detail/EC-021-002-163
http://shop.rabtron.co.za/datasheets/POT1A.pdf

And inside there is an Arduino Pro Mini, an AMS1117 3.3V voltage converter and a 9V battery.
Edited by sanni, Apr 28 2016, 12:23 AM.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
LinusHofmann
Member Avatar
Senior Member
Oh yeah that reminds me. My tester has been mostly sitting pretty among my test controllers but I went to test a stick yesterday and the 9v battery is dead. Is there a chance there's a parasitic current draw even when main switch is off? Or was it just an old battery?

Posted Image

20th Anniversary Joystick Refurb - Stainless steel and Teflon components!
My Twitter
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
I don't remember where I put the switch to be honest, normally you would put it directly in the positive wire from the battery so that the battery can't be drained in the off position. But it could be that I messed up.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
LinusHofmann
Member Avatar
Senior Member
sanni
Apr 28 2016, 07:42 AM
I don't remember where I put the switch to be honest, normally you would put it directly in the positive wire from the battery so that the battery can't be drained in the off position. But it could be that I messed up.
I'll investigate and let you know :)
Posted Image

20th Anniversary Joystick Refurb - Stainless steel and Teflon components!
My Twitter
Offline Profile Quote Post Goto Top
 
Roboplodicus
Member Avatar
Newbie
sanni
Apr 28 2016, 12:14 AM
And inside there is an Arduino Pro Mini, an AMS1117 3.3V voltage converter and a 9V battery.
Finally everything came in for my own portable tester today. I picked these guys up for the voltage converter and I was wondering if I could use one to mod a arduino uno to run at 3.3v?

http://www.ebay.com/itm/191843394741?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
With an Arduino Uno, you don't need to mod it to 3.3V because it already has a 3.3V voltage regulator on board. Just plug the red wire from the controller into the 3.3V pin of the Arduino.

The AMS1117 is only needed for the Arduino Pro Mini because it doesn't have one by default.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
Roboplodicus
Member Avatar
Newbie
sanni
May 11 2016, 05:07 AM
The AMS1117 is only needed for the Arduino Pro Mini because it doesn't have one by default.
I was just reading up on the Pro Mini and it actually does have a 3.3v voltage regulator on board

https://www.arduino.cc/en/Main/arduinoBoardProMini

"The Arduino Pro Mini can be powered with an FTDI cable or breakout board connected to its six pin header, or with a regulated 3.3V or 5V supply (depending on the model) on the Vcc pin. There is a voltage regulator on board so it can accept voltage up to 12VDC. If you're supplying unregulated power to the board, be sure to connect to the "RAW" pin on not VCC."

buying the VRs wasn't a waste though because I need them for the lcd still. Just finished cutting out all the holes in the box for everything, managed to break an XActo knife blade doing it that was exciting! Got the Pro Mini programmed now I just need to bread board test contraption and if it works manage to fit it all in the same tiny box Sanni did, though I'm not going as hardcore as him as I've got the N64 controller input coming out of the thing with it's wire.

Posted Image

Edit: Using an Arduino Pro Mini the pin out the same as the uno except the 3.3v comes from the voltage regulator? Because they both use atmega328's, does the clock speed difference for the 3.3v version I'm using change anything?
Edited by Roboplodicus, May 12 2016, 10:25 AM.
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
There are two Arduino Pro Mini variants:
- 5V 16Mhz
- 3.3V 8Mhz

Only the 16Mhz version is fast enough to read the N64 controller. The 16Mhz version won't have a 3.3V regulator on board just a 5V one so to supply power to the N64 controller you need the AMS1117 voltage converter.
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
Roboplodicus
Member Avatar
Newbie
sanni
May 12 2016, 11:32 AM
There are two Arduino Pro Mini variants:
- 5V 16Mhz
- 3.3V 8Mhz

Only the 16Mhz version is fast enough to read the N64 controller. The 16Mhz version won't have a 3.3V regulator on board just a 5V one so to supply power to the N64 controller you need the AMS1117 voltage converter.
Well apparently I got the wrong one...now to order the 5v 16Mhz one...
Offline Profile Quote Post Goto Top
 
Roboplodicus
Member Avatar
Newbie
Haha I am victorious!

Posted Image

I decided that while I was waiting for the arduino pro mini 5v to go from New York to California I'd use one of the arduino unos I had laying around for the portable thumb stick tester. Now to shove it into a hockey puck display case(visible in the background) I found at an awesome place called The Container Store(which is indeed a store devoted to selling all manner of storage containers!!!!111[mind blown]). Once done I'm going to be testing all my thumbsticks soooo hard(tehe!).
Offline Profile Quote Post Goto Top
 
sanni
Member Avatar
Senior Member
Nice :yeah:
Posted Image

Posted Image Posted Image Posted ImagePosted Image
Offline Profile Quote Post Goto Top
 
Roboplodicus
Member Avatar
Newbie
So the arduino pro mini I ordered came in a couple days ago finally and I was able to program it and solder everthing together and fit it in the same tiny box Sanni fit his in(which was a bit of a challenge) so here is the final product. Also here it was in it's transitional form using a arduino uno and a much larger plastic box.

Posted Image

Posted Image
Offline Profile Quote Post Goto Top
 
SmashControllers
Newbie
sanni
Jul 31 2012, 11:48 AM
I made a little program for all the analog stick fans out there :toad:



You need a N64 flashcart or the MESS emulator to run it.
Download: https://github.com/sanni/controllertest/tree/master/N64-Port

With it you can detect if your analog stick is still any good. Or if you bought a replacement if it skips steps and so on.

I hope you like it :yeah:
How come Mine only works when the controller is connected to 5v and the LED is connected to 3.3v???
Offline Profile Quote Post Goto Top
 
radensb
Newbie
Is there a way to get this controller test ROM to work with EmulationStation in RetroPie?
Offline Profile Quote Post Goto Top
 
deal
Newbie
Can you use this program with Project64 on the computer?

I think it's a waste to get an N64 Flashcart as there are very few real good games for the system. Only advantage is not having to rely on a battery for your game saves. Or having to mess with replacing batteries on all of your N64 games.

Hopefully Nintendo next year does an N64 mini that has smooth running emulation that you can hack and put other N64 Roms on it. Would also be very nice to get a new official Nintendo N64 controller. Though not sure if a 3rd party would be able to make an adapter so you could run that controller on a real N64 and it work just like if you had an OEM controller plugged in.
Offline Profile Quote Post Goto Top
 
James-F
Member Avatar
Newbie
With the latest MAME 0.192 it is stuck in the title screen...any idea why?
Offline Profile Quote Post Goto Top
 
James-F
Member Avatar
Newbie
I can't edit yet so I'll double post.

It seems that the ROM only works correctly with -128 to 128 displayed ranges up to MESSUI 0.162, anything above and the displayed range numbers are scrambled or freezes at title screen.

I have adjusted perfect 85 ranges with DXTweak2 for my DS4 controller in MESS 0.162 and tested in Retroarch with Parallel64.
Mario doesn't go full speed,, it seems that Retroarch N64 emulators are already optimized so that the full analog range is mapped to +-85 N64 range, but it may not be the case in other emulators like Project64.

It would be lovely if @sanni could fix the controller test rom to run on more emulators other than CEN64 (MESS) as it is a very useful tool indeed.
Offline Profile Quote Post Goto Top
 
ZetaBoards - Free Forum Hosting
Create a free forum in seconds.
Learn More · Sign-up Now
« Previous Topic · Modding, Repairs & Custom Projects · Next Topic »
Add Reply
  • Pages:
  • 1
  • 2