📜 ⬆️ ⬇️

What does it cost us to build a PCI-E riser



Once upon a time I collected myself a mini-computer . But here's the ill luck - 3D modeling and what a sin to hide - banal toys made this box take a lot of thought, and make me nervous. But you can't just take and connect a video card to it - there is a PCI-E X4 slot, but there is no space in the case. Yes, and nutrition will not be able to provide (if not to talk about quite a budget gags). What are the solutions to this problem on the market, what they did not suit me and what happened in the end, I will try to describe in this article. I ask under the cut, who is not afraid of a large number of pictures !

Prologue


To connect the video card, a 4-line PCI-E riser with additional power was required with the ability to control it if the power supply was separate. So, the usual loop-outs and many are painfully familiar due to mining a riser with a USB cable as an interface cable.


Bulk products with bulk quality
')
But that of more or less satisfying my requests can be found in the vast network:




Not finding a suitable solution for myself, I had to choose from two options - to score or make it myself. It is clear that for the first version the article could have been completed on this, but I, perhaps, will continue.

Design


After talking in various communities dedicated to this topic, it was decided to make the riser versatile, not just for yourself - to the laptop (via Mini Pci-E, M2 or even MXM) and to the computer in slot x16 without limitation to only 4 data lines !

Here is a list of requirements that I set for myself:


Implementation


Desires are described, courage has accumulated enough - it's time to embody! The riser is essentially an extension cord. And the cable is its main part. As such, varieties of LVDS cables were used - the so-called micro coaxial cable assembly. They are often used to connect the matrix displays of various devices.


18+ bare cable


30 lived and only 2mm in diameter

Although it is extremely difficult to find them on the open market, I managed to find a manufacturer in China ready to manufacture such cables in any quantity (even 1pc) of any length and with a suitable connector.

When the choice of interface cable was finished, I was finally able to work on the design of the riser board and the selection of components. In the end, the designed boards were ordered, the components were purchased and everything was put together:


Top of the board


Bottom of the board

  1. Power connector 8pin (15A maximum current), combined with a turn-on signal (for ATX power supplies)
  2. The indication of the supply voltage within the acceptable limits (+ 12v ± 5%) on the window comparator. Green LED - voltage is normal, red - out of range
  3. Power management - Mosfet for the case of using a power source without control and giving a PS ON signal. The control signal is the 3.3v power supply on the host.
  4. Step-down DC \ DC to get 3.3v
  5. Cooler connector
  6. LVDS connectors for interface cables
  7. PCI-E x16 slot
  8. Protection against short circuit and over voltage - fuse and TVS diode.
  9. Connecting additional power video card

On the other side of the cable, the adapter board for the slot of the end device:



The weighty minus of such a solution (as well as among analogs) is that you cannot quickly connect / disconnect a riser without having to disassemble a laptop / computer. And the connectors themselves are not intended for external use and have low mechanical strength and low resource. Therefore, I additionally made such an adapter with more reliable connectors (the cable itself with such connectors cannot be made immediately ... for reasonable money):


Similar connectors were used in docking stations for smartphones, tablets and other devices.


Connection using 2 cables, and these adapters connect them

Testing


All components on the board are soldered, cables are connected - it's time to cross your fingers and test!


The photo is a prototype and has differences from the final version.


As they connected with 2 interface cables, they got PCI-E x8.


When passing various tests, there were no problems and the video card worked stably under load, and the bus frequency increased (gen3)

For testing, I managed to get a laptop with an M2 Key M slot with NVME support - MSI GE62 6QD. But for the prototype, an adapter was made with M + B keys for greater versatility, so it is possible to use only 2 lines out of 4 available:


Since this was a prototype, the use of electrical tape and the removal of dc / dc on a separate fee is quite appropriate.


Starting a laptop with EGPU. BP starts automatically when you turn on the laptop


Due to the presence of an integrated and discrete graphics card in the laptop, I had to tinker with installing drivers


Work under load

Unfortunately, these glands were in my possession for an extremely short time and I did not have the opportunity to conduct more detailed testing after receiving the final version of the riser. So it was necessary to be content only with such iron:



What was it all about?

Of course, the configuration is far from productive and to get a significant advantage from connecting to the x4 bus instead of x1 did not work in various tests. Often it all came down to a weak iron.


Difference within error

MOBA-type games (WOT, for example) showed indifference to the bus on this configuration - if there is enough video memory there is no need to load data in closed small locations.

But in online games with an open world, especially in places of mass gathering of players, the difference is quite noticeable. Here are 3 FPS measurements in Black Desert:
Measuringminavgmax
pci-e x4 gen1 ≈ pci-e x1 gen3
onefive2851
2five2949
3five2951
pci-e x4 gen3
one73156
26thirty51
373153

Plans and Results


The project, though, was started as a universal and not only for itself, but it did not find much popularity. I did not find it at all. Nevertheless, I got what I wanted and invaluable experience and knowledge. As they say a negative result is also a result!

They also often ask me why I did not try to implement support for the now-fashionable Thunderbolt3 interface. The problem is that this interface will require licensing from Intel. And no documentation on the controllers just will not give. There is even a narrow circle of developers of solutions on Thunderbolt3 under the patronage of the same Intel. I was naturally not accepted there.

Although there were rumors that this interface would be open and accessible to everyone, but at the moment it’s just rumors and the standard has remained closed. But I would love to try to develop the project in this direction.

Quite a few questions were about the connection option instead of MXM video cards. There were plans for such an option, but I had to give it up for two reasons - the funds for R & D came to an end and I couldn’t test it on anything.

In general, I will be very happy to hear comments and suggestions from swaggers. Thanks for attention!

PS


Since this is generally my first experience in developing an electronic device, I had to turn to more experienced people in this regard for help, so I want to say a big thank you to NordicEnergy and Paging for advice and answers to my (sometimes stupid) questions!

Project files

Source: https://habr.com/ru/post/435086/


All Articles