Official Gamecube IDE/USB interface thread (PROJECT BEGUN!)
Moderator:Moderators
-
- Senior Member
- Posts:1911
- Joined:Tue Mar 29, 2005 12:39 pm
- PSN Username:Denki_no_Ame
- Location:What's it to you? Stalker...
- Contact:
I am good with a soldering iron but I can't program very good. I am better with the physical design of stuff then the programming part. If you send me some designs I might be able to look at it and see what I can find out. i don't have a working osilioscope anymore though so i don't know how much I can actually help. I don't have any new programming equipment either.
SS64 (Super-Small N64) 8%
Gathering materials (and cash) to build it
Gathering materials (and cash) to build it
-
- Senior Member
- Posts:1911
- Joined:Tue Mar 29, 2005 12:39 pm
- PSN Username:Denki_no_Ame
- Location:What's it to you? Stalker...
- Contact:
Any and all information about this project has already been posted here; none of us have anything to "send". If you have any interest in attempting this, I suggest giving the entire thread a once-over. There's a lot of good info here... it should be everything anyone needs to know. How well do you think you can design a PCB? If you can get the board physically built with the hardware soldered on, there are a few people here that I think would buy some from you (including myself) and we can program them on our end if you don't think you can handle it. But even though I don't have any (device) programming experience, there's so much info here that I think I can program it myself with no problems. It shouldn't be too hard.
Okay then, I will see what I can do (don't get your hopes up). All you have to do is get some good CAD software for board design and then have a board made from a place like this. Then the soldering is no problem, I actually like soldering fine pitched SMD devices.
SS64 (Super-Small N64) 8%
Gathering materials (and cash) to build it
Gathering materials (and cash) to build it
- marshallh
- Moderator
- Posts:2986
- Joined:Sat Sep 10, 2005 2:17 pm
- 360 GamerTag:marshallh
- Location:here and there
- Contact:
Here's a big hint to get you started:
1. Get Eagle
2. Cannabalize other chip's footprints to use in the design
3. Route the board with ELECTRA
4. Send to www.advancedcircuits.com
5. Buy parts from digikey
1. Get Eagle
2. Cannabalize other chip's footprints to use in the design
3. Route the board with ELECTRA
4. Send to www.advancedcircuits.com
5. Buy parts from digikey
-
- Senior Member
- Posts:1911
- Joined:Tue Mar 29, 2005 12:39 pm
- PSN Username:Denki_no_Ame
- Location:What's it to you? Stalker...
- Contact:
Eagle is like... THE PCB designer... I guess... I personally don't like it. But, that's what I said about Adobe products too. But now that I'm getting use to them and finally learning how to use them, they're friggin' awesome. It's really just a matter of learning curve, I guess. The better the program, the harder it is to learn. Even still, Eagle does have some odd controls. It doesn't really follow "standard Windows controls". Like, right-clicking doesn't bring up context menus... stuff like that. It's strange.Gamerdude wrote:What is eagle?
-
- Senior Member
- Posts:1911
- Joined:Tue Mar 29, 2005 12:39 pm
- PSN Username:Denki_no_Ame
- Location:What's it to you? Stalker...
- Contact:
I was gonna keep this a secret, but I'm not very good at keeping my own secrets to myself.
I've starting working on this again. I've got about $350 to spend from my birthday, and it's all going towards this project for parts and new tools. I've already compiled a list of everything I need, and how much it's all going to cost... which, with shipping, is actually a bit OVER $350, but I was told that was okay.
I just finished re-designing the schematic in Eagle. (I finally sat down and decided to figure out how the **** to use it.) So, I need some more eyes to make sure EVERYTHING checks out against the original schematic. Anyone that knows generally how to read simple schematics, and possibly also how to use Eagle a little bit, take a look at these:
Original Schematic -PDF
My Schematic -PDF
My Schematic -SCH (Eagle schematic, if anyone wants it.)
Breakout PCB - PNG (Explained in "5" below)
Custom Eagle parts library (You'll need this to open the schematic and PCB properly in Eagle.)
There are some obvious differences...
1. There are some sections of the original schematic that are seperated from what they are bound to, such as the "FX2_RESET" section in the upper left corner or the crystal section to the left. I've chosen to combine some of these in my schematic.
2. I don't think I will need the Debug or JTAG headers, but in case I do, they will be test points on my PCB; not headers. (Test Point: Pads with no bore in them.) So, the schematic symbols do look different, as a result of this decision.
3. I will be using a laptop hard drive, so I have designed my schematic with a 44 pin IDE connector, instead of a 40 pin one. The pinouts are the same, except the additional 4 pins are 5V (pins 41 and 42) ground (pin 43) and type (pin 44). I don't know what "type" is, but I'm pretty sure I don't need it.
4. The LED is totally unnecessary; it has been omitted.
5. He's the big, big difference, which will be almost the entire rest of this post...
Destop used the original connector from the CN-101 board (the disk drive board). He desoldered it from the DD board, and soldered it directly onto his PCB. This allowed him to plug his board directly into the GC motherboard; but this defeats one of the purposes of this project for some of us; making the Gamecube THINNER for portable purposes.
So, instead, I have designed a small "breakout board" to solder on the motherboard in place of the original connector. This consists of headers arranged in such a way to where they will extend down through the PCB, and line up perfectly with the holes that the original connector was soldered into. On the edge of the PCB is a Flat Flex connector. This allows you to use a Flat Flex cable to connect the IDE/USB board to the GC. What is a "Flat Flex" cable? Think really-fine-pitch ribbon cable. It's the same type of cable used to connect the Gamecube controller port PCB to the motherboard. What does ALL OF THIS mean? Basically, this all means that it changes the pinouts quite a bit, and makes things a bit harder to trace out... So, here's the scoop on that...
The "CN1" connector on Destop's schematic uses the proper pinout for the connector used for the DD board. So, look at that, then look at the my breakout board. Pin one on the CN1 connector is pin one on CN1 on my breakout board; this is the header layout. You need to follow each trace, over to the "FF18" connector. This is the Flat Flex connector, of which there will be another one of on the main IDE/USB board. Then, look at my schematic. The nets that each pin on the Flat Flex connector on that board connect to should match up with the proper nets on the original schematic. Let's go through an example, shall we?
Looking at Destop's schematic, "DID6" is connected to pin 19 of the "CN1" connector. So now, refer to the breakout board. Find pin 19 of CN1. Follow the trace back to the FF18 connector. You'll see that it connects to pin 14. Now, look at MY schematic. If you look at FF18 in the bottom right corner, you'll see that pin 14 is, in fact, connected to the DID6 net. Get in now?
I believe the following chart to be accurate, but the only reason I'm here telling you guys about this is to make sure of this fact before I start designing the PCB. "FF" is Flat Flex, "DD" is Disk Drive, and "NN" is Net Name. It should all make sense if you read the above and looked at the schematics.
Okay, I think that's about it. You know, this post is a good test. It's very long and confusing, so anyone that isn't SERIOUS about this project probably won't read through it. The ones who are will, and will help me verify my schematic.
Let me know if you're confused about anything... but I think I covered it all.
Rain
I've starting working on this again. I've got about $350 to spend from my birthday, and it's all going towards this project for parts and new tools. I've already compiled a list of everything I need, and how much it's all going to cost... which, with shipping, is actually a bit OVER $350, but I was told that was okay.
I just finished re-designing the schematic in Eagle. (I finally sat down and decided to figure out how the **** to use it.) So, I need some more eyes to make sure EVERYTHING checks out against the original schematic. Anyone that knows generally how to read simple schematics, and possibly also how to use Eagle a little bit, take a look at these:
Original Schematic -PDF
My Schematic -PDF
My Schematic -SCH (Eagle schematic, if anyone wants it.)
Breakout PCB - PNG (Explained in "5" below)
Custom Eagle parts library (You'll need this to open the schematic and PCB properly in Eagle.)
There are some obvious differences...
1. There are some sections of the original schematic that are seperated from what they are bound to, such as the "FX2_RESET" section in the upper left corner or the crystal section to the left. I've chosen to combine some of these in my schematic.
2. I don't think I will need the Debug or JTAG headers, but in case I do, they will be test points on my PCB; not headers. (Test Point: Pads with no bore in them.) So, the schematic symbols do look different, as a result of this decision.
3. I will be using a laptop hard drive, so I have designed my schematic with a 44 pin IDE connector, instead of a 40 pin one. The pinouts are the same, except the additional 4 pins are 5V (pins 41 and 42) ground (pin 43) and type (pin 44). I don't know what "type" is, but I'm pretty sure I don't need it.
4. The LED is totally unnecessary; it has been omitted.
5. He's the big, big difference, which will be almost the entire rest of this post...
Destop used the original connector from the CN-101 board (the disk drive board). He desoldered it from the DD board, and soldered it directly onto his PCB. This allowed him to plug his board directly into the GC motherboard; but this defeats one of the purposes of this project for some of us; making the Gamecube THINNER for portable purposes.
So, instead, I have designed a small "breakout board" to solder on the motherboard in place of the original connector. This consists of headers arranged in such a way to where they will extend down through the PCB, and line up perfectly with the holes that the original connector was soldered into. On the edge of the PCB is a Flat Flex connector. This allows you to use a Flat Flex cable to connect the IDE/USB board to the GC. What is a "Flat Flex" cable? Think really-fine-pitch ribbon cable. It's the same type of cable used to connect the Gamecube controller port PCB to the motherboard. What does ALL OF THIS mean? Basically, this all means that it changes the pinouts quite a bit, and makes things a bit harder to trace out... So, here's the scoop on that...
The "CN1" connector on Destop's schematic uses the proper pinout for the connector used for the DD board. So, look at that, then look at the my breakout board. Pin one on the CN1 connector is pin one on CN1 on my breakout board; this is the header layout. You need to follow each trace, over to the "FF18" connector. This is the Flat Flex connector, of which there will be another one of on the main IDE/USB board. Then, look at my schematic. The nets that each pin on the Flat Flex connector on that board connect to should match up with the proper nets on the original schematic. Let's go through an example, shall we?
Looking at Destop's schematic, "DID6" is connected to pin 19 of the "CN1" connector. So now, refer to the breakout board. Find pin 19 of CN1. Follow the trace back to the FF18 connector. You'll see that it connects to pin 14. Now, look at MY schematic. If you look at FF18 in the bottom right corner, you'll see that pin 14 is, in fact, connected to the DID6 net. Get in now?
I believe the following chart to be accurate, but the only reason I'm here telling you guys about this is to make sure of this fact before I start designing the PCB. "FF" is Flat Flex, "DD" is Disk Drive, and "NN" is Net Name. It should all make sense if you read the above and looked at the schematics.
Code: Select all
FF DD NN
01 09 DIERRB
02 12 DICOVER
03 14 DIRSTB
04 13 DIDSTRB
05 17 DID7
06 21 DID5
07 25 DID3
08 05 AISCLK
09 01 AISLR
10 23 DID4
11 29 DID1
12 27 DID2
13 31 DID0
14 19 DID6
15 15 DIDIR
16 11 DIBRK
17 07 DIHSTRB
18 03 AISD
Okay, I think that's about it. You know, this post is a good test. It's very long and confusing, so anyone that isn't SERIOUS about this project probably won't read through it. The ones who are will, and will help me verify my schematic.
Let me know if you're confused about anything... but I think I covered it all.
Rain
- marshallh
- Moderator
- Posts:2986
- Joined:Sat Sep 10, 2005 2:17 pm
- 360 GamerTag:marshallh
- Location:here and there
- Contact:
Hrumph... I go through all the effort to upgrade from Eagle 4.13 to 4.16r2, and now I have to get 5.0.
Anyway, I'm not able to open your schematic because I'm working in 4.16r2, but make sure you have the device packages right for everything. Also check the net connections; a good way is to use the move tool to move large components and make sure the connected nets follow the outline. It's quite possible for nets to look like they touch the symbol outline but not actually be logically connected. I think this was one of the things that ruined the last board I made.
Silly boy, the JTAG header is how you program the FPGA. I suggest you add it in the form of a 6-pin header. Which means you will need to buy a JTAG programmer cable (or build one.)
When you go to load your synthesized design into the fpga, you can either load it into the xilinx PROM, or if you want to bypass it and program the FPGA each time (for debugging, which is VERY USEFUL) then just don't solder on the PROM, but add a jumper between TDI and TDI_THRU on the footprint.
Also, beware the FX2 has NO INTERNAL ROM. That means you'll have to hook it up to USB every time you want to use it! If you look through the datasheet, you can also remove the resistors on SDA/SCL and add a I2C eeprom there with your firmware. This will be necessary once you finalize the design and want to run it outside of the test environment, but I would not worry about it until later.
Check, check, and re-check all your FPGA connections with the datasheet.
I'm not sure if eagle 5.0 is compatible with the old working demo of ELECTRA. How do you plan to route your board?
All the parts plus a board will be about $100. Not sure what tools you're buying, but you will be able to make it just fine with $50 in tools (30W Weller, solder, flux, solder wick, etc). This leaves you with an extra $100 (Which you will NEED because you WILL screw something up the first time.)
Welcome to the world of board design
Anyway, I'm not able to open your schematic because I'm working in 4.16r2, but make sure you have the device packages right for everything. Also check the net connections; a good way is to use the move tool to move large components and make sure the connected nets follow the outline. It's quite possible for nets to look like they touch the symbol outline but not actually be logically connected. I think this was one of the things that ruined the last board I made.
Silly boy, the JTAG header is how you program the FPGA. I suggest you add it in the form of a 6-pin header. Which means you will need to buy a JTAG programmer cable (or build one.)
When you go to load your synthesized design into the fpga, you can either load it into the xilinx PROM, or if you want to bypass it and program the FPGA each time (for debugging, which is VERY USEFUL) then just don't solder on the PROM, but add a jumper between TDI and TDI_THRU on the footprint.
Also, beware the FX2 has NO INTERNAL ROM. That means you'll have to hook it up to USB every time you want to use it! If you look through the datasheet, you can also remove the resistors on SDA/SCL and add a I2C eeprom there with your firmware. This will be necessary once you finalize the design and want to run it outside of the test environment, but I would not worry about it until later.
Check, check, and re-check all your FPGA connections with the datasheet.
I'm not sure if eagle 5.0 is compatible with the old working demo of ELECTRA. How do you plan to route your board?
All the parts plus a board will be about $100. Not sure what tools you're buying, but you will be able to make it just fine with $50 in tools (30W Weller, solder, flux, solder wick, etc). This leaves you with an extra $100 (Which you will NEED because you WILL screw something up the first time.)
Welcome to the world of board design
-
- Senior Member
- Posts:1911
- Joined:Tue Mar 29, 2005 12:39 pm
- PSN Username:Denki_no_Ame
- Location:What's it to you? Stalker...
- Contact:
I was hoping you'd show up here, Marshall. I thought about PMing you, but I didn't want to bother you until I absolutely had to. I figured I was going to run into some problems during programming, so I wanted to save my "Marshall Card" for that moment.
Thanks a lot for your advice and tips.
Eheh, sorry... I assumed you'd have 5.0 by now. You can still look at the PDF...marshallh wrote:Hrumph... I go through all the effort to upgrade from Eagle 4.13 to 4.16r2, and now I have to get 5.0.
I know you're smarter than me, but I'm pretty sure Destop has written a program for the FX2 that will program the PROM itself. Kind of like a "Virtual JTAG" of sorts. Refer to the very first post on page 9 of the Dextrose thread. There is discussion after that on how it is done, problems with it, and solutions to those problems... But, you never know, so I'm leaving the headers off to save money, but putting test points on the board just in case.marshallh wrote:Silly boy, the JTAG header is how you program the FPGA. I suggest you add it in the form of a 6-pin header. Which means you will need to buy a JTAG programmer cable (or build one.)
I know that, but the FX2 must be connected via USB anyway to perform its duty for this project, so why would I bother with a PROM to store the firmware? Can't I just allow it to load up the firmware each time I connect it? I believe I read that this can be done by compiling a driver for it from the files in the "GC_IDE_ATA" directory. Besides, I don't plan on using the USB streaming feature nearly as much as the IDE feature...marshallh wrote:Also, beware the FX2 has NO INTERNAL ROM. That means you'll have to hook it up to USB every time you want to use it! If you look through the datasheet, you can also remove the resistors on SDA/SCL and add a I2C eeprom there with your firmware. This will be necessary once you finalize the design and want to run it outside of the test environment, but I would not worry about it until later.
I checked the entire schematic thoroughly about 4 times, twice as I was laying it out and twice after I was finished with it. Plus I took the process slow; I confirmed each connection after I made it...marshallh wrote:Check, check, and re-check all your FPGA connections with the datasheet.
I don't know what Eagle's built-in auto-router is, but it's awful and retarded. I haven't tried ELECTRA yet, but I'm a control freak, and I would hate giving up that kind of control to an auto-router... So, I think I'm going to end up routing it manually. I already did half of it back when I was using ExpressPCB...marshallh wrote:I'm not sure if eagle 5.0 is compatible with the old working demo of ELECTRA. How do you plan to route your board?
Good estimate. It did come out to about $100. Right now, I have it figured at $65.24 in parts from Digikey, ~$32.50 for the board from Sparkfun (or "BatchPCB, I should say), although I might have to tack on another $2.50 or $5.00 for another square inch or two... things are pretty crammed with the current design (2.75" x 1.75"). Then I need $49.37 worth of miscellaneous stuff from Jameco, $65.54 for the hard drive from NewEgg, and then comes the soldering station... I am unsure of this now, because I had a great station picked out on eBay for $152.00 shipped. It was a 3-in-one station, with a soldering iron, a hot-air gun, and a fume extractor nozzle built-in to the iron. But... that was a "May Special" and the same station is going to end up costing me about $20 more anywhere else. I'm still looking into this... I might save my money and get a station without a hot-air gun for now. But I really had my eye this one...marshallh wrote:All the parts plus a board will be about $100. Not sure what tools you're buying, but you will be able to make it just fine with $50 in tools (30W Weller, solder, flux, solder wick, etc). This leaves you with an extra $100 (Which you will NEED because you WILL screw something up the first time.)
Thank you, but I'm really starting to hate it... quickly... It was fun when I was just throwing some simple stuff together in ExpressPCB, like an 18 pin PIC with a couple external components, but this is going to be a bit more involved...marshallh wrote:Welcome to the world of board design
Thanks a lot for your advice and tips.
-
- Senior Member
- Posts:1911
- Joined:Tue Mar 29, 2005 12:39 pm
- PSN Username:Denki_no_Ame
- Location:What's it to you? Stalker...
- Contact:
Oh, that's a very tempting offer... I picked out an 80GB... I wanted to make sure it would hold anything and everything I'd want to put on it, but it's probably still overkill. 80GB will hold a minimum of 50 games. 12GB would probably hold 8... Wait, maybe that will be enough... I have to think...vskid wrote:I'll send you a 4GB laptop hard drive for $5 shipped. If thats not big enough, I'll sell you a 12GB one for $15 shipped.Electric Rain wrote:$65.54 for the hard drive from NewEgg
Just finish this already so I can think about making a GCp!
- Triton
- Moderator
- Posts:7397
- Joined:Mon May 24, 2004 12:33 pm
- 360 GamerTag:triton199
- Steam ID:triton199
- Location:Iowa
- Contact:
so will the hdd be using a regular filesystem for dumping games onto etc, something that will be recognized by a pc or will it be formatted for the gamecube in some weird way and have to interface with the pc via the board you are making? im still very interested in this if you can work up a solution that can be replicated for <100$ lol
Visit us at Portablesofdoom.org
-
- Senior Member
- Posts:1911
- Joined:Tue Mar 29, 2005 12:39 pm
- PSN Username:Denki_no_Ame
- Location:What's it to you? Stalker...
- Contact:
Kinda both. As I understand it, the loader program that I compiled writes a proprietary file system to any hard drive you tell it to. I know this because I accidentally destroyed my hard drive's MBR while I was messing around with it. This is all I know. So yes, it uses a proprietary file system, and it can be written to by your PC (ONLY with the loader program), but I don't actually know if games can be loaded onto the drive over USB, though I assume they can be... somehow...Triton wrote:so will the hdd be using a regular filesystem for dumping games onto etc, something that will be recognized by a pc or will it be formatted for the gamecube in some weird way and have to interface with the pc via the board you are making?