

ECPKart64
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
4LFE5U-12F-6BG256C
CABGA-2560℃~+85℃ 1.045V~1.155V 12000 197 3000 589824bit ECP5 Supports hot swap、Supports SEU error detection and correction CABGA-256 Programmable Logic Device (CPLDs/FPGAs) ROHSLatticeProgrammable Logic Device (CPLDs/FPGAs)SY8120B1ABC
SOT-23-6-40℃~+85℃@(TA) 1 2A 4.5V~18V 400uA 500kHz Adjustable Buck Buck Built-in Yes SOT-23-6 DC-DC Converters ROHS矽力杰silergyDC-DC ConvertersIS42S16320F-7TL
TSOPII-54-10.2mm143MHz 2.3V~3.6V 512Mbit High-speed clock synchronization、Auto precharge、Automatic column address generation、Auto refresh TSOPII-54-10.2mm SDRAM ROHSISSISDRAMXC6206P252MR
SOT-23-3L-40℃~+85℃@(Ta) 1 150mA 1uA 2.5V 6V Fixed Over Current Protection、Short Circuit Protection Positive SOT-23-3L Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTorex SemiconductorVoltage Regulators - Linear, Low Drop Out (LDO) Regulators
README
README.mdECPKart64
A Lattice ECP5 based FPGA Flash Cart for the Nintendo 64
Build and load over serial
# 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 N64SD-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:
# 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 18 | 100n | Capacitor_SMD:C_0402_1005Metric | C1, C2, C3, C16, C17, C30, C31, C32, C33, C34, C35, C36, C37, C38, C39, C40 +2 |
| 15 | 10K | Resistor_SMD:R_0402_1005Metric | R2, R3, R13, R14, R15, R16, R20, R25, R26, R27, R28, R29, R30, R31, R32 |
| 11 | 22R_x4 | Resistor_SMD:R_Array_Convex_4x0603 | RN1, RN2, RN3, RN4, RN5, RN6, RN7, RN8, RN9, RN10, RN11 |
| 8 | LED | LED_SMD:LED_0603_1608Metric | D2, D3, D4, D5, D6, D7, D8, D9 |
| 7 | 22u | Capacitor_SMD:C_0805_2012Metric | C6, C7, C25, C26, C27, C28, C29 |
| 7 | 4K7 | Resistor_SMD:R_0402_1005Metric | R5, R18, R19, R23, R24, R33, R34 |
| 3 | 4K7 | ecp5board:JP_3_0402_1005Metric | JP7, JP8, JP9 |
| 3 | Conn_02x06_Top_Bottom | ecp5board:PMOD_Socket_2x06_P2.54mm_Horizontal | DBG1, PMOD1, PMOD2 |
| 2 | 15K | Resistor_SMD:R_0402_1005Metric | R9, R11 |
| 2 | 22R | Resistor_SMD:R_0402_1005Metric | R8, R17 |
| 2 | 22p | Capacitor_SMD:C_0402_1005Metric | C21, C22 |
| 2 | 4u7 1A | ecp5board:L_1008_1210 | L2, L3 |
| 2 | 5K1 | Resistor_SMD:R_0402_1005Metric | R6, R7 |
| 2 | SY8120B1ABC | Package_TO_SOT_SMD:SOT-23-6 | U1, U3 |
| 1 | 100K | Resistor_SMD:R_0402_1005Metric | R1 |
| 1 | 16MHz 20ppm | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | U9 |
| 1 | 18K | Resistor_SMD:R_0402_1005Metric | R10 |
| 1 | 1K | Resistor_SMD:R_0402_1005Metric | R4 |
| 1 | 1K1 | Resistor_SMD:R_0402_1005Metric | R38 |
| 1 | 1N914 | Diode_SMD:D_SOD-323_HandSoldering | D1 |
| 1 | 3K3 | Resistor_SMD:R_0402_1005Metric | R12 |
| 1 | 4K7 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Horizontal | JP1 |
| 1 | DNP Conn_01x02 | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | J3 |
| 1 | Ferrite_Bead | Inductor_SMD:L_0805_2012Metric | FB1 |
| 1 | IS42S16320F-7TL | Package_SO:TSOP-II-54_22.2x10.16mm_P0.8mm | U6 |
| 1 | LFE5U-12F-6BG256C | w_smd_bga:cabga256 | U8 |
| 1 | Logo_Open_Hardware_Small | ecp5board:xil_logo_new | LOGO3 |
| 1 | Logo_Open_Hardware_Small | Symbol:OSHW-Logo_5.7x6mm_SilkScreen | LOGO1 |
| 1 | Micro_SD_Card | Connector_Card:microSD_HC_Molex_104031-0811 | J2 |
| 1 | N64-Cartridge | ecp5board:N64-Connector | CON1 |
| 1 | SPI Flash W25Q128JVSIQ | ecp5board:SOA008-150-208mil | U4 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_FSMSM | SW1 |
| 1 | USB_C_Receptacle_USB2.0 | Connector_USB_Extra:USB_C_Receptacle_GT-USB-7010 | J1 |
| 1 | XC6206P25 | Package_TO_SOT_SMD:SOT-23 | U2 |
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 mm

- 6 layers49 × 49 mm

- 2 layers194 × 129.5 mm

- 2 layers19.7 × 13.3 mm

- 2 layers101.8 × 57.8 mm

Sc64v2
Polprzewodnikowy/SummerCart64
SummerCart64 - a fully open source N64 flashcart
96 parts1.2kGPL-3.0 - 2 layers101.8 × 57.8 mm

Sc64v2.1
Epicjoy/SC64
This project's hardware and casing are modified based on the SummerCart64 project.
97 parts15 - 6 layers67.6 × 37.6 mm

- 4 layers59.2 × 49.2 mm
