Shuriken Video (powered by gcvideo)

Overview

Use this design at your own risk, I take no responsibility for any damaged caused if anything goes wrong.

I wanted to be able to connect my gamecubes video output to the HDMI port of my TV / PC monitor, I know that the first versions of the gamecubes had a digital video port as well as an analogue port. I wondered if some how it could be connected to a HDMI converter. I looked around and found this guys work

https://github.com/ikorb/gcvideo

This guy is good I mean really good I download his work and tried to find fault with it, I really tried to find some errors but all I found was my misunderstanding or lack of knowledge I simple cant find fault with his work its great! Basically he uses a small FPGA to read the gc digital port and converts the signals into standard DVI protocol of reception by a DVI / HDMI TV / PC monitor, perfect for what I need :-)

Shuriken Video PCB overview

gcvideo dvi runs on a Pluto IIx HDMI board, which uses a xc3S200a xilinx FPGA, to reduce cost and make an open source project I created a Shuirken Video PCB which uses a xc3S50a xilinx FPGA and is targeted at the gamecube only (its not a general development board).

Schematic

Note: C7 should be 4.7uF and C8 should be 1uF both tantalum type caps to reduce noise.

This schematic (pdf) basically shows the FPGA wiring between the gamecubes digital port and HDMI connector, the real schematic file is part of the artwork package below.

PCB software

Because this project is open source I decided to use RS design sparks http://www.rs-online.com/designspark/electronics/ software for creating the PCB.

PCB artwork V1 - prototype

here is the artwork for the Shuriken Video board V1 this includes the schematic and PCB files.

PCB artwork V2

I made the board slightly smaller so that it would fit into the gamecube with minor modifications to the gamecube's case here are the updated files.

PCB artwork V3

If I get time I would like to make this board smaller its too long. For example the serial flash and jtag connectors can be half the size and both the regulators can be reduced in size 8SOIC foot print maybe, if I make these changes I think I can reduce the length of the PCB will try when I get time....

Part numbers / BOM

All part numbers are from farnell

225-3716    Serial flash 4Mbit 8SOIC

185-1995    1.2v reg    SOT223 (for boards that don't use a SPDIF connector due to the current limit of 1A on these devices)

182-5292    5v reg       SOT223

151-6661    HDMI connector

167-1088    XC3S50A-4VQG100C

resistors / caps are all 0805

3D case

Updated 5/7/2015

Here is the bottom half of the 3D case for the prototype board (V1) its a quick hack up done in google sketchup. This next one is much better its bottom half of the 3D case for version 2 of the PCB again done in google sketchup here are the design files,  top half of the case coming soon...

gcvideo for shuriken board

I have code ported the gcvideo vhdl files to work with my board (which uses the xc3S50a and different pinouts) here are the modified files.

Updated 2/7/2015

Added SPDIF support (audio) from main source branch here is the re-build, SPDIF is outputted on pin 8 of the spare connector.

Updated 25/8/2015

Updated code to pull in changes from main branch (gcvideo-dvi version 2.0), here is the re-build. From gcvideo-dvi version 2.0 audio over HDMI interface is now supported however to get the updated base line to fit inside the xc3S50a I had to remove support for the SPDIF output.

Updated 1/9/2015

Warning: If you are going to connect a SPDIF connector please uprate the 1.2v regulator from the current 1A rating to something that can handle 1.5A otherwise the output voltage from the 1.2V regulator may drop below 1.2volts and may damage the FPGA

Ingo played with the compiler options and managed to fit the SPDIF encoder logic back into the build (thanks dude) so here is an update with audio over HDMI and SPDIF output !

Programming the shuriken board

Xilinx ISE IDE software creates a *.bit file which is used to program via JTAG the FPGA, however this board is designed to load it configuration information from a spi serial flash device ( M25P40). So it needs a slightly different file for programming. To create this I used xilinx's command prompt promgen program and run it using the following parameters

promgen -spi -p bin -o spi_flash.bin -s 512 -u 0 toplevel_p2xh.bit

This creates a binary file spi_flash.bin which I used to program the board (see xilinx app951 page 13 for more details). To program the board you simple connect JP1 this pulls prog_b low and forces the FPGA into standby mode allowing a flash programmer direct access to the spi flash chip. Then you connect your programmer to the serial flash port (conn3 on the PCB) and flash down the *.bin file. To flash down the binary file I used my own program here, but this uses a parallel port to bit bang the spi flash commands / data to the chip which most computers do not have anymore.

If you have a JTAG programmer you can follow the instructions on page 13 of xilinx app951 which basically creates a *.mcs file instead of a bin file and uses iMPACT to flash this file into the spi serial flash chip.

Shuriken Video pictures

Finally some project pictures v1 & v2