Skip to the content
2 layers35 × 41 mmPif fpga, the printed circuit board in 3D

N64 PIF Replacement Hardware (KiCad)

Size
35 × 41 mm
Copper layers
2
Thickness
1.6 mm
Parts
61
Nets
67
Pads
390
Tracks, vias
1,043, 169
Pours
5
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
7 Jan 2020
Updated
30 Oct 2020

Overview

Pif fpga is an open-source printed circuit board by jago85, from the jago85/UltraPIF_Hardware repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 35 × 41 mm with 61 parts on 67 nets, routed with 1,043 tracks and 169 vias.

It is built around the STM32F070CBT6, W25Q128JVPIQ and 74LVC1G14Z, with the SI5351A-B-GT among its other parts. Its parts include 27 capacitors, 10 resistors, 5 ICs, 4 connectors and 1 inductor. It belongs with the fPGA and programmable logic boards and the STM32 and FPGA and CPLD boards of this library.

Main components

4

README

README.md

UltraPIF_Hardware

The UltraPIF is a replacement for the N64 PIF-NUS chip.

The PIF-NUS chip responsible for region lockout and copy protection. But it also has essential features like game controller access, cartridge EEPROM access and it includes the MIPS CPU boot rom.

The UltraPIF can replace all functions of the original PIF, but ignores the CIC and thus enables a region-free N64. In addition the UltraPIF comes with an integrated clock generator to compensate the differences of the video clocks for NTSC and PAL consoles. The UltraPIF includes an SPI NOR FLASH used to store the N64 software images. At the moment the FLASH is 16 MiB in size and 99% empty, so there could be features like backup and restore of savegame data or even direct emulation of SI (serial interface) hardware (ControllerPak, cart EEPROM, RTC). An RGB LED replaces the original N64 power LED and is used to show if the N64 is running in NTSC or PAL mode. The color is user programmable.

The project consists of custom PCBs, an FPGA design, an MCU firmware and a bunch of software for the N64 itself.

In this repository you find the KiCad hardware files.

You can find hints for assembly and installation in the wiki.

Interface Board Adapter Board LED Board Interface installed

Parts

61
QtyValueFootprintReferences
14100nCapacitor_SMD:C_0603_1608MetricC4, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C22
6100nCapacitor_SMD:C_0402_1005MetricC20, C23, C24, C25, C26, C27
610kResistor_SMD:R_0603_1608MetricR1, R2, R15, R16, R17, R18
5Jumper_NO_SmallJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2, JP3, JP4, JP5
34u7Capacitor_SMD:C_0603_1608MetricC5, C18, C19
3LED_SmallLED_SMD:LED_0603_1608MetricLD1, LD2, LD3
3TEST_1Ppif_fpga:TP_0.8mmTP1, TP2, TP3
21uCapacitor_SMD:C_0603_1608MetricC2, C21
2220Resistor_SMD:R_0603_1608MetricR5, R10
2330Resistor_SMD:R_0603_1608MetricR13, R14
2TestPointpif_fpga:TP_0.8mmTP4, TP5
110nCapacitor_SMD:C_0603_1608MetricC3
110uCapacitor_SMD:C_0805_2012MetricC1
125 MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
174LVC1G14Package_TO_SOT_SMD:SOT-353_SC-70-5U5
1CONN_01X05pif_fpga:PinHeader_1x05_P2.54mm_NoSolderP4
1CONN_01X06pif_fpga:PinHeader_1x06_P2.54mm_NoSolderP3
1CONN_01X18pif_fpga:Molex_BackFlip_18x0.5mmP2
1CONN_02X20pif_fpga:Hirose_DF12A-40DS-0.5V_2x20_P0.50mm_VerticalP1
1FerriteInductor_SMD:L_0603_1608MetricL1
1LCMXO2-2000HCPackage_QFP:TQFP-100_14x14mm_P0.5mmU2
1STM32F070CBT6Package_QFP:LQFP-48_7x7mm_P0.5mmU3
1Si5351APackage_SO:MSOP-10_3x3mm_P0.5mmU1
1W25Q128JVPIQPackage_DFN_QFN:DFN-8-1EP_6x5mm_P1.27mm_EP2x2mmU4

More from jago85/UltraPIF_Hardware

2
  • 2 layers12 × 12 mmLed, the printed circuit board in 3D

    Led

    jago85/UltraPIF_Hardware

    N64 PIF Replacement Hardware (KiCad)

    16 parts79GPL-3.0
  • 2 layers13 × 21.5 mmPif adapter, the printed circuit board in 3D

    Pif adapter

    jago85/UltraPIF_Hardware

    N64 PIF Replacement Hardware (KiCad)

    11 parts79GPL-3.0

Similar boards

  • 2 layers80 × 61 mmUsb thermo logger, the printed circuit board in 3D

    Usb thermo logger

    richardklingler/usbthermocouple

    This is my first ever published project on Github, so most probably not error free (o;

    61 parts11GPL-3.0
  • 2 layers70 × 45 mmJaguar USB tap, the printed circuit board in 3D

    Jaguar USB tap

    dgrubb/Jaguar-USB-tap

    Schematics, PCBs and firmware for an Atari Jaguar controller to USB adapter, based on an STM32F07 ARM uC.

    24 parts8GPL-3.0
  • 6 layers50 × 75 mmSandflat, the printed circuit board in 3D

    Sandflat

    apfaudio/sandflat

    Lower-cost DSP experimentation host for the SoldierCrab ECP5 SoM

    113 parts4CERN-OHL-S-2.0
  • 2 layers100 × 75 mmRTSS Power Supply V2-5C, the printed circuit board in 3D

    RTSS Power Supply V2-5C

    RadioThermal/RadioThermal_Soldering_OSHW

    Open Source Hardware 470KHz Induction Soldering Iron

    69 parts84CERN-OHL-P-2.0
  • 2 layers28 × 28 mmNikon gps, the printed circuit board in 3D

    Nikon gps

    4x1md/nikon_gps

    DIY GPS module for Nikon DSLR

    42 parts30MIT
  • 4 layers150 × 50 mmQI Charger, the printed circuit board in 3D

    QI Charger

    drewsum/QI_Charger

    A DIY QI Wireless Phone Charger

    322 parts20

Questions

How big is the Pif fpga PCB?

It measures 35 × 41 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Pif fpga use?

61 parts, built around the STM32F070CBT6, W25Q128JVPIQ, 74LVC1G14Z and SI5351A-B-GT. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Pif fpga KiCad files?

From the jago85/UltraPIF_Hardware repository on GitHub, at the commit this page was made from: the board is pif_fpga/pif_fpga.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pif fpga design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).