Sometimes when you’re making a PCB that you plan on programming over USB, but you only plan on plugging in a couple of times, it would be nice to make that connection without another BOM item. Over on GitHub [AnasMalas] has released a PCB edge USB-C connection symbol/footprint to do just that!
This isn’t the first PCB edge USB-C connector we’ve seen, but this one has some nice features. It’s available in both KiCad and EasyEDA formats, allowing you to easily add it into your preferred ECAD software. As well as supporting multiple software packages, there are two versions included: a 10-pin and 14-pin version. The 10-pin version has, on each side, 2 USB voltage pins, 2 ground pins, and a CC1 or CC2 pin on its respective side; this version is ideal if you’re looking to just supply power via the connector. The 14-pin version has all the pins of the 10-pin version with the addition of four data-positive and data-negative pins needed to relay information to the board, ideal if you’re planning on programming a microcontroller with this connection.
One important note is that, while most PCBs default to 1.6 mm thickness, if you use this connector you’ll need to drop that down to ~0.8 mm to properly interface with a common USB cable. [AnasMalas] also suggests using ENIG board finish to preserve the connectors on your USB cable.
For such a small and common connector, USB-C holds a ton of potential. Be sure to check out our series all about USB-C for more details.
Thanks to [Ben] for the tip.

That’s beautifully elegant. There’s something quite pleasing about just knowing the innards of any given device as attractive, or at least it offsets unpleasant aura “Oh god, hide it in an enclosure, I don’t care if I die in an electrical fire.”.
heh i’m not going to deny that it’s certainly an elegant solution, and an appropriate one for some use cases…but aesthetically when i look at i can’t stop seeing a lever arm and fracture point :) kind of funny how experience shapes our aesthetics.
maybe some through hole 0-ohm bridges with a little more distance to the board than usual?
FR-4 is awfully strong. More likely you’ll break your USB c cable’s connector.
You can snap FR4 pretty easily at 0.8 mm thickness.
You have s strong point here! (pun intended)
Strong enough for an occasional debug or firmware update connector. After all, the ENIG gold plating is only good for around 100 cycles.
Regarding shapes.. I see balls.
I wonder if you could toughen up the part where the usbc tongue meets the board. Maybe on the bottom a an uncovered ground plate that you could fatten up with solder after the fact. Have it spread deeper into the main board to provide some strain relief maybe. Although it would still be weakest right where the usb cable ends.
if you plan to solder anything extra it may as well be a connector
I do love raw PCB USB solutions. I will note, though, that upgrading to ENIG will almost always cost more than a BoM USB connector for the typical hobbyist board house order, so this isn’t the gimme solution for every project.
Good thing to lead with the “couple times” point to squash the inevitable rousing about how it won’t survive 1,000,000 insertions and other pointless HaD negativity.
When I was doing embedded design for aerospace systems, I needed a USB breakout for first-time configuration and RMA debugging. This was long before USB-C and the required PCB specs were too thick to pull this trick with mini/micro USB, and there was no open edge big enough for USB-A. I ended up putting pads at the edge where I could jam a mini header’s pins on them, but it wasn’t reliable so we ended up soldering a USB cable to the pads when needed.
Long story short, I would have loved this about 15 years ago!
Staggered holes and a right-angle 4 pin through-hole connector, with a separate (real) USB connector that you can share between projects. Staggered holes hold those guys surprisingly strong.
2nd the staggered hole suggestion. I’ve used this trick for ages for flashing bootloaders onto mcu’s just by shoving a six pin 0.1″ header (soldered to a ribbon attached to my programmer) into boards and then pulling the header out when done.