Jump to content

eGPU Case and Controller Project Update (WIP)


nak1017

Recommended Posts

It's been a little while since I posted about this so I thought I'd give some progress, and while I'm still working to finalize everything, I have a pretty decent case built, a rough BOM, and working code. I haven't had time to put the wiring schematic on the computer (it's a mess of sketches in a notebook), but I'll add it as soon as I can.

The purpose of this setup was to get everything on one power supply, and eliminate the need to count down to start the power supply once I started my computer. It's probably overkill, but so is an external GPU for that matter...

Anyway, here's some pictures: [ATTACH]11135[/ATTACH] [ATTACH]11136[/ATTACH] [ATTACH]11137[/ATTACH] [ATTACH]11138[/ATTACH]

I'm using 2 big solid-state relays and 2 small board-mounted solid-state relays to control the power going to the video card. The whole thing is powered by an Arduino Uno which is reading one of the 3.3V lines from the PCIe line to tell it when the computer turns on.

The code for the Arduino Uno is as follows:
//Last Change - 3/1/14
const int relay1Pin = 10;
const int relay2Pin = 11;
const int relay3Pin = 12;
const int relay4Pin = 2;
int onPin = 0;
int counter = 0;
unsigned long offTimer;

void setup(){ pinMode(relay1Pin, OUTPUT); pinMode(relay2Pin, OUTPUT); pinMode(relay3Pin, OUTPUT); pinMode(relay4Pin, OUTPUT); digitalWrite(relay1Pin, LOW); digitalWrite(relay2Pin, LOW); digitalWrite(relay3Pin, LOW); digitalWrite(relay4Pin, LOW);

}

void loop(){ onPin = analogRead(A0);

if (onPin > 410.0){ //Voltage threshold is above 2 volts delay(18000); //Used for ON delay digitalWrite(relay1Pin, HIGH); digitalWrite(relay2Pin, HIGH); digitalWrite(relay3Pin, HIGH); digitalWrite(relay4Pin, HIGH); }

//Voltage threshold is below 1 volt if ((onPin < 100.0) && (counter == 0)){ offTimer = millis(); counter = 1; delay (1000); if (onPin > 100.0){ counter = 0; } }

//Used for OFF delay if (((millis() - offTimer) > 5000) && (onPin < 100.0)){ digitalWrite(relay1Pin, LOW); digitalWrite(relay2Pin, LOW); digitalWrite(relay3Pin, LOW); digitalWrite(relay4Pin, LOW); } }


There's an ON delay of 18 seconds in this code which works for me, but might not work for you. I have the spot in the code where marked where you can change it. If you haven't worked with Arduinos before, the time is in milliseconds so a time of 18000 will equal 18 seconds. I've also got the threshold voltage on the analog pin set to 2 volts, but you shouldn't have to mess with that if you use one of the 3.3V lines coming out of the PCIe slot. There's also an OFF delay which will turn everything off after the thunderbolt link powers down. I've got a 5 second delay in there with a threshold of slightly below 1V, but I have it set to start a count down to turn off which still allows input from the analog pin. This is in case there is any fluctuation in the 3.3V on the PCIe. It might be unnecessary, but I'm playing it safe on that...

The Bill of Materials (BOM) is as follows: (I'm sure I forgot something too...)
Video Card = eVGA GTX770 in my case
Power Supply = I used a Corsair AX860, but basically anything 400+ watts should work fine
Thunderbolt Setup = I used a Sonnet Echo Express SE 2; my design can be modified for any thunderbolt setup
PCIe 16x to 8x Riser = Link; I bought 2 in case I screwed up cutting in the first one :)
PCIe 4x to 4x Riser = Link; might not need this with your setup, but it made mounting mine easy
Arduino Uno = The SMD version allows you stick a small breadboard between the headers and save space
Big solid-state relays x2 = These ones worked for me; make sure to get the DC-DC ones
Small solid-state relays x2 = The AQV252Gs are DIP mounted and handle the PCIe 12V and 3.3V power
2N3904 Transistors x2 = Link; these drive the big solid-state relays
Small Breadboard = Link; these little guys fit between the headers of the SMD UNOs
2.5mm Right Angle Plug = Link; these fit the Sonnet Echo setup power port and seem to work the UNOs as well
18ga Stranded Wire = I used yellow and black for the 12V and GND, respectively
22ga Stranded Wire = Yellow (12V), Red(3.3V), Black(GND) and Gray(Misc) for me
22ga Solid Wire = I used these on the breadboard and any color will do
330 ohm resistors x2 = for the AQV252Gs
1K ohm resistors x2 = for the 2N3904s
14-16ga Ring Terminals x4 = Link; for connecting the 18ga 12V cables to the Big SSRs
18-22ga Ring Terminals x4 = Link; for connecting the 2N3904s to the Big SSRs
22-26ga Butt Splices x6 = Link; used on PCIe cable to connect cut wires; I didn't use them but I should have
D-sub Male Crimp Pins = Link; these fit the breadboard and connect other stuff to it
Heat Shrink Tube = Link; Use with the pins since they're not insulated
4-40 Machine Screws of Various Length = I used these on the case
6-32x0.25" Machine Screws x4 = Used to hold the Power Supply
I'm working on converting the case over to 6-32 screws since those are readily available at Home Depot and Lowes, but I've been too busy to make much progress and my 3D printer is in need of an upgrade... I'm also using a modified version of MystPhysX's PCIe 16x Riser Hack which he should get all the credit for. I'll add my modifications to the schematics when I get those made up.

Lastly, here are the 3D print files and gcode files: [ATTACH]11134[/ATTACH] [ATTACH]11133[/ATTACH]

I used 123D Design by Autodesk so anyone could modify these; the downloadable version seems to work better for me. I've include the gcode files so you can test print some of the parts are decide what changes you need to make for your setup. Currently, the power supply is just attached on one side, and needs to be picked up separately if the case is moved. I'm going to fix that, and some flex in the video card cradle when I next print the case... stay tuned :)

Anyway, if anyone has any questions, feel free to ask me.

Also, special thanks to Tech Inferno Fan, MystPhysX and Shelltoe for all the help they gave me getting this setup up and running.
  • Thumbs Up 4
Link to comment
Share on other sites

  • Moderator

I'm not sure what to say to this.. this is absolutely amazing.

I'm absolutely impressed by how much time you spent into making this.

I see a second card there, how is that hooked up?

I'm looking forward to seeing more of your work!

Link to comment
Share on other sites

Thanks for the support!

I see a second card there, how is that hooked up?

Sonnet's Echo Express SE 2 is a 2 piece setup; one card a PCIe to PCIe board, and the other is a good ol' fashion PCIe to TB2 card. I just added a 4x riser between the 2 to keep it a little more neat and orderly in the rig.

I'm thinking about taking the whole setup apart next time I make any changes to the case, and making a step-by-step picture guide to the setup. That should should the cards in more detail.

  • Thumbs Up 1
Link to comment
Share on other sites

I've got a mid'12 rMBP which only has the TB1, but I'm probably going to upgrade this summer to whatever the new Retina (or it's equivalent).

I haven't done any true benchmarks, but from a 'butt-dyno' perspective, I definitely sees an improvement when playing Skyrim. It's also nice not having the fans go full blast when gaming on the macbook either...

Link to comment
Share on other sites

  • 1 month later...

Sonnet's Echo Express SE 2 is a 2 piece setup; one card a PCIe to PCIe board, and the other is a good ol' fashion PCIe to TB2 card. I just added a 4x riser between the 2 to keep it a little more neat and orderly in the rig.

Yes, 2 pieces setup. But could be possible to remove the pcie to pcie and keep only the thunderbolt? Or it will go boom?

Adding an extra riser between the 2 cards could create issues with signal like it happens with bplus hdmi cable connectors?

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

Yes, 2 pieces setup. But could be possible to remove the pcie to pcie and keep only the thunderbolt? Or it will go boom?

Adding an extra riser between the 2 cards could create issues with signal like it happens with bplus hdmi cable connectors?

Sent from my iPhone using Tapatalk

No, that PCIe-PCIe part is the secret sauce in Sonnet's setup and unfortunately quite necessary

The second riser hasn't seemed to be a problem so far, though i am having issues with my GTX770 and this new TB2 card so I'll try taking it out and seeing if it works better.

Link to comment
Share on other sites

I have a 680 which is basically a 770, and it works just fine, so dont know why not working for you. :)

Is the card detected by setup 1.x?

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.