I’ve made my first attempt at an expansion card with a Dual USB A port module.
Aim:
I wanted to connect a keyboard and mouse to the same module to allow the other USB module to be used for an external hard drive. Transfer speed wasn’t important, so I decided USB2 would make everything a little easier.
The process:
I started with the cheapest 2 port USB2 hub I could find on ebay.
A grinder was used to cut the hard plastic open with only cosmetic damage to the components within. I previously tried a scalpel and heat, but neither were effective.
I downloaded the official expansion card and printed it for a test fit. I initially decided to place the USB ports side by side, but the USB devices are slightly wider than the ports, and would intersect when plugged in.
I modified the SCAD file to allow for more space for the angled USB ports. A few redesigns later and I was mostly happy with the fit of the parts. I decided it was easier to use glue than to design a way to hold all of the parts properly.
ExpansionCard 2USB2.scad (10.2 KB)
ExpansionCard 2USB2.stl (54.6 KB)
De-soldering the wires was relatively simple and only required 3 hands. The data wires are a ± pair, so I made sure to cut them to the same length. Re-soldering everything was finicky, but not overly difficult.
Final thoughts:
I’m slightly disappointed that I couldn’t fit the USB ports completely within the module. If I try this again, I could buy a USB hub chip and make a custom smaller PCB.
Taking pictures at each step saved me when re-soldering the connections. I was able to reference the pictures to make sure all the wires were in the correct locations.
I didn’t use enough glue the first time, so the USB C port was pushed into the module when plugging it in. A second round of glue seems to have fixed everything.
Proper mounting points would have been better, both for structural support and repairability. The glue was adequate for a cheap prototype.
Starting with an existing hub meant that I could test everything before soldering, and this helped with debugging.