Sunday, March 22, 2015

N64 GC Replacement Stick Controller IC Swap MK2

Edit: Ahhh, didn't realise I would be hackaday'ed. I'll have the compiled hex files up as soon as I get to test the source works with the modifications. If you have an ATTiny261A spare, I'm happy for you to take the source and try it out. I should have the parts by Tuesday. In the meantime, using the ATtiny24 method still works perfectly fine, it's just a pain to solder.

Edit2: Compiled hex files -

Using the method in this previous post you are able to replace the IC on these Simple Jet boards. The issue is the ATtiny24 only comes in an SOIC narrow variant. Looking through the ATtiny catalogue there also aren't any 18 pin SOIC variants available.

It's time to get crafty again. Looking around I found the ATTINY261A-SU which is a 20pin ATtiny variant for $1.58AU each in when you order a quantity of 2 from RS including shipping. So still quite cheap (you could use the more expensive ATtiny26 too).

The problem is that the chip itself has a layout of 20 pins.

Some simple analysis of the pin orientations allows us to pick an optimal layout. With this layout we can now do the following:

Notice that the two bottom pins of the ATTINY261A (10 and 11) are not connected to any pads on the PCB. Make sure that pin 10 and 11 don't touch ground when soldering.

Here are the new pin designations:

I am still using version 2.1 of the code as before. Here is the updated source code (precompiled hex here; note the EEPROM file is labelled .eep). Programming using the guide from the original post. The fusebytes remain the same:

 * fusebyte low:    0x42
 * fusebyte high:    0xdf

Once programmed, don't power the chip on yet. It's now time to modify the PCB. You will now want to remove the components marked in red and blue on the left/bottom, and desolder the main IC. To make it easier, you can cut each leg of the IC carefully and clean up the pads once the chip is removed with some solder wick. Be careful not to lift any traces.

Now solder the newly programmed IC in the orientation shown and bridge the contacts marked in blue with solder and (pin 10 and 11 should be at the bottom and not connected to any traces as shown in the picture above). You will then need to connect a 10KOhm resistor between VCC (pin 6) and pin 10 of the ATtiny (as shown in yellow). Additionally bridge the other points marked in yellow with some hookup wire (don't connect the two wires which cross over together, they should be separate connections). Once soldered, you can add a little hot glue to pins 10 and 11 to give them a little strength if you like.

Note that there are some functional differences as outlined in the above table and the source as to how to re-calibrate and invert the X-Y axis. The re-calibration pins have changed and the invert axis pins are now enabled on active high, rather than active low (active low is the default when you follow the instructions above). If you want to invert, you just need to desolder and lift the appropriate axis pin. Please see the above table's "new code description" column for details.

You're now ready to use the modified board. On first power up, be sure follow the installation guide from the first linked thread:


  1. This comment has been removed by the author.

  2. Hey Patrice, do you mean V3 of the source code or is there a V3 simplejet PCB out there in the wild?

  3. Anyways you can come up with a schematic for this new setup and the proposed IC? I'd like to make a PCB for this and put it on OSHPark so anyone can build their own on the cheap since Micro hasn't provided any schematic or gerber files of the board which is his right after all. Thanks

    1. For reference, micro has released the gerber files here

  4. Hey blecky what would be the Fuse Byte for the ATTINY261A
    Also will you release a pre compiled version ?

    1. Hi Patrice, I do apologise, I meant to have this up sooner. I have the fuse settings somewhere at home and will get them up as soon as possible, with the precompiled hex.

    2. Great !! I will keep looling to see when you upload the compiled version and Fuse Byte settings.

    3. Hi Patrice, I went for a quick dig for my original files, but they look to be somewhere out of the way.

      Looking at this site - the fuse settings look the same as the ATtiny24 as listed on this page - (low:0x42, high:0xdf).

      I'm just installing Atmel Studio at the moment and should have the hex shortly.

    4. I have recompiled and re-uploaded the hex files now too. Hopefully everything should work for you.

  5. So hold on, how does one program this tiny 20-SOIC AVR?
    Hooking up the MOSI, MISO, SCK, VCC, GND, RESET (1, 2, 3, 5, 6, 10) pins to an USB programmer by temporarily soldering leads to the board?

    1. Ah looks like I could also order some adapter boards and solder DIP on it for 2 bucks or get the real deal for $7 with the socket on it