This weekend, I succeeded in swapping out the stock USB socket on my RaspberryPi and replacing it with a PCB header socket. I wanted to do this, to suit the case I want for my RaspberryPi. I have a requirement for a 4-port USB hub, and wanted to avoid having two power supplies. So the modification I made now means I plug in one USB cable (with a PSU with sufficient current), and have a four port powered USB hub connected directly through to Pi board.
As its been pointed out this completly 'toasts' the warrenty. However my initial tests show its all working as expected, and there does'nt appear to be any slow down in speed.
I thought I'd put together some instructions on how I did it, and the pitfalls I experienced.
This could go very wrong
I had some very scary moments in doing this. At a couple of points I thought I'd lost my Pi. This is not something I'd recomend to those with a faint heart, or an adversion to danger.
I used a temperature controlled soldering iron (up to 450 °C), de-soldering tool, and a dremel to get the everything swapped over.
Removing the USB socket
Heat up and remove as much solder from each of the pins, including the four stress bearing pins. As became a common theme with this process, I could only get so much heat in to the pins. I found the solder hard to heat up, and suspect the whole socket just acted as a big heatsink. I was cautious in putting the iron on to each pin for too long. Despite my best efforts with a soldering iron, and de-soldering tool, I could'nt clean out the holes, nor get the socket to budge.
Go through the socket then
In the first bit of perverse logic, I thought that what I really need to do is remove the USB socket, not un-solder it. So I decided to come down through the top of the socket, rather than trying to lift it out cleanly. At the top rear of the port is a small clip, just drill through this. Then using a dremel make a cut on each side of the USB socket. I can't describe the next stage in detail, since a bit of a Red mist desended on me. By pulling bits out carefully, and bending back and forth, I ended up with bits of the USB port in one pile, and 8 legs sticking out of the Raspberry Pi. From a combination of heating the top of and bottom of each pin and applying some gentle pressure, the legs came out much easier.
Having looked at it I realised why I had so much difficulty with the removal. It seemed to be that each pin had a small amount of solder on both the top and bottom of each pin. So I could never get enough heat / suction to remove all the solder cleanly.
Cleaning up the holes and removing the traces of solder
Even having got all the pins out of the holes, I was left with certain holes plugged with solder.
Initially I thought perhaps the tip of the soldering iron was too large, so filed a tip to a sharp point. This was as simple process of placing it in a drill and using a needle file to get the tip sharp. Effectivly a budget lathe.
Again there was still problems in getting enough heat to melt the solder. I needed a way to conduct heat through the whole plug. So rather than trying to fight things, I came up with a crazy idea of adding more solder to each hole. When I subsequently heated this blob up, the heat conducted through the plug. A single use of the de-soldering tool, pulled the remaining solder out, and left a nice clean hole.
Adding in a PCB header, and connecting the cable
This is an easy step. Just put in a PCB header and solder the legs in place.
To ensure that the wires of a USB cable (well four port hub) was correct I just traced the wires, from the end of USB cable to pins in the old socket. If you're using this as instructions, just make sure the correct wires are in the right place by checking with this image. From nearest the network port the order is
Red, White, Green then Black.