gcvideo - Open source GameCube component cable solution

Discussion in 'Modding and Hacking - Consoles and Electronics' started by darcagn, Aug 31, 2014.

  1. citrus3000psi

    citrus3000psi Housekeeping, you want towel?

    Joined:
    Nov 8, 2013
    Messages:
    1,051
    Likes Received:
    418
  2. kreg

    kreg Spirited Member

    Joined:
    Feb 22, 2009
    Messages:
    132
    Likes Received:
    12
    jealous!

    I need help making sure I am setting up a SPI flash correctly in impact.

    I am using the Gamecube to power the board. I have 3.3v where expected on the M25P40.

    JP1 with 4.7K Resistor:
    1. With Impact, I initialize chain. It detects the xcs200a. Good start!
    2. It the asks me to load the .bit file. I load gcvideo-dvi-shuriken-v3-2.3.bit
    3. After this it informs me that I can now load an SPI flash. I choose gcvideo-dvi-shuriken-v3-2.3-spirom.mcs and set it to M25P40.
    4. So far no errors that I can see in the log.
    JP1 CLOSED:
    1. I go to Erase the SPI. Fail.
    2. I go to Program the SPI. Fail
    JP1 with 4.7K Resistor:
    1. I go to Program the FPGA. Fail
    Can someone please advise? I don't know what to do. Am I using JP1 correctly??
     
    Last edited by a moderator: Nov 2, 2016
  3. zeldaxpro

    zeldaxpro Active Member

    Joined:
    Mar 27, 2016
    Messages:
    39
    Likes Received:
    4
    @happy_bunny hello happy_bunny I sent some emails and a PM. Please get back to me when you can thanks!
     
  4. happy_bunny

    happy_bunny Rising Member

    Joined:
    Feb 17, 2016
    Messages:
    71
    Likes Received:
    23
    this weekend I dont have time but midweek / next weekend I plan to build a shuirken video with a mini HDMI connector will try and program it via impact see if I get any issues.

    @kreg

    leave JP1 pulled up via the 4.7k resistor, can you check the grounds between the jtag gnd pin and spi flash gnd pin is connected I wonder if ground plane on your PCB is not quite correct.
     
  5. kreg

    kreg Spirited Member

    Joined:
    Feb 22, 2009
    Messages:
    132
    Likes Received:
    12
    Ground checks out between the programmer GND pin (hole between v+ and clk) and the spi GND (pin 4). Both check good conntinuity to the gamecube shielding as well.

    I just finished building a second Shuriken V3. I'll try finding a way to power it, without installing it onto the GC. Not sure what I can do yet for that. Is a CR2032 battery enough? This will let me try programming one more easily. Eitherway I will keep up some feedback for you.

    Does the positive side for C7 or C8 matter?

    What is "pulled up"? Close JP1 with the 4.7k resistor to bring pin 100 to GND? Lift the 4.7k resistor by pulling it up off the pad? lol sorry, i'm not sure.

    Do I ever just close JP1 with a direct short?

    Thanks!
     
    Last edited by a moderator: Nov 2, 2016
  6. happy_bunny

    happy_bunny Rising Member

    Joined:
    Feb 17, 2016
    Messages:
    71
    Likes Received:
    23
    No you have a XC3S200A and are using impact ie jtag so keep JP1 open nothing connected across it. A 4.7kohms resistor should be soldered into position R4 to 'pull up' pin 100 to 3.3V. Basically

    JP1 direct short = FPGA into sleep mode.
    JP1 open = FPGA awake
     
  7. kreg

    kreg Spirited Member

    Joined:
    Feb 22, 2009
    Messages:
    132
    Likes Received:
    12
    2nd Shuriken V3 is doing the same problems. I suspect that I am just doing this wrong.

    I did not install the 2nd Shuriken. I just connected GND and 3.3v to it, from the same Gamecube. I left JP1 fully open in both.

    Looking over the log, this stands out to me:
    INFO:iMPACT - '1': Checking done pin....done.
    '1': Core downloading terminated. DONE did not go high.
    INFO:iMPACT - '1': Flash was not programmed successfully.

    Here are some photos, and my full impact log
    Code:
    Welcome to iMPACT
    iMPACT Version: 11.1
    // *** BATCH CMD : setMode -bs
    // *** BATCH CMD : setMode -bs
    // *** BATCH CMD : setMode -bs
    // *** BATCH CMD : setMode -bs
    GUI --- Auto connect to cable...
    // *** BATCH CMD : setCable -port auto
    AutoDetecting cable. Please wait.
    PROGRESS_START - Starting Operation.
    Connecting to cable (Usb Port - USB21).
    Checking cable driver.
     Driver file xusb_emb.sys found.
     Driver version: src=1029, dest=1029.
     Driver windrvr6.sys version = 10.2.1.0. WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 X86 32bit SYS 14:35:41, version = 1021.
     Cable PID = 0008.
     Max current requested during enumeration is 74 mA.
    Type = 0x0004.
     Cable Type = 3, Revision = 0.
     Setting cable speed to 6 MHz.
    Cable connection established.
    Firmware version = 1303.
    File version of C:/Xilinx/11.1/ProgrammingTools/data/xusb_xlp.hex = 1303.
    Firmware hex file version = 1303.
    PLD file version = 0012h.
     PLD version = 0012h.
    PROGRESS_END - End Operation.
    Elapsed time =      1 sec.
    Attempting to identify devices in the boundary-scan chain configuration...
    INFO:iMPACT - Current time: Sat Oct 22 17:05:15 2016
    // *** BATCH CMD : Identify
    PROGRESS_START - Starting Operation.
    Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc3s200a, Version : 0
    INFO:iMPACT:1777 -
    Reading C:/Xilinx/11.1/ProgrammingTools/spartan3a/data/xc3s200a.bsd...
    INFO:iMPACT:501 - '1': Added Device xc3s200a successfully.
    ----------------------------------------------------------------------
    ----------------------------------------------------------------------
    done.
    PROGRESS_END - End Operation.
    Elapsed time =      0 sec.
    // *** BATCH CMD : identifyMPM
    // *** BATCH CMD : assignFile -p 1 -file "C:\Documents and Settings\kreg\Desktop\gcvideo\gcvideo-dvi-shuriken-v3-2.3.bit"
    '1': Loading file 'C:\Documents and Settings\kreg\Desktop\gcvideo\gcvideo-dvi-shuriken-v3-2.3.bit' ...
    done.
    INFO:iMPACT:2257 - Startup Clock has been changed to 'JtagClk' in the bitstream stored in memory,
    but the original bitstream file remains unchanged.
    UserID read from the bitstream file = 0xFFFFFFFF.
    INFO:iMPACT:501 - '1': Added Device xc3s200a successfully.
    ----------------------------------------------------------------------
    ----------------------------------------------------------------------
    Selected part: M25P40
    // *** BATCH CMD : attachflash -position 1 -spi "M25P40"
    // *** BATCH CMD : assignfiletoattachedflash -position 1 -file "C:/Documents and Settings/kreg/Desktop/gcvideo/gcvideo-dvi-shuriken-v3-2.3-spirom.mcs"
    // *** BATCH CMD : attachflash -position 1 -spi "M25P40"
    INFO:iMPACT - Current time: Sat Oct 22 17:05:51 2016
    // *** BATCH CMD : Program -p 1 -spionly -e -v -loadfpga
    PROGRESS_START - Starting Operation.
    Maximum TCK operating frequency for this device chain: 10000000.
    Validating chain...
    Boundary-scan chain validated successfully.
    '1': SPI access core not detected. SPI access core will be downloaded to the device to enable operations.
    INFO:iMPACT - Downloading core file C:/Xilinx/11.1/ProgrammingTools/spartan3a/data/xc3s200a_spi.cor.
    '1': Downloading core...
    done.
    '1': Reading status register contents...
    CRC error                                         :         0
    IDCODE not validated while writing FDRI           :         0
    DCM Locked                                        :         0
    status of GTS_CFG_B                               :         0
    status of GWE                                     :         0
    status of GHIGH                                   :         0
    value of VSEL pin 0                               :         0
    value of VSEL pin 1                               :         0
    value of VSEL pin 2                               :         0
    value of MODE pin M0                              :         0
    value of MODE pin M1                              :         0
    value of MODE pin M2                              :         0
    value of CFG_RDY (INIT_B)                         :         0
    DONEIN input from Done Pin                        :         0
    SYNC word not found                               :         0
    INFO:iMPACT:2219 - Status register values:
    INFO:iMPACT - 0000 0000 0000 0000
    INFO:iMPACT:2492 - '1': Completed downloading core to device.
    INFO:iMPACT - '1': Checking done pin....done.
    '1': Core downloading terminated. DONE did not go high.
    INFO:iMPACT - '1': Flash was not programmed successfully.
    PROGRESS_END - End Operation.
    Elapsed time =      0 sec.
    Overall
    20161022_171301.jpg

    Halt wire is not connected.
    20161022_171438.jpg

    2nd Shuriken
    20161022_171513.jpg

    1st Shuriken
    20161022_171657.jpg

    The 1st Shuriken I built, is attached to the GC. It has been abused more and I have lost some pads from repeated attempts at removing and installng the flash. The jump across it, and the visible bridge, is due to this. I do not believe there are any problems caused from this, as continuity testing seems to check out.

    The 2nd Shuriken is on the table, with the external power wiring.

    The pins for JTAG are bent, to allow room for the programmer leads to fit.
     
  8. zeldaxpro

    zeldaxpro Active Member

    Joined:
    Mar 27, 2016
    Messages:
    39
    Likes Received:
    4
    @happy_bunny can you please respond to my PMs and emails? Thanks
     
  9. kreg

    kreg Spirited Member

    Joined:
    Feb 22, 2009
    Messages:
    132
    Likes Received:
    12
    Cool!

    As a 3rd alternative to JTAG (via a programmer), and Direct SPI over Parallel (via hard wiring to a 25 pin cable bypassing everything)...

    Is it possible to use my Xilinx Programmer to flash over the "serial flash" pins as shown on your schematic? There is a table printed on the label of my Xilinx programmer, that shows pin out for JTAG, Serial, and SPI. Could I follow this and connect to your "serial flash" as shown on your schematic? I am looking now to see if the pins make sense. If so, i'm trying to determine what pin would go to which. I as assuming "serial flash" is the unlabeled 6 pins sitting between U2 and Conn6.

    Is this supposed to be a way? I'm not sure what you would call it...
    Something like... Direct SPI over Serial without using an FPGA?

    Be sure to deactivate the FPGA.
    JP1 CLOSED

    Vref and GND connected to the same JTAG pins. (JTAG pin 1 and pin 2)
    3.3v still must be supplied to the board. (Conn 1 pin 17)
    20161022_213348.jpg

    Connect 4 more leads from the programmer to "Serial Flash" port.
    DIN (jtag equiv TD1) to Serial Flash pin 1 (S1)
    DONE (jtag equiv TD0) to Serial Flash pin 2 (S0)
    PROG (jtag equiv TMS) to Serial Flash pin 3 (CS)
    CCLK (jtag equiv TCK) to Serial Flash pin 4 (CLK)
    20161022_213407.jpg

    Program Success. This was done on an uninstalled board. So I can not confirm yet, if gcvideo is working. I reverted to IMPACT version 11.x, in order to get the Direct SPI Programming feature. Since I can not "initialize chain" in order to find an FPGA with an attached SPI memory (since it's not hooked up with this method), I needed the old feature back to do it this way. This was dropped after version 11.4.
    20161022_213429.jpg

    Still blank screen.
    Both PROG_B and DONE are now reading 3.3v. 4.7uF capacitor is also across JP1.

    I programed the .mcs file to it. Should I make a .bin instead?

    Getting closer
     
    Last edited by a moderator: Nov 2, 2016
  10. happy_bunny

    happy_bunny Rising Member

    Joined:
    Feb 17, 2016
    Messages:
    71
    Likes Received:
    23
    Last time I programmed a mcs file by mistake the done pin didn't go high weird. Yes I think you need to program a bin file.
     
  11. kreg

    kreg Spirited Member

    Joined:
    Feb 22, 2009
    Messages:
    132
    Likes Received:
    12
    Does the wiring method above look right? If so, I'm not sure how to tell iMpact to load a .bin file. It seems to only accept .mcs.

    What method do you use to program the .bin, short of wiring up a parallel port and resistors?
     
  12. happy_bunny

    happy_bunny Rising Member

    Joined:
    Feb 17, 2016
    Messages:
    71
    Likes Received:
    23
    If it only excepts mcs file and you provided the right file and the done pin went up after flashing I think it flashed ok and the fpga is happy. Something else is wrong did you supply 12 volts to the input of the 5 volt reg?
     
  13. kreg

    kreg Spirited Member

    Joined:
    Feb 22, 2009
    Messages:
    132
    Likes Received:
    12
    It is currently installed. So I do see the 12v input from the motherboard, but I can't reach the 5v reg on the underside to measure at that point.

    It's possible that other connections to the motherboard are questionable, since this board was removed and resoldered back on a few times. Some connections looked questionable on the underside of the gamecube motherboard. I could be just dealing with a bad install at this point. Just not sure is all.

    I do see 5v at pin 18 on the hdmi connector.
     
    Last edited by a moderator: Nov 2, 2016
  14. happy_bunny

    happy_bunny Rising Member

    Joined:
    Feb 17, 2016
    Messages:
    71
    Likes Received:
    23
    Check the gc clk is getting to the fpga and c sel line is also getting to the fpga if those are ok you should be getting at least some snow on the screen.
     
  15. kreg

    kreg Spirited Member

    Joined:
    Feb 22, 2009
    Messages:
    132
    Likes Received:
    12
    Will do. That looks like FPGA pin 5 and pin 41. But first... Sleeeeeeeep.
    Tomorrow I can check continuity, but I won't be able to tell what is on them with just a multi-meter. Since I am questioning the GC Video Connector itself (due to some wearing of pads from soldering / desoldering), I'll look for points on the GC mainboard to check from. That way I can be sure continuity makes it from wherever it's coming from, and crosses the connector and makes it to the FPGA. I don't suppose you know where on the GC those come from do you?

    BTW, thank you for all this help. I am really enjoying this project and the things that I have been learning.
     
  16. citrus3000psi

    citrus3000psi Housekeeping, you want towel?

    Joined:
    Nov 8, 2013
    Messages:
    1,051
    Likes Received:
    418
    @Unseen
    Edit: Nevermind. I went into the OSD, change the audio volume from 255 to 115, and switch mute from off to on then back to off. Saved the settings, rebooted the device and the audio was there. I put the audio back to 255 and it still works. IDK but I'm happy :)

    Now I'll just be waiting for a xc3S200a wii code to ported to the shuriken board. :) I have a PCB that will fit nicely below the AV connector inside the case that is designed off the shuriken.

    Again thanks for all your efforts and work on the GCVideo project!



    I did the wii mod tonight and all seems good. But I get no audio. Analog audio still works. I double checked wiring multiple times, nothing is grounded out. Any ideas? I remember you saying that wii's audio was slightly different the cubes. Good there be a different motherboard revision? My board for reference is a RVL-CPU-40.

    I've also gone into prii loader and have disabled all "hacks" just in case something funky was going on. I have not tested an actual game. I'm just in the main menu. I assume the audio works on this screen?

    Thanks

    [​IMG]

    [​IMG]
     
    Last edited: Oct 23, 2016
  17. pr0cess0r

    pr0cess0r Spirited Member

    Joined:
    Oct 22, 2016
    Messages:
    109
    Likes Received:
    8
    I have a question if i build a shuriken Video V3 with xc3S200a. What code i must flahs to have all feature of the gcvideo ?? is there any .bin abailable that i can just prog to the Serial flash directly.

    Thank you.
     
  18. kreg

    kreg Spirited Member

    Joined:
    Feb 22, 2009
    Messages:
    132
    Likes Received:
    12
    If you have a Xilinx programmer, use gcvideo-dvi-shuriken-v3-2.3-spirom.mcs. This version is made for the xc3S200a on a Shuriken V3. Use ISE Lab Tools version 11.x to perform a Direct SPI programming of the flash chip. I did not use JTAG programming. Direct SPI worked for me instead, and is the method happy_bunny tests with for his boards. Connect the programmer to the points directly next to U2.

    If you do not have a Xilinx programmer, make a .bin from gcvideo-dvi-shuriken-v3-2.3.bit

    The pre-compiled binarys can be found here:
    https://github.com/ikorb/gcvideo/tree/master/HDL/gcvideo_dvi/bin
     
  19. pr0cess0r

    pr0cess0r Spirited Member

    Joined:
    Oct 22, 2016
    Messages:
    109
    Likes Received:
    8
    ok thank you ! i will convert the file to bin and use my willem usb gq-4x to program the chip.
     
  20. happy_bunny

    happy_bunny Rising Member

    Joined:
    Feb 17, 2016
    Messages:
    71
    Likes Received:
    23
    @citrus3000psi

    Download the wii project files from the github change the pinout in the ucf file for your board recompile job done no need to wait :)
     
    Last edited: Oct 24, 2016
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page