I'm presenting to you a simple mod to add a single mini PCIe port to the Netgear R6220 router. Maybe someone will find it useful.
Netgear R6220 is build using MT7621. The CPU itself contains one USB 2.0, one USB 3.0 (unconnected) and a single PCIe x1 port.
The CPU generates three lanes for the port, so it can be split into three physical PCIe ports. Two of them are already used for the 5GHz and 2.4GHz wireless cards. There is however another unsoldered mini PCIe connector on the board. To make use of it, you will need:
- 1xhigh profile mini PCI-e socket (they are available on Aliexpress for instance, look for the high ones, like 6.8mm or 9mm, otherwise you will have problems inserting any card),
- 2x0.1µF 0402 capacitors,
- 2x0Ω 0402 resistors,
- 2x51Ω±1% 0402 resistors preferably paired.
- Solder the 0Ω resistors to R81 and R85, located in the middle of the underside of the board (image),
- Solder the 0.1µF capacitors to C131 and C132, located on the top side of the board near the CPU (image),
- Solder on the mini PCIe connector to CON1. The location is pretty straight forward.
- Solder the 51Ω resistors to R117 and R92, located near the first pins of the PCIe connector (image).
The locations are marked with red ellipses.
There is unfortunately no easy way to add screws, but you can use a cable tie, as I did in the pic to ensure a proper connection. Just make sure it's not too tight, as to not damage the card or the connector.
Afterwards you can see the device being enabled in the beginning of the log. The PCIe initialization log should change from:
PCIE1 no card, disable it(RST&CLK)
The attached card should also be visible when checked for using the lspci utility:
root@Polaris:~# lspci 00:00.0 PCI bridge: Device 0e8d:0801 (rev 01) 00:01.0 PCI bridge: Device 0e8d:0801 (rev 01) 00:02.0 PCI bridge: Device 0e8d:0801 (rev 01) 01:00.0 Network controller: MEDIATEK Corp. MT7662E 802.11ac PCI Express Wireless Network Adapter 02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6200 (rev 35) 03:00.0 Network controller: MEDIATEK Corp. Device 7603
The mod itself is pretty simple and easy. Unfortunately I am not so good with soldering and my soldering is abysmal. I could not use the hot air to melt the solder, because the heat was being dissipated too quickly. Any attempt to heat the board up was met with failure due to it's enormous mass. About 10s after heating up a spot for several minutes it was cool to touch. I'm guessing you have to use a heat bed to keep the temperature up constantly, however I don't have access to such tools. Instead, I used an I-type thin soldering tip, 0.5mm solder and tweezers.
What can be done with this mod is unfortunately limited: you can attach only miniPCIe devices which don't use USB pins. This means that most of the combo devices like WiFi+BT or WWAN are impossible to make work and will lack the USB part of it's functionality.
But what will work are pure PCIe devices. There are dozens of them, like USB/Ethernet controllers, SD card readers. There are also some Intel cards offering 2GB of flash memory for any of your ext-root needs. You can also add a riser with a conventional PCIe port and attach theoretically anything, when supplied with enough power. It'd be amazing to see a graphics card connected this way, though essentially pointless.
You can also attach a miniPCIe to 4x USB 3.0 controller, which is actually why I was doing this in the first place.
UPDATE: If you go for the USB 3.0, you will need to add a shield on the 2.4GHz WiFi card. Otherwise the interference from USB will make 2.4GHz nearly unusable. Luckily there is a spot to solder it on and should be enough. Unluckily, making the shield itself will require some creativity.