# Ways to connect a PCIe/PCIe2 card and other PC parts to a breadboard?

Basically I have a bunch of rather old computer parts that I haven't been able to get rid of so I decided to do a few experiments with them but for that I need to be able to breadboard them. Things like old CPUs, ribbon cable hard drives, RAM, various cards (sound, wifi, ethernet, and graphics). For instance, one such project is to be able to write to and read a hard drive with an Arduino or see if I can cobble together some kind of working computer based on a graphics card.

I've tried Google searching adapters but to no available. Can anyone tell me where to find one or special order (if I have to)?

-
You won't. In general, PC hardware that is newer than about 25 years old is too complex to be "breadboarded". –  Majenko - not Google Jun 15 at 0:27
Just get rid of them and stop wasting your time. Make sure you put them in the non lead free bin though. –  Andy aka Jun 15 at 0:32
Strip the components off them - more useful that way. –  Majenko - not Google Jun 15 at 0:40
@Andyaka my first humorous comment . Saberhagen or Simak could certainly come up with ideas for intergalactic transportation. But then, they weren't worried about Rohos. –  Marla Jun 15 at 0:56
@Andyaka any PC components produced in the reasonably-recent past ought to be lead free, otherwise it would be illegal to sell them as consumer products in the EU. –  Jules Jun 15 at 4:43

What you are asking is very, very difficult.

You can try to be much more specific and we can try to help you, e.g. in my opinion writing to an hdd might be feasible, but forget to do something useful.

Motherboards exist for a reason, that is connecting all these parts together and providing all the needed interfaces, logical and electrical, between them. That's the adapter you are searching for, it's called motherboard, and it seems quite unlikely to me that you can "cobble togheter" anything similar.

About your graphic card question, I assume you have a basic grasp of how a computer works: a GPU is not even close a general purpose processor, you can write some code for it, some heavy simulators rely on the GPU, but you can't really have anything near working without spending tons of time and money, or without an engineering dream team, and that holds for any definition of working. Unless you just want to turn on the fans, that's easy indeed.

-

As Vladimir said this is very difficult to interface such device. But have you actually tried to look the speed of PCIe on the internet before even considering to interface your hardware with an Arduino?

Short answer: Based on information here : PCI express page on wikipedia, even first revision of PCI provides a transfer rate of 250Mb/s, which is way over the CPU clock speed of any Arduino made (even ARM-based ones). Also, such speed requires the PCI signaling to be performed with differential signaling, which is not supported by Arduino out of the box. You would need a converter to read the data. It is therefore mostly impossible to do what you want.

Longer answer with more details and explanations: The only board that you may possess that is actually possible to interface with (apart from your HDD) might be your RAM if it is very old (such as PC33 or some similar stuff), because it was clocked and not differential, so you could be able to use it, but frankly you are better off using a brand new ram chip, it will be most easy to use and less costly.

Also, you should consider that beyond 25MHz (only 5 MHz if you want very high reliability) it is very hard to prototype on a breadboard, because of stray capacitance. As such, it would not be possible to test your stuff the way you intended it. Interfacing PCI devices it not as trivial as you might think. You cannot just hack stuffs together. At high frequencies, signal will bounce all over the place. This is why many boards contain dozens of capacitors and resistors in series/parallel with the lines: they are intended to match the impedance of the lines so that every edge is sharp. Doing this on a breadboard is not challenging: it is plain impossible and non-deterministic because parts are clipped and not soldered together.

When designing PCBs with very fast protocols such as USB 3.0, SATA, etc. it is very common to match the impedance with trial and error (it cannot be realistically computed), since it depends on dozens of factors (strip lines length, cooper thickness, proximity of other wires/strip lines, etc.). Measuring the correct value requires very expensive stuffs such as high quality multi-channel oscilloscopes that may sample in the 4-20 GHz range, which you probably don't have since they usually cost 100k$-400k$.

Bottom line: you can't do that without proper electrical interface (motherboard).

Solution: If you want to play with computer stuff while still being very low level, buy a single board computer (some cost around 100+\$) and you can hook hard drives (mostly SATA, though), ethernet and stuffs like that.

-
It's not trial and error; there are well understood ways to calculate the impedance of a specific trace geometry. The board manufacturer then measures the dielectric constant of the board substrate and adjusts the trace widths for each batch of boards to compensate. The equipment required is not an oscilloscope but a device called a network analyzer. Basically, the board house will make a test board with specific test patterns on it, then they will connect a network analyzer to measure the response and then calculate the trace width correction. –  alex.forencich Jun 15 at 7:48
For a single trace, maybe, but not on a very large PCB with lots of layers. You can estimate, but not predict with 100% accuracy. Or at least I never seen anyone achieve that yet. "All of the existing equations are approximations, and thus accurate to varying degrees, depending upon specifics." ~ p.2 Analog Devices Appnote MT-094. (analog.com/static/imported-files/tutorials/MT-094.pdf) You are right that network analyzer exists, (didn't think about it when writing), but you still can use an oscilloscope and measure your signal if you do not have a network analyzer at hand. –  Mishyoshi Jun 16 at 19:26

You may be able to get one of the hard drives working with the old IDE interface. You will need a bunch of flip-flops to get enough pins to interface with it, but it's a parallel interface and you should be able to get it to run pretty slow. This is not a breadboard project, though - you'll need to make your own PCB, either with wire wrap or point-to-point on a perfboard, or actually laying out a board and sending it to a fab house. It's just too complicated for a breadboard.

The old RAM might also be workable, but bear in mind that the interface is probably at least 64 bits with another 10 or more address lines and a pile of byte enables.

The old CPUs aren't going to do you much good unless you want to design your own motherboard - these chips have a lot of requirements.

You might be able to talk to a PCI card. Maybe. But definitely not PCIe, unless you want to connect it to an FPGA that has the necessary serializers and deserializers.

-