N64 Stick Converter PCB v2.2

Started by micro, January 16, 2013, 06:04:42 AM

Previous topic - Next topic


Hi there, Micro,

I purchased one of your boards (thanks for that, it arrived just recently)

I installed the board into one of the GC style N64 sticks and it was working great.

I noticed however, on a character select screen, that if I pushed down very slightly that it would keep holding down even when I let go.

I tried to re calibrate using the method outlined in the PDF and had similar results. So I tried to calibrate it using the dead zone one that is for the PSP slider (it didn't do anything, the stick didn't work at all). So I tried again to bridge the "NORM" pins and  re calibrate it how it is outlined in the PDF.

Anyways, long story short - (after trying to re calibrate several times) the stick now, in game, only moves left and right. Now I can't move up and down at all!

Is there any way that I can somehow restore the stick to how it came originally and start over?

Or is the circuit board now kaput?  :)


QuoteIs there any way that I can somehow restore the stick to how it came originally and start over?
Yes, turn off the console, bridge the "NORM" pins, turn on console, wait 2 seconds, turn off console, remove jumper :) After that the PCB will be in the original condition.

QuoteOr is the circuit board now kaput?  :)
Most likely the PCB is allright :D
I'm guessing the stick's faulty behaviour is caused by bad solder joints. You should resolder the the potentiometer's 6 pins, especially those 3 pins for the y-axis, which doesn't work at the moment. One of the three pins for each axis is GND which is a little bit harder to solder even more if you don't have a decent solder iron and the much practice in soldering. The ground pins are connected to the ground plane which will suck away the heat from your iron. You have to apply heat to these GND pins for a longer time compared to the other pins.

If you're not sure if your solder joints are okay, then just post a (sharp) picture of your PCB and I'll tell ya  ;D

PS: You also need good solder joints on your pinheader or you won't be able to enable calibration mode. The pinheader's middle pin is GND and because of that it's harder to solder, too.


I tried to do bridge the "NORM" pin and re calibrate that but it still wont go up/down.

Originally up/down was working fine.

I've some pictures here

Should I try and hook up the PCB to a programmer and reflash it with the HEX file you provided in the first post?

Would that certainly put it back to how it was?

It looks to me like the reset pin isn't connected up with a 10kohm resistor for reprogramming (which is why I haven't tried it). But I could be wrong. Just don't wanna break this thing further :)

Looks like I might need to order a few more boards off you when you do the second batch! In case I break some.

Put me down for 4 more circuit boards :)

Edit: After some further testing it seems you are correct. The potentiometer seems faulty - but not the solder points. The y-axis doesn't move, but I can move it with a screwdrive and it works. Where can I get a replacement potentiometer from?

What is the name of this particular part? So that I can search for it. Or is it best to find a GC controller and rip it out of there?

Thanks again for your help


Hmm, that's strange indeed!
But maybe it can be fixed.

The actual potentiometers (the orange ones) can be detached from the silver metal stick itself.
To do that you have to pinch the potentiometers sides with your fingers. If got finger nails it will be easier ;)

After that you can remove the potentiometer:

But that's only the case if you desolder the potentiometer's three pins first.

Probably it would be best if you desolder the y-axis-potentiometer's three pins and un-clip it. Maybe we can see the problem then. Is it the potentiometer or the stick itself?

But maybe the problem is that the potentiometer isn't correctly attached to the stick (but it looks ok on the pics). In that case you turn the potentiometer with your screw driver until it's in the same position as the x-axis-potentiometer. Then you can clip it to the stick.


Thanks for the advice micro.

I managed to fix it!

The problem was the little black part inside the potentiometer (it didn't sit quite right). I de soldered the y-axis and removed the problematic part. Then (to avoid desoldering everything) I replaced that part because I remembered that I had a spare potentiometer sitting around from the GC stick that I originally ordered  :)

I pulled the little black part out of that potentiometer and replaced it. Now the stick is gripping to the potentiometer without any problems!

I calibrated the stick and it all works brilliantly :D

I have put the stick inside the wireless controller that I made from your other thread... it's the ultimate combo  8)

Thanks again micro for your help and suggestions  ;D


Excellent work! Would you be able to post the schematics/code for the attiny13 version?


@cheema: Good work!  :) I'm glad you managed to fix it. But just to be sure: You didn't exchange the potentiometer itself, but only the little black plastic disc, right?

@Robodiplodicus: Yes, it's written for the attiny24A. Have a look inside the .c file, it's explained in the very beginning of the file.

@MATSTERMIND: No, absolutely not. I don't want people to use that code because you need to set the fuses so "/RESET" can be used as a normal I/O pin. It's so easy to screw up and brick the attiny13...


Yep, changed the little black disc :)

So when can we look forward to the next batch? Or are you taking orders for them now?

I'm very keen to get my hands on some more  :D


Preorders will start in about 1.5 weeks. I already got your email address so I'll let you know once preorders are open :) (I'm gonna send an email to all the interested people who gave me their email addresses)


Hey I was looking in the .c file and it says to switch the x-axis you do pin 10 "active-low" what does active low mean?

Edit: I got everything working right now, but it feels like the deadzone is too small, I saw that one of the pins was labeled "enable calibration with deadzones active low" how does that work exactly?


Active low means you got to connect the pin to a logical low level (=GND) to activate the function.

BTW, pre-orders for the next batch of the PCB's are open now. :D
Everyone on my mailing list should have received an email by now. If not, check your spam folder.


ok, hmm, so if I ground the "enable calibration with deadzones active low" pin after I calibrate the joystick there will be a bigger deadzone than would be with just a regular calibration?


No. The pin is to execute calibration with deadzones. It's intended for analog sticks that don't return to their neutral default position like the PSP slider sticks.
Please refer to the PDF to see how that works (Have you even read the PDF?)

With normal calibration there's no deadzone at all because the sticks that come with my PCB don't need a deadzone.


Ok, I see, I read the pdf earlier I should have looked back at it again.  I just finished the mod and the controller works great!!!!!!111 The Programming calibration was an awesome idea, here are some picks if anyone cares.

Thanks for all the help, now to decide if I'm going to order some/how many of these pcbs hmmm....


These look fantastic. Will you still be selling them after 8th of September? I'd love to buy 1 or 2 sometimes later.


So after playing with the new controller I made, I've decided to implement a 5% deadzone by changing micros code.  I'm using Atmel studio and here is what I've got, it's not working right now, I'm not exactly sure why any help would be appreciated.   Here's the relevant part of the code, all I need to change is the calibration function yes?

void Calibration(void){

uint16_t temp1, temp2;
uint16_t xNeutral16, yNeutral16;
uint16_t xMin, xMax, yMin, yMax;
uint16_t timerCounter = 0;
uint16_t xDeadzone, yDeadzone;
uint16_t xFaktor, yFaktor;
uint8_t nSchreibzugriffe = 0;

// wenn beide Deadzones = 0, dann neutrale
// Position einfach aus ADC einlesen
xNeutral16 = GetX();
yNeutral16 = GetY();

// alle min und max Werte zurücksetzen
xMin = xNeutral16;
xMax = xNeutral16;
yMin = yNeutral16;
yMax = yNeutral16;

while (1)

//min und max Werte für X-Achse bestimmen
temp1 = GetX();
if (temp1 > xMax)
xMax = temp1;
if (temp1 < xMin)
xMin = temp1;

//min und max Werte für Y-Achse bestimmen
temp1 = GetY();
if (temp1 > yMax)
yMax = temp1;
if (temp1 < yMin)
yMin = temp1;


// ca. jede Sekunde, aber insg. höchstens 60 Mal:
if ( (timerCounter>4000) && (nSchreibzugriffe<60) )
// Kalibrierung beendet
eeprom_write_byte(&calibrationStep, 0x00);
timerCounter = 0;

// Faktor für X-Achse:
if ( (xMax - xNeutral16) < (xNeutral16 - xMin) )
temp1 = xMax - xNeutral16;
temp1 = xNeutral16 - xMin;
// Deadzone abziehen

xDeadzone = temp1/20;
eeprom_write_byte( &dx, (uint8_t) xDeadzone);
temp1 = temp1-xDeadzone;
// Verstärkungsfaktor berechnen
xFaktor = ((MIN_RANGE*256)/temp1);
// falls Rest übrig, noch einen drauf!
if ( ((MIN_RANGE*256)%temp1) > 0  )
// im EEPROM speichern
eeprom_write_byte(&cx, (uint8_t) xFaktor);

// Faktor für Y-Achse:
if ( (yMax - yNeutral16) < (yNeutral16 - yMin) )
temp1 = yMax - yNeutral16;
temp1 = yNeutral16 - yMin;
// Deadzone abziehen

yDeadzone = (uint8_t) (temp1/20);
eeprom_write_byte( &dy, (uint8_t) yDeadzone);
temp1 = temp1 - yDeadzone;
// Faktor berechnen
yFaktor = ((MIN_RANGE*256)/temp1);
// falls Rest übrig , noch einen drauf!
if ( ((MIN_RANGE*256)%temp1) > 0  )
// im EEPROM speichern
eeprom_write_byte(&cy, (uint8_t) yFaktor);

while (1);


Any chance these are still available or will be available soon? I'll send a pm.

Majoras Mask

Hello, just wanted to say thank you very much for this!
As a serious N64 gamer it feels very good to have solid
and reliable controls now for a foreseeable future with many
hours of gaming.

I have assembled and tested one of the four kits today,
and it seems to work very nice indeed.

One question: When I calibrated and then tested a game for the first time, the "left-right-axis"
movements of the stick were inactive - so I took it apart again for trouble shooting and noticed
I'd missed to solder the pins that connect to the "left-right" pot.

But after soldering those and reassembling, it seems to work fine - but should I do the calibration again
just in case?


September 28, 2013, 10:42:02 PM #60 Last Edit: September 28, 2013, 10:43:59 PM by micro
Yes, I'd calibrate the stick again, just to be sure.

PS: All the emails I've sent to you got rejected... But because you've received the PCB's by now, it doesn't matter anymore... ;D

Majoras Mask

Cool, thanks you for a super quick reply!

I have actually played with it for some time now (have not calibrated again though, yet), and it works flawlessly, very nice, but I will take your advice and do the calibration soon.

Yeah, it's strange that the emails got rejected. I don't know why that is, sorry about that
but everything worked out great anyway ;D


Haven't gotten my pcbs, but can't wait!

Quick question...when calibrating for "4 seconds," I assume it doesn't matter how quickly that occurs, does it? I can power on the system, carefully pick up the controller, and then start rotating the stick for 4 seconds, right?

Or does the calibration need to happen quickly? Does it not start calibrating until it gets moved?

Thanks for the clarification.


Yes, turn on the console, pick up the controller and swirl the stick a few times. It doesn't have to be done quickly :)

The calibration starts immediatly after the first power-on, and then you got about 60 seconds to do your spins.


Got them today! Woo hoo!

Any tips before I get to work on them? Will absolutely be using some helping hands...but what about getting those first couple soldering points in? Can't just hold the pcb with the helping hands, because the potentiometer will fall out. Hold the potentiometer with the helping hands, and set the pcb on top? That makes more sense.

Any other tips from people that have done this before? Thanks everybody, and thanks micro!


October 01, 2013, 01:48:10 PM #65 Last Edit: October 02, 2013, 02:59:49 AM by nathan118
And one more question...the sticks on my "gamecube style" sticks look ok...but they're noticeably smaller than a gamecube stick (more like the size of the N64 stick).

I see these on ebay though...has anyone tried something like this?


For a couple bucks I'd be will to give it a try. Looks like it might have a bit larger diameter than the gamecube style N64 replacement sticks I already bought. Of course I need those for the housing.....but if there are superior sticks out there, I'm all for it. Bigger is better here as far as I'm concerned, as long as it still fits in the housing and everything.


I see you did a true GameCube stick mod micro...but your YouTube video is like 3 years old. Do GameCube sticks fit on the metal stick? And I see you said the octagonal gate needs to be replaced. Sounds like it's not a super easy mod.


I got my 4 kits today. I am in Toledo,OH so I bet other US customers will be getting theirs very soon. I modded one controller and couldn't be happier with the results! It is awesome to have a stick that is super durable and be able to do the sword spin attack in Zelda OoC.

I played some Mario Kart 64 and have to say the control is much nicer with the mod kit, even though the stock gamecube joystick worked.

For those waiting to receive and install, I recommend that you take your time and follow Micro's installation sheet carefully. I was glad to put my together and have it calibrate and work properly the first time. It would really be a bummer to have to dissemble the controller and have to fix something because one got in a hurry.

Thanks a million for a great product Micro! :)

OFF Topic: I sent you an email asking about possibility of one of these modded sticks for use in a Atari 5200 controller. Very curious if you have a moment to answer my email Micro.


I got my kits today.  These were pretty easy to do.  I really like how they turned out.  Thanks Micro.


Got my batch today. I don't have spare sticks at the moment but they'll definitely come in handy sometime!

Just wondering, does this PCB really work with any common potentiometer joystick out there such as a PSX one? You simply need to solder it on, calibrate it and it will work fine? Thanks a lot Micro!


Thanks for all your all your praises, guys!  ;D

* I don't think a Gamecube stick cap will fit the small metal shaft, IIRC original Nintendo Gamecube stick pots got big plastic metal shafts...
* Yes you can use my PCB to install a real Gamecube stick but you still have to deal with aligning and glueing in the stick + gate which can be quite time consuming ;)
* One way to prevent the stick from falling out of the PCB: Put some solder on your iron. Put in the stick, press it against the PCB with one hand. With your other hand solder one pin+pad. This will result in a not so nice solder joint but the stick can't fall out of the PCB anymore. Then solder all the other pins and also rework that first bad solder joint :)

@Catastrophic: Yes, PSX should work. But you also have the problem of perfectly aligning stick + gate.

I still got about a dozen PCB's left from that batch. So if someone needs/wants some PCB's, just drop me a line :)


Quote from: micro on October 11, 2013, 01:18:05 AM
* I don't think a Gamecube stick cap will fit the small metal shaft, IIRC original Nintendo Gamecube stick pots got big plastic metal shafts...
* Yes you can use my PCB to install a real Gamecube stick but you still have to deal with aligning and glueing in the stick + gate which can be quite time consuming ;)

You're right micro...gamecube stick needs a bigger "shaft." haha. You could probably glue it on, but trying to get it nice and straight up in the controller would be super hard, and I don't know how weird the smaller gate of the n64 controller would feel.

Have modified 2 controllers so far with your PCB...and the results are awesome! Thanks so much.



Have done 8 controllers now, and they've all worked perfectly on the first try! And I'm not a soldering expert by any means (have replaced 10-15 game batteries).

Something I tried to do was reuse the original wires. The wires that came with the new control stick...the little white piece that plugs into the board is a really tight fit, so reusing the original one is much easier. But on the new controllers, the wires aren't as long...and it BARELY reaches. In fact, if you desolder the original wires instead of cut them, they're already stripped and tinned!

So excited about these, and so glad you made them micro. Cheers!


Before I attempt this myself, I'd like to ask everyone who has gotten these PCBs; has anyone tried/had any success with fitting an XB360 pot assembly and thumbstick into the aftermarket joystick casing? What issues, if any, have there been and have you been able to rectify them in any way? I ask because the tops of the 360 sticks fit my thumb really nicely, and I'd like to do that if possible, rather than having to epoxy something together.


Just for optional information:

I got my third party N64 controllers today, made by Eaxus.
These controllers got the original N64 Joystick, but with potentionmeters.
Only 4 pins used for the joystick to the pcb, like old style N64 controllers, very easy to mod.


Quote from: DragoonC on October 27, 2013, 05:31:06 AM
Just for optional information:

I got my third party N64 controllers today, made by Eaxus.
These controllers got the original N64 Joystick, but with potentionmeters.
Only 4 pins used for the joystick to the pcb, like old style N64 controllers, very easy to mod.

Could you provide some pictures if you're able to? =)


No. Original n64 joysticks uses photodiode and rotary encoder in a completely different protocol. The controller you got, uses just a pot for each axis. And yes, pot joysticks are very easy to mod  ;)


I've successfully assembled 2 of these; however since installing the new sticks, my memory pak has been playing up. Anyone else hit this, or is it just me? (It might be the pak, it's quite old and is secondhand.)


I have 4 in use regularly and no issues with my Controller Pak. That being said, I have the old PCBs.


Quote from: hennahacker on November 02, 2013, 03:48:17 PM
I've successfully assembled 2 of these; however since installing the new sticks, my memory pak has been playing up. Anyone else hit this, or is it just me? (It might be the pak, it's quite old and is secondhand.)

Doesn't seem like the PCB of the joystick would have any effect on the rest of the controller's pcb that the controller pak goes through. Will test mine out soon and check (with newest PCB revision).


Heard about the PCB fix for the stick replacement and this thread, so I just joined the forums now. Do you still sell/gonna sell more of these PCB boards? :) and this will fix the skipping problems when you push the thumbstick right? like instead of moving from step 2 to 4-6-8-10-12-16-20-24, it will hit all steps like 1-2-3-4-5-6-7-8-9-10-etc.?