Discussion in 'Modding and Hacking - Consoles and Electronics' started by darcagn, Aug 31, 2014.
Does the sound work though?!
Rewired everything on the original board and it works now! (after having tried it on a Panasonic Q I suspect is also faulty). I used kynar wire, whereas before I was using ribbon cable, which wasn't ideal.
Got some boards coming from oshpark which I'm going to try and populate and install, then I might try and build my own design...
ok shuriken video with hdmi mini connector created and ordered
shaved of another 5mm, if the board works I will upload the modified design onto my website.
I've been looking at making my own design using the XC3S200A based on the shuriken 3 board and schematics, but was just wondering about the OSD. I know that on the shuriken 2 board pin 62 (I think that's the correct FPGA pin; it was pin 8 on the spare shuriken pins) needed to be connected, but it isn't connected to anything in the shuriken 3 schematic. Do I still need to run a wire from the Gamecube motherboard to pin 62 of the FGPA, or has the code been altered so that it can be connected to a different one of the spare shuriken pins?
For the Shuriken v3, iirc, the controller pad is pin 73 of the Xilinx IC.
OK, so that should be pin 1 on CONN6 of the board image above?
so looking at the source
it goes CONN6
1 = PAD
2 = SPDIF_Out
3 = IRReceiver
4 = IRButton
5 = 3.3V
6 = GND
(PIN1 in the photo is FPGA pin one nothing to do with CONN6)
Built a Shuriken v3. Connected my programmer. Followed steps from Xilinx documentation. I was able to make the proper .mcs file, from the original .bit file. Using gcvideo-dvi-shuriken-v3-2.3.bit
Once loaded up, Flash fails to erase.
I changed the flash mem for a different one. Got the same result.
Just trying to narrow it down a bit does your Pluto board program ok now ?
Just finished my design and sent it off to oshpark, just hope they cut out the holes on the bottom of the board.
How difficult is the shuriken to solder?
It shouldn't be too bad if you have some experience of soldering and decent enough tools. Definitely not recommended as a first project, though.
You can't really rate it based on difficulty. Its more like this;
Can you solder .5mm legged chips?
Do you have the right tip and tweezers to solder 0805/0603 resistors?
Are you using leaded solder?
If you answered yes to all three then you will be able to build a shuriken.
Since I am attempting xc3s200a on your board, do you know if I want to use Unseen's gcvideo-dvi-p2xh-gc-2.3.bit or gcvideo-dvi-shuriken-2.3.bit ?
I flashed my SPI with a .bin, generated with promgen, using gcvideo-dvi-shuriken-2.3.bit. It did not appear to work. Blank screen.
Yes I think thats the correct file, check that prog_b pin is not tied to ground (ie JP1 is not shorted) and that the done pin is high (fpga read the spi flash correctly).
I am trying to get happy_bunny's Shuriken v3 functioning with a xc3s200a. Working with FPGA devices is new to me. This is the first FPGA based project that I have done. There are gaps in my knowledge and I am asking for anyone to help sort these new concepts for me. Is this the appropriate place?
Mostly programming based questions are what I am seeking answers to.
Can a Shuriken V3, be made to offer both HDMI audio, and OSD?
Should I use toplevel_p2xh.bit or gcvideo-dvi-p2xh-wii-2.3.bit or gcvideo-dvi-shuriken-v3-2.3.bit ? What does each offer differently?
How do I know if I should use happy_bunny's version, or Unseen's versions?
Are there known cases where I can break my GC if I use the wrong .bin file?
There are .bin files and .mcs files. Are both made from the same .bit file?
What is programming via the JTAG? Why don't we use this method, instead of direct SPI flashing via parallel or USB programmers?
Why are Unseen's .mcs files for gcvideo at github.com, over 400KB ? I need a .mcs that fits in a 4Mb flash (512KB). Why did I have to create an alternative smaller .mcs file via iMPACT? Are others besides happy_bunny, using larger flash chips? And they can just be... shrunk like that?
Are there cases where I want to use the p2xh .bit file, for an xc3s200a installed on a Shuriken V3?
Does toplevel_p2xh.bit already have OSD if I just happen to use a xc3s200a? This command was suggested to me by someone at gc-forever.com. promgen -spi -p bin -o spi_flash.bin -s 512 -u 0 toplevel_p2xh.bit. That makes it seem like he wanted me to use happy_bunny's version.
happy_bunny developed toplevel_p2xh offered directly from retro-system.com. It provides audio over HDMI, but with no OSD. There is talk that an OSD can be achieved on the Shuriken V3 if you use an xc3s200a instead. Is this .bit desired for xc3s200a users?
Can the xc3s200a safely use any of these versions of .bit files?
When to close JP1 and when not to?
Are any of these ramblings, correct understandings?
Among the scattered conversations here and over at gc-forever.com, as well as notes on retro-system.com, there are 2 examples of flashing. By using a parallel port, or a programmer. The parallel method uses promgen to read in a .bit file, and stream it into a .bin file. All prepped and ready to go straight into SPI flash. I have only seen use of the .bin, to be used with the parallel method and connecting directly to the M25P40, and flashing it. This method worked for me. I used a schematic that I found online made up of some resistors, a capacitor, and a 3v power source ( I just used a watch battery). I built this setup and promgen verified blanking after an erase, and verified it was programmed after writing the .bin file. However my Shuriken V3 did not work.
Alternatively, I also have a Xilinx programmer with iMPACT installed on my PC. I followed the iMPACT guide for how to create a .mcs file from a .bit file. It seems to be the same concept, but I'm not using parallel, nor am I connecting anything directly to the M25P40.
I get the feeling that neither example above are JTAG programming. It seems there is a 3rd way to program the .bit file, but I have yet to see anything discussing it for this project. If there was, does the FPGA "stream" the .bit file, and on the fly create a suitable .bin file and write it to the SPI flash? Is this done using iMPACT and the Xilinx USB programmer? Does promgen just emulate this step? Is that why I am "bypassing" the FPGA and writting directly to the M25P40? Is this called JTAG programming?
I am interested of course in making this work. But the real take away for me will be the project itself. So I really want to understand what I learn in this journey.
Thank you smart people
Yes, but only with an XC3S200A. The 50 chip is too small for the OSD.
I don't know where you found toplevel_p2xh.bit, but it is likely synthesized for a Pluto IIx-HDMI board and I can't tell just from the file name if it's for Gamecube or Wii.
gcvideo-dvi-p2xh-wii-2.3.bit from my repo is for the Pluto IIx-HDMI board, configured to be used in a Wii instead of a Gamecube.
gcvideo-dvi-shuriken-v3-2.3.bit is synthesized for a Shuriken v3 board, to be used in a Gamecube.
I'm not sure if happy_bunny provides files for an XC3S200A, so I won't comment on this.
I'm not aware of any.
Assuming you meant ".bit", yes. The .bit file is the data stream that is sent to the FPGA, the .mcs file is that data stream plus a bit more so the FPGA can configure itself from an SPI flash chip.
JTAG is a commonly-used method to upload configuration data to an FPGA during development. With suitable software like Xilinx' Impact or UrJTAG, it can also be used to write data into the SPI flash chip that is attached to the FPGA. I do not know why happy_bunny recommends direct SPI flashing, but it would be useful in mass production.
.mcs files are actually text files that contain the data as hexadecimal numbers plus checksums (for the technically-minded: Intel Hex format), so they are a bit more than twice the size of the data they contain. The .mcs files in my repository should fit into a 4MBit flash chip.
No idea, maybe Impact can generate multiple variations of these files and the software you were directed to use accepts only some of them.
Unknown, as I don't know where that file comes from and what it contains.
[*]There is talk that an OSD can be achieved on the Shuriken V3 if you use an xc3s200a instead. Is this .bit desired for xc3s200a users?[/quote]
If you want an OSD, yoiu probably want gcvideo-dvi-shuriken-v3-2.3.bit
Technically yes, but unless you use the correct one it won't work. If you try to use a bit file meant for an XC3S50A, the chip will just refuse it. If you try to use a bit file meant for a different board, you won't get a picture.
If you just generate an MCS file in Impact, JTAG is not involved. It comes into play when you choose the "Boundary Scan" option in Impact which will then try to detect which devices are connected via JTAG and ask which files you want to upload to them (if any). Actual programming only happens when you right-click on a device in the boundary scan view and choose "Program" there.
@kreg I think you are mixing a lot of stuff up
@Unseen its in the gc_video_0_5.zip for the xc3S50a @kreg dont use any of the fpga vhdl zip files on my site, you have a XC3S200A use unseens github.
mmm I took the gcvideo-dvi-shuriken-v3-2.3.bit from gtihub and created a bin file for people to use, thinking about it that may have been a mistake I have no way of testing the *.bin works maybe I will remove it.
I didnt have a jtag programmer at the time of starting the project so I used the spi flash method, I dont recommend one over the other I just now that the spi flash method works with my board. I have a xilinx programmer now but am to lazy to learn the jtag method
which ever method you use to program the spi flash if you get a blank screen, you need to check that the done pin goes high which tells you that the fpga understand what you programmed on the fpga.
Thank you @happy_bunny and @Unseen
This really does clear up much of what I have been unclear about. I will review these notes and get back to trying again soon.
Separate names with a comma.