borti4938 / n64adv2_pcb

HomePage
Other
46 stars 0 forks source link

N64 Advanced 2 (PCB)

This repository contains all you need files to build your own DIY N64 Advanced board. Firmware is supplied in another repository.

Please don't ask me for selling a modding. I either sell some prototypes on some forums marketplaces (which is very unlikely) or I don't have any of the boards. This is a complete DIY modding project. Everybody is on his own here.

WARNING: This is an advanced DIY project if you do everything on your own. You need decent soldering skills. The FPGA ad Video transmitter have 0.5mm fine pitch with 144pins and 64pins, respectively, and each has an exposed pad below the IC, which has to be soldered to the PCB. Furthermore, the clocking chip is in a 24-QFN package where the pins are partwise below the IC. It also has an exposed pad. Next to it on the board there are some SMD1206 resistor and ferrite bead arrays.

One note on KiCad: please do not use version 7 and stay with version 6.xx.yy, if you want to edit the PCB. I have to adapt the design files first before there are working as intended in version 7. Thanks!

Table of Contents

Checklist: How to build the project

PCB Specs

[1] You may have to vary FPC thickness and stiffener thickness depending on the prototype service you are going with. E.g., on my last order I opted for 0.12mm PCB thickness and 0.225mm polyimide thickness.

Assembly

If you have all components available, you can start assembly your board. You can use the interactive BOM, which helps you organizing your work. It is just a matter of time and effort to assembly everything.

Note that the FPGA has an exposed pad, which needs a good connection. Otherwise, the FPGA will not boot at all. Preheat the FPGA with a hot air gun and solder the exposed pad from bottom if you do not use solder paste. If you only have your solder iron, apply heat from bottom. You must be patient at this point as there are large GND planes around the FPGA. You may check the FPGA temperature with your finger on the top side (once it gets too hot to touch, you may stop for soldering for a moment). Do the same with the other chips which have an exposed pad (U2 and U4).

If you populate X2 with the THT variant, which is the JTAG connector, please short the pins such that they are flush at the bottom side. Otherwise, the PCB might be lifted in its position which produces unnecessary mechanical stress on PCB and HDMI connector.

Using non-clean flux (rosin based) is obviously recommended. Even though it is "non-clean" I recommend cleaning everything afterwards (just for the visual finish).

Please double check everything for shorts once you finished your work. Very important is that the power supply trace do not short to GND.

Installation

1. Open the console


(image by Zerberus (circuit-board.de user))

2. Preparation

It is possible to do a cut or a no-cut installation. You will need the following parts for it:

  1. N64Adv2 PCB
  2. Flex Cable
  3. Two to four of washers (M3)
  4. Thermal pad
    • Cut Mod: appr. 1mm to 1.5mm thickness
    • No Cut Mod: appr. 2.5mm to 3.0mm thickness
  5. 3D printed parts:

2.1 Shell Preparation Cut Mod

The bottom shell needs a cutout at the MultiOut port.

Mark the place you need to file with either the N64Adv2 PCB or the 3D printed MultiOut replacement.

File down the shell within your markings until the N64Adv2 sits flush on the shell floor. Consider a tiny space below the HDMI connector. Cleanup the shell and place the 3D printed parts into the shell. Make a final fit test as shown.

2.2 Shell Preparation No Cut

There is no need to cut the shell at all with this variant. All you need is to remove the bottom RF shield from the N64 mainboard.

Place all 3D printed parts and make a fitting test as shown.

3. Solder Work

You have the options to either install everything with casual installation wires or using flex cables. This is just a trade-off between personal installation effort and price. Personally, I recommend using the flex cable. Also with the flex cable you have the option to use a fully custom flex or a partial flex which just have a FFC connector on it to run a FFC cable from N64 to N64Adv2.

The instruction shows the installation with the fully custom flex. The partial flex installation is similar, but not shown here. The wired installation is not shown and not documented at all! (at least for the moment)

3.1 Prepare the Flex Cable

The flex cable will be routed through the RF shield. Close to it there are some capacitors. Gently bend the flex cable between resistors and protection area (stiffener at top and bottom) as shown. This relaxes routing with as low stress on the flex cable as possible.

If you opt for the partial flex, postpone this step until you have the partial flex installed (after step 3.2). Measure where the FFC cable needs to be bend. Apply some insulation tape for cable protection behind the bending area.

3.2 Flex Cable Installation

Place the flex cable to the RCP-NUS output pins 6 to 28 as shown. Put the solder area on to of the pins. (However, putting them in front is also possible.)

Secure the cable with some kapton tape or with two solder joints. Make sure that solder pads and pins are perfectly aligned. The better the alignment is the easier is the solder work.

Apply solder to all pins. Double check for shorts and good connections with a continuity tester of a digital multimeter.

Solder 3.3V, 5V, Reset and Controller legs to the N64 as shown.

Short summary:

3.2a Flex Cable Version 20231105 (and later)

With Version 20231105 the flex cable was redesigned at the ends to controller and reset connection at the PIF-NUS.

Changes were:

4. Testing Installation

At this point it is a good idea to test your installtion.

First you should check for some obvious short at the power rails, e.g. between 3.3V and GND, and between 5V and GND. If the N64Adv2 board is connected with the flex, you can simply use the input pads on the N64Adv2 board.

Insert a game cartridge, connect HDMI and power, and turn on your N64! Important: If you do not have heatsinks attached to your N64, only test for a brief moment.

Obviously, the firmware of the N64Adv2 must be flashed to the FPGA.

If you see a picture with game output and here some game audio, then everything might be ok. It's a good idea to run the debug-screen for a quick check. If something is not ok, the N64Adv2 hardware should boot into the debug screen by default. Then you have to go for debugging your installation.

Additional information on flashing the firmware and how to debug with the debug screen, can be found the firmwares repository.

5. Put Everything Together

Secure your installation from shorts to the top RF shield with some insulation tape. There is a risk for shorts where the controller leg of the full flex is routed. Everything else is safe.

Place some washer (about 0.5mm to 1mm height) at the screw spots left and right of the N64Adv2 flex cable. From my experience it is easier to secure them with some tape. Close the RF shield of the N64 then.

Now connect the N64Adv2 PCB to the flex cable. For the Cut-Mod, also place the bottom RF shield into its place of the N64. The RF shield does not fit in the no-cut mod variant.

Put the thermal pad on top of the FPGA (U1) of the N64Adv2 board. This helps with heat dissipation and holds the PCB in its place.

Put everything in the bottom shell. Do not forget 3D printings.

Secure the N64 with two or three screws and make a small test to see if everything is working. Do not forget to put in the Jumper Pak or Expansion Pak, otherwise you won't see a picture at all.

If everything works fine, close the whole shell.

Installation with UltraPIF

This guide assumes that the UltraPIF will be installed after the N64Adv2. However, other installation orders are possible, too - i.e. UltraPIF first and then N64Adv2 or both alongside. There are not described, here. For the ease of debugging, installation one after the other is always recommended.

Also, it is not described, how to open and close the N64.

1. Remove PIF-NUS

To remove the PIF-NUS, remove reset and controller connections, first.

The remove the PIF-NUS.

2. Install UltraPIF Adapter Board

Put the UltraPIF board into its place. Connect clock and mode wires and if you want, the RGB led board. More details on that can be found in the UltraPIF Repository.

3. Connect Flex Cable

Once the UltraPIF Adapter sits in its place, you can reconnect the reset and controller connections of the flex cable.

For the controller connection, you can use the CON pad on the adapter.

For the reset connection you have to go for pin 27 on the adapter. DO NOT USE THE RST PAD! as it acts as an input only. Fallback functions won't be available if you do so. Check the connection for shorts to adjacent pins.

4. Done

Put the UltraPIF on the UltraPIF Adapter board.

Jumper Description

IMPORTANT NOTE
Most jumpers are for development reasons and do not need to be touched at all. This section is only for documentation purposes.

On main N64Adv2 PCB

SJ1 to SJ4 (IO power supply for FPGA Bank 6 and 7)

Section is outdated. Jumpers had been removed with version 20231119

Bank B6 and B7 needs 2.5V VCCIO for current implementation. Since N64Adv2_202200415, these jumpers are closed by default at 2.5V. Earlier prototypes need a solder joint at 2.5V. Do not touch 3.3V jumper as current implementation runs IO speed over specifications then.

SJ5 (5V power via USB port (X5))

Section is outdated. Jumper has been removed with version 20231119

SJ6 (3.3V power via JTAG programmer X4)

Section is outdated. Jumper has been removed with version 20231119

SJ11 (VI-DeBlur feedback)

SJ31 (SRAM A12)

Section is outdated. Jumper has been removed with version 20231119

On flex PCB

SJ1

Section is outdated. Jumpers had been removed with version 20231105

J3