
ISA FPGA v2
robfinch/Cores
Cores ===== RTF's Cores Use at your own risk. Welcome to my galaxy of cores. Contained in the directories are IP cores, source code for digital circuits.

GameCube Digital AV converter
Gcvideo lite is an open-source printed circuit board by ikorb, from the ikorb/gcvideo repository on GitHub. It is a 4-layer board of 49 × 30 mm with 44 parts on 79 nets, routed with 695 tracks and 53 vias.
It is built around the 74LVC14AD. Its parts include 22 capacitors, 9 connectors, 8 resistors, 3 ICs and 1 inductor. It belongs with the FPGA and CPLD boards of this library.
This is the first prototype GCVideo Lite board with analog outputs in RGB and Component/YPbPr formats, revision 0.9. This revision has a few minor annoyances, but has proven to work.
The board has five connectors and one jumper: The main signal and power input is the 11x2 connector P1 which connects to the GameCube Digital Video port. The 6x1 connector on the side is the JTAG connector which is needed to program the FPGA on the board. Signal outputs are on the 5x1 and 4x1 connectors. There is also a 2x2 connector labelled "spare" next to the P1 and JTAG connectors which at this time is mostly unused except for one pin that outputs an SPDIF audio signal.
The single jumper on the board is located next to the JTAG connector and consists of two solder pads. If these pads are bridged, the FPGA will output RGB signals, if they are open it will output component signals.
The board is connected to the GameCube's digital video port using the pins of the P1 connector. Since the original connector in the GameCube is proprietary and no alternative is known, this needs to be done using wires. It is strongly recommended to keep these wires as short as possible since one of them is a 54MHz clock signal. Be absolutely sure to not connect or bridge anything to pin 5 (+12V) - an accidental short between that pin and any of the data lines will instantly fry the Gamecube.
The pins of the P1 connector on the GCVideo Lite board correspond 1:1 with the pins of the GC's digital video connector, pin 1 is marked with a square instead of a round pad. This site shows the pin numbering directly on the connector. Alternatively, if you look at the bottom of the GameCube's main PCB with the video connectors facing away from you, pin 1 of the DV connector should be the bottom right pin, pin 2 the one above it. There are also numbers for the outermost pins marked besides the connector on the top side.
I have no idea what your options are if you have a later-model GameCube where Nintendo removed the digital AV port.
The FPGA has an internal configuration memory which is blank when it is delivered from the factory. To program the FPGA, you need a JTAG interface suitable for use with Lattice's software - I use a clone of the HW-USBN-2A cable, but the software also supports a parallel port cable (no idea about the pinout) or FT2232D-based USB devices (look for Lattice application note AN8082 for the schematic).
On the software side, the FPGA can be programmed using the Lattice Diamond software package. Although it may appear a bit large at about 1.5 GByte download size, this is quite small compared to similar packages from other FPGA vendors. ;) If programming the internal configuration flash of the XO2 fails, try the .jed file instead of the .bit file.
The video output connector is the 5x1 connector on the side of the board. Pin 1 is marked using a square instead of a round pad and outputs the R (RGB) or Pr (Component, red plug) signal. Pins 2 and 4 are ground pins. Pin 3 (the middle one) outputs the G (RGB) or Y (Component, green plug) signal, Pin 5 outputs the B (RGB) or Pb (Component, blue plug) signal. There is also a tiny label hidden between the resistors and capacitors saying "B-G-R" which uses "-" as a shorthand for ground.
The GCVideo Lite board has a dedicated connector for sync signals. You can ignore it if you only want to output Component video, but it is required if you want to use RGB. The pins are labelled "C V H -" on the sikscreen. The "-" pin is ground, "V" and "H" are vertical and horizontal sync signals and "C" is a composite sync signal. The composite sync signal should be directly usable e.g. for connections to SCART televisions or scalers like an XRGB Mini that need a composite sync while the V- and H-Sync signals can be used for VGA inputs - but remember that the GameCube outputs 15kHz video during startup and not every game supports 480p!
While the hardware could support RGB with Sync-on-Green, this is currently not implemented.
The 2x2 pin group marked "Spare" in the corner of the group is unused except for the square pin next to P1. This pin is used to output an SPDIF audio signal. For more information on interfacing this signal to an SPDIF receiver, please check the README.md of the gcvideo_lite HDL project.
Please do not connect this pin directly to a coaxial SPDIF input, the feature was added after the board was designed and there is no protection on this pin.
The PCB uses four layers, so it is not suitable for etching at home, but there are many prototyping services available that offer small runs of a PCB. The prototype has been ordered from OSHPark and the zip file with the data they require has been included in the repository.
The values of the parts are marked within their footprint in rather tiny letters, alternatively you can look at the BOM.csv file for the value corresponding to each of the component references.
There are currently two options for the audio signal from the Gamecube when GCVideo Lite is used as the video encoder. The first option is to use the audio signals from the analog AV port as usual. The second option is to use the SPDIF encoder implemented in GCVideo Lite. The README.md of the gcvideo_lite HDL project has more information about connecting this signal - since it was added after the board was designed, no protection is present on the signal and a direct connection to an SPDIF input may destroy the FPGA.
With a different program in the FPGA it is be possible to use the same board to provide RGB and/or Component outputs for an N64, see the gcvideo_lite_n64 directory for details.
Measurements on a Wii board indicate that thare is an internal video data bus that may use the same signals as the GameCube's digital video port, but since the Wii already supports Component video natively there isn't much reason to actually use this board on a Wii. It may need some hardware changes as the Wii uses 1.8V signal levels instead of the 3.3V seen on a GameCube.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | 10n | SMD_Packages:SM0805 | C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C19 |
| 9 | 100n | SMD_Packages:SM0805 | C1, C2, C3, C4, C5, C17, C18, C20, C21 |
| 4 | 75 | SMD_Packages:SM0805 | R2, R3, R4, R5 |
| 4 | CONN_1 | Wire_Pads:SolderWirePad_single_0-8mmDrill | P6, P7, P8, P9 |
| 2 | 10u | SMD_Packages:SM1206POL | C6, C22 |
| 2 | 4k7 | SMD_Packages:SM0805 | R7, R8 |
| 1 | 100 | SMD_Packages:SM0805 | R6 |
| 1 | 348 | SMD_Packages:SM0805 | R1 |
| 1 | 74LVC14 | Housings_SOIC:SOIC-14_Narrow | U4 |
| 1 | CDK3404 | Housings_QFP:lqfp-48 | U2 |
| 1 | CONN_11X2 | Pin_Headers:Pin_Header_Straight_2x11 | P1 |
| 1 | CONN_2X2 | Pin_Headers:Pin_Header_Straight_2x02 | P5 |
| 1 | CONN_4 | Connect:SIL-4 | P3 |
| 1 | CONN_5 | Connect:SIL-5 | P2 |
| 1 | CONN_6 | Connect:SIL-6 | P4 |
| 1 | INDUCTOR | SMD_Packages:SM0805 | L1 |
| 1 | MachXO2-256-TQ100 | SMD_Packages:TQFP_100 | U1 |
| 1 | RGB/COMP | SOLDER_JUMPER:SOLDER_JUMPER | JP1 |
It measures 49 × 30 mm and has 4 copper layers, 1.6 mm thick.
44 parts, built around the 74LVC14AD. 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.
From the ikorb/gcvideo repository on GitHub, at the commit this page was made from: the board is Hardware/gcvideo_lite_09/gcvideo_lite.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask ikorb before reusing the design.

robfinch/Cores
Cores ===== RTF's Cores Use at your own risk. Welcome to my galaxy of cores. Contained in the directories are IP cores, source code for digital circuits.


BlakeGarner/encoders-for-etc-eos
A 9-encoder (un-official) add on to the ETC Eos Family of Lighting Consoles and Software, using OSC over USB

fwachsmuth/Filmkorn-Raw-Scanner
The Filmkorn Raw Scanner, turning 8mm and 16mm films into lossless 12-bit CinemaDNG

fachat/csa_ultracpu
The CPU board for a 17MHz Colour-PET clone with modern interfaces


richard42/ESP32FloppyTester
A software/hardware tool for testing vintage floppy disk drives
