Skip to the content
PCBKitNew board
6 layers25.4 × 50.8 mmReDIP-64, the printed circuit board in 3D

Commodore 64 FPGA emulation platform

Size
25.4 × 50.8 mm
Copper layers
6
Thickness
1.57 mm
Parts
150
Nets
312
Pads
1,249
Tracks, vias
3,373, 833
Pours
5
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
9 May 2021
Updated
9 Mar 2024

Overview

ReDIP-64 is an open-source printed circuit board by daglem, from the daglem/reDIP-64 repository on GitHub. It is a 6-layer board of 25.4 × 50.8 mm with 150 parts on 312 nets, routed with 3,373 tracks and 833 vias.

It is built around the LFE5UM5G-25F-8MG285C, FUSB340TMX and PTN5110NHQZ, with the SGTL5000XNLA3, W25Q128JVPIM and W957A8MFYA5I among its other parts. Its parts include 70 capacitors, 27 resistors, 23 ICs, 5 connectors and 4 diodes. It belongs with the FPGA and CPLD boards of this library.

Main components

12

README

README.md

reDIP 64

Commodore 64 FPGA emulation platform

Board

Overview

The reDIP 64 is an open source hardware development board which combines the following in a tiny 25.40 x 50.80 mm footprint:

  • Lattice ECP5-5G FPGA (LFE5UM5G-25)
  • NXP PTN5110NHQ USB PD TCPC PHY
  • NXP SGTL5000 Audio Codec
  • 128Mbit FLASH
  • 128Mbit HyperRAM
  • RGB LED
  • Push button
  • USB-C receptacle for power, Full Speed USB, and DisplayPort (DP Alt Mode)
  • Lots of 5V tolerant I/O

The reDIP 64 aims at functioning as

  • A partial or full brain transplant for the venerable Commodore 64
  • A "Retro computer on a chip", which can be used stand-alone or in custom retro computer builds
  • A versatile generic FPGA platform with power, HID input, and audio / video output all handled through a single USB-C connector

Designs for the ECP5 FPGA can be processed by yosys and nextpnr.

Also check out the reDIP SID, if you are interested in a platform for MOS 6581 / 8580 SID emulation in particular.

General use

I/O interfaces

100 header pins:
  • 5V input / output
  • 3.3V output
  • 92 FPGA GPIO
  • 5 audio pins (stereo line input, stereo line output, GND)
  • GND

All FPGA I/O is 5V tolerant, and can drive 5V TTL.

Note that the audio line inputs are not AC coupled - AC coupling must be externally added for audio applications. Without external AC coupling, the line inputs can conceivably be used as generic ADCs.

JTAG:

A separate 6 pin header is provided for JTAG.

USB-C functions:
  • 5V power in / out
  • USB Power Delivery (PD)
  • FPGA Full Speed USB
  • FPGA DisplayPort (DP Alt Mode)

Commodore 64 compatibility

The board is pin compatible with the MOS 6510 / 8500 MPU chip, and has additional pin headers to cover all the custom chips and I/O in the Commodore 64:

  • 6510 / 8500 MPU
  • 6567/6569 / 8562/8565 VIC-II
  • 6581 / 8580 SID (x 2)
  • 2 x 6526 CIA
  • Cartridge port signals
  • Menu / freeze button

For anyone interested in experimenting with a Commodore 64 setup, while avoiding blown fuses and a broken reDIP 64 board:

  • A 2A C64 power supply is recommended
  • Be careful not to apply force to SMD components on insertion and removal - use a ZIF socket if possible

The idea is that one can start by mounting the reDIP 64 in a Commodore 64, replacing the 6510 / 8500 MPU. This will make it possible to communicate with the Commodore 64 via USB, to output audio and video via the USB-C connector (DP Alt Mode), and to emulate a second SID chip.

Then, if one wishes to replace the VIC-II, the SID, or a CIA chip, the custom chip is removed, and wires are run from the reDIP 64 to the corresponding socket pins for the custom chip.

Note that the audio line outputs cannot drive the C64 audio output stage directly, however an audio output may be connected directly to pin 3 of the C64 audio/video connector (preferably removing or cutting a pin on C13 in the C64).

Also note that unless suggested GPIO is repurposed for other functions, the VIC-II can only be replaced by additionally emulating all RAM chips, and the PLA can only be replaced by emulating all custom chips, including ROM and RAM.

The MOS 8502 MPU used in the Commodore C128 has a similar pinout to the MOS 6510. Since the same pins are used for power, the reDIP 64 can conceivably also be used in a C128.

Retro computer on a chip

Power, HID input, and audio / video can all be handled via the USB-C port, hence the reDIP 64 is in fact capable of operating as a retro computer all on its own. Just connect the reDIP 64 to a DisplayPort monitor, either directly or via an USB hub, and add a keyboard and any other HID input devices. Now, all that is needed is an FPGA implementation of a retro computer :wink:

To create a fully functional retro computer, i.e. with I/O which can interface with original perhiperals, physical connectors and glue logic must be added to the mix. This can make for some fun projects!

Using the suggested GPIO, a fully functional custom C64 can be built using a minimum of additional components.

Other FPGA projects

The board can be of course also be used to experiment with e.g.

  • DisplayPort audio / video
  • Analog audio
  • USB Power Delivery
  • Interfacing with 5V TTL
  • RISC-V and other CPU architectures
  • Other SoC projects

Disclaimer

Please note that this is only my third board design - rookie mistakes are probably made, and feedback is welcome.

Board images

Board FrontBoard Back
Board FrontBoard Back

Parts

150
QtyValueFootprintReferences
260.1uFCapacitor_SMD:C_0201_0603MetricC32, C33, C34, C35, C36, C38, C40, C42, C44, C46, C48, C50, C52, C54, C56, C58 +10
231uFCapacitor_SMD:C_0201_0603MetricC2, C3, C4, C23, C24, C25, C26, C28, C29, C30, C31, C37, C39, C41, C43, C45 +7
91uFCapacitor_SMD:C_0402_1005MetricC1, C13, C14, C15, C16, C17, C19, C20, C27
8TestPointreDIP:TestPoint_Pad_D0.5mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8
6100nFCapacitor_SMD:C_0201_0603MetricC5, C7, C8, C9, C10, C11
64.7kResistor_SMD:R_0201_0603MetricR21, R22, R23, R25, R26, R27
410kResistor_SMD:R_0201_0603MetricR3, R4, R11, R14
4BLM18KG601SN1Inductor_SMD:L_0603_1608MetricFB1, FB2, FB3, FB4
4SN74CBT16211ADGVRTI:Texas_TVSOP-56_4.4x11.3mm_P0.4mmU17, U18, U19, U20
3100Resistor_SMD:R_0201_0603MetricR8, R12, R13
322Resistor_SMD:R_0201_0603MetricR6, R7, R24
2100kResistor_SMD:R_0201_0603MetricR9, R10
210uFCapacitor_Tantalum_SMD:CP_EIA-1608-08_AVX-JC69, C70
21kResistor_SMD:R_0201_0603MetricR16, R18
22.2kResistor_SMD:R_0201_0603MetricR1, R2
22.2uFCapacitor_SMD:C_0402_1005MetricC12, C21
2G***reDIP:Nimrod-N-smallsvg2mod, svg2mod
2NCP163AMX120TBGONSemi:CASE_711AJ_1.0x1.0mm_P0.65mmU13, U16
2TPS22916CNTI:Texas_DSBGA-4_0.78x0.78mm_Layout2x2_P0.4mmU8, U11
11.07kResistor_SMD:R_0201_0603MetricR17
11.5kResistor_SMD:R_0201_0603MetricR5
110uFCapacitor_SMD:C_0603_1608MetricC18
110uFCapacitor_SMD:C_0402_1005MetricC22
11uHInductor_SMD:L_0603_1608MetricL1
13.83kResistor_SMD:R_0201_0603MetricR15
1470nHInductor_SMD:L_0603_1608MetricL2
16.2kResistor_SMD:R_0201_0603MetricR20
1Conn_01x20reDIP:PinHeader_1x20_P2.54mm_VerticalJ3
1Conn_02x05_Odd_EvenreDIP:PinHeader_2x03_P1.27mm_VerticalJ5
1Conn_02x20_Counter_ClockwisereDIP:DIP-40_W15.24mm_HeaderJ2
1Conn_02x20_Odd_EvenreDIP:PinHeader_2x20_P2.54mm_VerticalJ4
1D3V3F8U9LP3810Diodes:U-DFN3810-9D3
1DSC1103CE2-135.0000Microchip:Oscillator_SMD_3225-6Pin_3.2x2.5mmU4
1ESD7241ONSemi:CASE_714AB_1.0x0.6mmD1
1FAN53610ONSemi:CASE_567RQ_1.16x0.86mm_P0.4mmU9
1FAN53611ONSemi:CASE_567RQ_1.16x0.86mm_P0.4mmU12
1FPF1048ONSemi:CASE_567RM_1.46x0.96mm_P0.5mmU7
1FPF2286ONSemi:CASE_567UV_1.30x0.90mm_P0.4mmU6
1FPF2495CONSemi:CASE_567RV_1.21x1.21mm_P0.4mmU10
1FSUSB42UMXONSemi:CASE_523BC_1.4x1.8_P0.4mmU5
1FUSB340ONSemi:CASE_722AB_2.0x2.8mm_P0.4mmU3
1G***reDIP:MOS-logo-smallsvg2mod
1G***reDIP:OSHW-logoOSHW logo
1G***reDIP:Nimrod-text-smallsvg2mod
1KXT311LHSCK:SW_SPST_CK_KXT3SW1
1LFE5UM5G-25F-8MG285CLattice:BGA-285_10x10mm_P0.5mmU2
1NCResistor_SMD:R_0201_0603MetricR19
1NCP115AMX250TCGONSemi:CASE_711AJ_1.0x1.0mm_P0.65mmU14
1NCP163AMX330TBGONSemi:CASE_711AJ_1.0x1.0mm_P0.65mmU15
1PDTA143ZMBNexperia:SOT-883Q1
1PTN5110NHQNXP:SOT-1883-1U1
1SGTL5000XNLA3Package_DFN_QFN:QFN-20-1EP_3x3mm_P0.4mm_EP1.65x1.65mmU23
1SMD-LX0707RGB-TRLumex:SMD-LX0707RGB-TRD4
1USB4080GCT:USB_C_Receptacle_GCT_USB4080J1
1VESD05A6-HAFVishay:LLP75-7LD2
1W25Q128JVPIMPackage_SON:WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mmU22
1W957A8MFYA5IWinbond:TFBGA-24_6.0x8.0mm_P1mmU21

Questions

How big is the ReDIP-64 PCB?

It measures 25.4 × 50.8 mm and has 6 copper layers, 1.57 mm thick.

What parts does the ReDIP-64 use?

150 parts, built around the LFE5UM5G-25F-8MG285C, FUSB340TMX, PTN5110NHQZ and SGTL5000XNLA3. 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 ReDIP-64 KiCad files?

From the daglem/reDIP-64 repository on GitHub, at the commit this page was made from: the board is hardware/reDIP-64.kicad_pcb and its schematic hardware/reDIP-64-Audio.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ReDIP-64 design in my own project?

Its repository states no licence, so its author keeps all rights: ask daglem before reusing the design.

Similar boards

  • 4 layers17.8 × 38.1 mmReDIP SID, the printed circuit board in 3D

    ReDIP SID

    daglem/reDIP-SID

    MOS 6581 / 8580 SID FPGA emulation platform

    103 parts121
  • 4 layers17.8 × 38.1 mmReDIP SID, the printed circuit board in 3D

    ReDIP SID

    kitspace-test-repos/kicad6-file-collection

    103 partsMIT
  • 4 layers299 × 127 mmLaunch, the printed circuit board in 3D

    Launch

    system76/launch

    System76 Launch Configurable Keyboard

    385 parts1.4kGPL-3.0
  • 4 layers70 × 92.8 mmFE 8CH, the printed circuit board in 3D

    FE 8CH

    osqzss/PocketSDR

    The Pocket SDR FE device includes 2, 4, or 8 RF frontend channels, supporting the GNSS L1 band (1525 - 1610 MHz) or L2/L5/L6 bands (1160 - 1290 MHz). For these signal bands, refer to GNSS Signal Bands.

    238 parts17
  • 2 layers96.7 × 95 mmOriginal keyboard, the printed circuit board in 3D

    Original keyboard

    n4subishin/nb1-keyboard

    Nb.1 - A 12-position programmable macropad with swappable Cherry MX switches and rotary encoders (STM32F405 / QMK / Remap) Nb.1 - Cherry MX互換スイッチとロータリーエンコーダーを搭載した、12キー左手デバイス(STM32F405 / QMK / Remap対応)

    58 partsGPL-2.0
  • 2 layers100 × 81.7 mmFlexAddressLedsV2, the printed circuit board in 3D

    FlexAddressLedsV2

    RobotPatient/Manikin_Color_Hub

    Led driver board files, flexible led strip files and (partially finished) software to drive them. And all our documentation. Part of the skin colour research group.

    583 partsMIT
  • 6 layers54.6 × 19.6 mmPCB0210, the printed circuit board in 3D

    PCB0210

    otvvvio/KiCross

    KiCross is a KiCAD script for crosstalk analysis

    198 partsMIT
  • 4 layers64.5 × 60 mmOrangeCart, the printed circuit board in 3D

    OrangeCart

    zeldin/OrangeCart

    The Orange Cartridge, an FPGA cartridge for the C64/C128

    140 parts22