My cheap macOS TB3/TB2 enclosure R&D effort: JEYI m.2 SSD to Thunderbolt 3 Adapter + NGFFP4X-N01
Hey guys, your fellow R&D resident Vonthing here.
In an effort to develop a cheap eGPU solution for Mac users, about 2 months ago I had ordered the following items:
- JEYI LEIDIAN thunderbolt 3 m.2 nvme Enclosure mobile box case
- CHIPAL NGFF M.2 to PCI-E 4X Riser Card (Aliexpress)
I made sure I bought a TB3 enclosure and not a USB one because obviously Thunderbolt is required for eGPU support. Also, I made sure to get an enclosure with a M-keyed M.2 socket which means it has 4x PCIe lanes available. For reference, here's a table of what the keying means on M.2 sockets:
(Also as a sidenote I'd personally love to see a Chinese PCB manufacturer do a B-keyed breakout PCB or even a M-keyed one with added SATA connectivity -- it would be so convenient to have all that stuff broken out to proper connectors, but then again those are called "docking stations" I guess... anyway)
I picked ePacket as delivery method and I usually get my stuff in less than a month tops but the enclosure took a whole 2 months and that was very unexpected. Anyway I got to work. Here's the whole thing assembled:
I also grabbed a multimeter to check if all 4 lanes are broken out to the m.2 connector on the white PCB and yes they all are, so theoretically this would give full 4x PCIe connectivity at a very reasonable price point..
...and I'm saying "theoretically" because at the time of purchase I didn't know that TB3/TB2 adapters didn't work with bus powered devices, and I don't have a TB3 computer (Mid-2014 Retina MacBook Pro) therefore, as expected, the thing powers up on the 12V rail just fine but since it's not getting anything on the 3.3V rail, so when I plug it in nothing happens:
I took some further pictures of the PCB in the enclosure and came across this IC (it had a thermal sticky pad to dissipate heat over the entire case, so I assume it gets pretty toasty in operation and it's probably the main IC for the Thunderbolt connectivity or something like that. I tried Googling it but couldnt find what it is. Here's a picture:
I also found this IC which is a "USB Type-C and USB PD Controller, Power Switch, and High Speed Multiplexer" by Texas Instruments (link to datasheet)
I also did some poking out and found out that the main 3.3V line on the M.2 socket is broken out to one of the pins near where the JTAG headers are. So I was thinking of applying 3.3V to it with a buck converter but not sure how that would go, it could work just fine or I could end up with a dead Thunderbolt port (which would truly suck)
Therefore I was wondering if anyone's tried something like this before? My GPU is a Radeon RX 590 which has 8 pin + 6 pin 12V headers so I'm guessing that's where it draws most of its power, therefore I don't think I'd need to supply lots of current on the 3.3V line.
Or if anyone's aware of any TB2/TB3 converters that also power the device plugged in? The Apple one sure does not.
Any help on this would be much appreciated, and happy Thanksgiving in advance
By the way, as a sidenote: When I plug it into a USB port with a Type A to Type C cable, I get the notification "Connect accessory to a Thunderbolt port on this Mac" which gives me even more hope that if it was bus powered it'd work..
I mean, unless there's a firmware restriction on the enclosure that would block it from working with non-storage type devices, there's no reason it would not work, right?
I could always install the white PCB into the built-in SSD slot and boot macOS off an external drive just to test that the white PCB would work at least, but I'm not that hyped up yet
I tested the Chipal M.2 to NVME adapter, plugging it into my Dell 7510 M.2 slot. Originally, tried a cheap 20cm PCIe extender and got no eGPU detection. Then, rather ackwardly, had a RX 580 plugged into the bottom of the laptop into this PCIe slot. Managed to get a unreliable x4 Gen1 link going.
Then the R43SG arrived. Attached it to my M.2 slot and eGPU worked straight away at a very reliable x4 3.0.
Given your detection woes, you may consider also obtaining a ADT-Link R43SG.
Thanks for the suggestion. The whole reason that I would like this to work is for easy cross platform usage between my PC laptop (Gigabyte P25W v2) that only has mPCIe (with the wireless card removed) and my MacBook Pro. I got a Razer Core X PCB at a very reasonable price second hand from a friend (the enclosure went flying off of a truck bed at highway speeds so the enclosure and PSU was wrecked but surprisingly the PCB was still fine so I jumped on the deal) then built my own enclosure into a mini ITX PC case using an off the shelf ATX power supply and that's what I'm running at the moment. Now I obtained one of these:
I also have a mPCIe adapter with the same mini USB end. I also 3D printed a custom motherboard backplate for the case with a USB extension built in (build thread here) My goal was to build a m.2 to TB3 enclosure with the mini USB plug, and when I want to switch over to the Windows PC, plug the mPCIe to USB plug, and for OSX use the JEYI enclosure that I bought off Aliexpress and plug its USB -- I mean the USB that's not actually an USB but just carrying a PCIe signal, which I planned to permanently mount to the JEYI enclosure -- to my custom mini ITX cased enclosure (at the cost of link speed being capped at x1)
Right now though, I have to open the Mini ITX case, unplug the graphics card from the Razer Core X PCB, then basically do a fresh build for the PC laptop which is quite a hassle.
You seem to be quite more experienced in the eGPU field than me, so I was wondering a couple things also:
- How big is the performance hit, going from x4 to x1, in macOS? (Keep in mind I'm using TB2 so I'm capped at 20Gbps anyway)
- What would be the best way to achieve easy cross platform operation? Ideally I'd like a universal plug and play type deal but sadly I don't have TB3 neither on the PC nor the Mac.
- Would it be worth giving up the TB2 speed just so that plugging the PC laptop is less of a hassle?
- Is there any way I could keep TB2 on the Mac and whatever's the fastest I can achieve on the PC, and also have an easy way to switch computers?
Thanks for the answers in advance.
There's a similar M.2 to PCIe x4 adapter at Micro SATA Cables that uses a voltage regulator to provide 3.3V instead of taking 3.3V from the M.2 slot.
But that will only power the PCIe card and not the Thunderbolt device so you'll need to get a Thunderbolt 3 device with two Thunderbolt 3 ports. Something like this:
But if you had one of those kinds of enclosures, then you could just connect a PCIe card to the PCIe slot of the enclosure.
TB3 has worse performance than PCIe 3.0 x1. So maybe using TB2+PCIe x1 won't be so bad. Or maybe it will make the problem with Thunderbolt worse.