Skip to the content
PCBKitNew board
4 layers100 × 60 mmECPKart64, the printed circuit board in 3D

A Lattice ECP5 based FPGA Flash Cart for the Nintendo 64

Size
100 × 60 mm
Copper layers
4
Thickness
1.2 mm
Parts
106
Nets
371
Pads
713
Tracks, vias
211, 102
Pours
37
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
16 Aug 2021
Updated
21 Apr 2022

Overview

ECPKart64 is an open-source printed circuit board by kbeckmann, from the kbeckmann/ECPKart64 repository on GitHub, published under the BSD-2-Clause licence. It is a 4-layer board of 100 × 60 mm with 106 parts on 371 nets, routed with 211 tracks and 102 vias.

It is built around the LFE5U-12F-6BG256C, SY8120B1ABC and IS42S16320F-7TL, with the XC6206P252MR among its other parts. Its parts include 33 resistors, 27 capacitors, 9 diodes, 7 ICs and 4 connectors. It belongs with the fPGA and programmable logic boards and the FPGA and CPLD boards of this library.

Main components

4

README

README.md

ECPKart64

A Lattice ECP5 based FPGA Flash Cart for the Nintendo 64

Build and load over serial

text
# First install FPGA toolchain and LiteX


# Build and load stuff
make bitstream
make load_bitstream
make load_app

# Manually write "reboot" in the terminal, in order to trigger the upload of the app

# Upload a ROM
python -m gateware.ecpkart64.uploader2 --port /dev/ttyUSB1 --csr-csv csr.csv --cic --file myrom.z64

# Turn on power on the N64

SD-Card

Currently this doesn't work properly for some reason (sd-card driver does not manage to interact with the card properly). But these are the steps normally taken:

text
# Build
make bitstream
make app

# Format and mount an SD-Card with FAT
sudo mkfs.vfat -F32 /dev/...
sudo mount /dev/... /mnt/usb

# Mount it and copy files to it
cp build/kilsyth/software/app/app.bin /mnt/usb/
cp rom.z64 /mnt/usb/

# Create boot.json with your configuration
echo '{
	"rom.z64":	0x40000000,
	"app.bin":	0x20000000
}' > /mnt/usb/boot.json

# Unmount, insert and boot. Turn on N64.

Parts

106
QtyValueFootprintReferences
18100nCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C16, C17, C30, C31, C32, C33, C34, C35, C36, C37, C38, C39, C40 +2
1510KResistor_SMD:R_0402_1005MetricR2, R3, R13, R14, R15, R16, R20, R25, R26, R27, R28, R29, R30, R31, R32
1122R_x4Resistor_SMD:R_Array_Convex_4x0603RN1, RN2, RN3, RN4, RN5, RN6, RN7, RN8, RN9, RN10, RN11
8LEDLED_SMD:LED_0603_1608MetricD2, D3, D4, D5, D6, D7, D8, D9
722uCapacitor_SMD:C_0805_2012MetricC6, C7, C25, C26, C27, C28, C29
74K7Resistor_SMD:R_0402_1005MetricR5, R18, R19, R23, R24, R33, R34
34K7ecp5board:JP_3_0402_1005MetricJP7, JP8, JP9
3Conn_02x06_Top_Bottomecp5board:PMOD_Socket_2x06_P2.54mm_HorizontalDBG1, PMOD1, PMOD2
215KResistor_SMD:R_0402_1005MetricR9, R11
222RResistor_SMD:R_0402_1005MetricR8, R17
222pCapacitor_SMD:C_0402_1005MetricC21, C22
24u7 1Aecp5board:L_1008_1210L2, L3
25K1Resistor_SMD:R_0402_1005MetricR6, R7
2SY8120B1ABCPackage_TO_SOT_SMD:SOT-23-6U1, U3
1100KResistor_SMD:R_0402_1005MetricR1
116MHz 20ppmCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmU9
118KResistor_SMD:R_0402_1005MetricR10
11KResistor_SMD:R_0402_1005MetricR4
11K1Resistor_SMD:R_0402_1005MetricR38
11N914Diode_SMD:D_SOD-323_HandSolderingD1
13K3Resistor_SMD:R_0402_1005MetricR12
14K7Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_HorizontalJP1
1DNP Conn_01x02Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ3
1Ferrite_BeadInductor_SMD:L_0805_2012MetricFB1
1IS42S16320F-7TLPackage_SO:TSOP-II-54_22.2x10.16mm_P0.8mmU6
1LFE5U-12F-6BG256Cw_smd_bga:cabga256U8
1Logo_Open_Hardware_Smallecp5board:xil_logo_newLOGO3
1Logo_Open_Hardware_SmallSymbol:OSHW-Logo_5.7x6mm_SilkScreenLOGO1
1Micro_SD_CardConnector_Card:microSD_HC_Molex_104031-0811J2
1N64-Cartridgeecp5board:N64-ConnectorCON1
1SPI Flash W25Q128JVSIQecp5board:SOA008-150-208milU4
1SW_PushButton_Switch_SMD:SW_SPST_FSMSMSW1
1USB_C_Receptacle_USB2.0Connector_USB_Extra:USB_C_Receptacle_GT-USB-7010J1
1XC6206P25Package_TO_SOT_SMD:SOT-23U2

The 104 most common of 106 parts.

Questions

How big is the ECPKart64 PCB?

It measures 100 × 60 mm and has 4 copper layers, 1.2 mm thick.

What parts does the ECPKart64 use?

106 parts, built around the LFE5U-12F-6BG256C, SY8120B1ABC, IS42S16320F-7TL and XC6206P252MR. 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 ECPKart64 KiCad files?

From the kbeckmann/ECPKart64 repository on GitHub, at the commit this page was made from: the board is hw/RevA/RevA.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the ECPKart64 design in my own project?

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

Similar boards

  • 4 layers85 × 54 mmPergola, the printed circuit board in 3D

    Pergola

    pergola-fpga/pergola

    Low-cost ECP5 FPGA development board

    145 parts81MIT
  • 6 layers49 × 49 mmDaughterboard, the printed circuit board in 3D

    Daughterboard

    ece477-sp2023/daughterboard

    75 parts
  • 2 layers194 × 129.5 mmGateway(v2), the printed circuit board in 3D

    Gateway(v2)

    balanceTWK/WBMS

    144 parts
  • 2 layers101.8 × 57.8 mmSc64v2, the printed circuit board in 3D

    Sc64v2

    Polprzewodnikowy/SummerCart64

    SummerCart64 - a fully open source N64 flashcart

    96 parts1.2kGPL-3.0
  • 2 layers101.8 × 57.8 mmSc64v2.1, the printed circuit board in 3D

    Sc64v2.1

    Epicjoy/SC64

    This project's hardware and casing are modified based on the SummerCart64 project.

    97 parts15
  • 6 layers67.6 × 37.6 mmFpgaboard, the printed circuit board in 3D

    Fpgaboard

    apistol78/retrodack

    RetroDäck, handheld game console

    21 parts1MPL-2.0
  • 4 layers59.2 × 49.2 mmFpga ice40, the printed circuit board in 3D

    Fpga ice40

    nelgau/hicart

    This is a present for an old friend!

    126 parts1