PCB Edge USB C Connector Library

(github.com)

145 points | by walterbell 19 hours ago ago

62 comments

  • userbinator 17 minutes ago

    There are USB-A drives which do this, and in my experience they are far less durable than ones which have an actual connector. Given the thinness, this is going to be too easily snapped off.

  • peteforde 18 hours ago

    In a similar vein, I discovered and have started using the Tag-Connect TC2030-USB to program/troubleshoot my boards. While it's technically/originally intended as a way to do JTAG debugging, I am completely enamored with the ability to drop a footprint on my PCB and be able to connect to it without having to place a relatively expensive connector (or a connector at all) that I don't necessarily want users interacting with.

    https://www.tag-connect.com/solutions-target-devices/usb-ser...

    They have FTDI versions as well, for those who want the full USB boot/reset treatment.

    Also, they have another connector for attaching to castellated edges. I think it's just so clever.

    • exmadscientist 15 hours ago

      They're fine for one guy using them on the bench but they are a nightmare for mass production. The 50-mil pitch is annoying to make work with a bed-of-nails fixture, the clips are fundamentally incompatible with production lines, either robot or human, the parts are expensive, and the cycle life is not there.

      I have had one too many arguments with firmware people who think these things are sufficient for production that I am just done with them by now. There are other ways to do it.

      • ACCount37 9 hours ago

        This reads like a skill issue to me.

        The only actual issue I had with Tag is that it takes up more space than an array of aggressively placed test points would. Which is still acceptable in some designs.

        If you can't hit a massive, enormous 1.27mm pitch connector complete with dedicated indexing holes with your jig, I can't fathom how that would be the fault of the connector.

        • anymouse123456 6 hours ago

          Not sure how this got down voted.

          This is truth.

          • Diti 5 hours ago

            >> This reads like a skill issue to me.

            > Not sure how this got down voted.

            You’ll notice the parent comment could have gotten the point across without sounding toxic, by just dropping the “skill issue” paragraph.

            See also: https://news.ycombinator.com/newsguidelines.html (the section about how to write a good comment).

          • exmadscientist 4 hours ago

            No, it is not. You may think my contract manufacturers lack skill. (No comment from me.) But I have to live with them and make things work.

            I try to get my CMs involved in design early. I think it is telling that whenever I give them choices, they reject Tag-Connect and pick one of the other options. Every. Single. Time.

            The connector that was specifically flat-out hard rejected was the TC-2070 14-pin version. The number of pins was part of the problem. Apparently (this was a while back now so I may be misremembering) they had trouble with the density at 0.050": 6 pins gives you a lot more room on the sides to squeeze stuff in than 14 does. So they have to do it with a special premade block that comes in and hits the pads, and that block was nearly-but-not-quite unobtainium for the 14-pin version. The CM hated the Tag-Connect in general and wanted it gone, so we didn't trust them too much, but then we tried to build the fixture in house and prove them wrong... after that experience I have joined them in their hatred.

            The fact of the matter is that there are many, many other good ways to do it, so it's not Tag-Connect or nothing. Castellations are right out in HVM because of the cost hit, so that rules out Edge-Connect and friends. Würth has WE-SKEDD which looks like the same general thing as Tag-Connect but I've not had cause to try it.

            My favorite thing to do, if space allows, is to just put down the unshrouded surface-mount header. Cortex and ESP parts nominally use a standard 0.050" header and you can just place it down. Then don't populate it, and you've got an array of pads that are long enough to stagger test probes on to in a bed-of-nails, or for bench use it is very easy to hand-solder the header on. Plus it's surface-mount so the space below the header is available for use (often things like pull resistors or ESD diodes go nicely here). The biggest wrinkle here is the solder stencil. You do not want to have paste put on these pads if you're not soldering the header, because you badly want your test pins to hit clean ENIG finish and not flux-covered no-clean solder (doubly nasty to probe, even clean solder is bad enough). So it's harder to do a small run of 100 bench-debug boards with headers then the rest as production. You usually end up just soldering the header by hand (or having the CM do it), which is OK.

            Otherwise it's traditional pogo pads all the way. This is pretty much required anyway whenever the board is too small for other methods (did I mention Tag-Connect is huge? Tag-Connect is HUGE.) and it works great as long as you were already planning on fixturing.

            • eqvinox 36 minutes ago

              With the information you're giving, my decision would probably be to take the non-clip TC2030 or TC2050 (I've never needed 14 pins) footprint and overlay the footprint for a regular 1.27mm SMD connector on top of it. Cortex debug connector should be a good fit but I haven't checked.

              That seems to be the "get your cake and eat it" (though it does mean you're spending the space and drilling the holes for TC.) But still -

              > They're fine for one guy using them on the bench

      • technothrasher 5 hours ago

        We do smaller production runs of typically 100-1000 boards and have had good luck with the Tag connectors for programming them.

      • pidge 13 hours ago

        Out of curiosity what are the other ways?

        • BertoldVdb 12 hours ago

          Just put normal test pads next to the tag connect, a bit more spaced out. A bed of nails in the production line connects to that, the tag connect can be used for bench development.

        • davidzweig 5 hours ago

          0.1" header holes slightly staggered to grip inserted headers can work great and you don't need to have a special expensive cable on hand to use it.

    • wrs 17 hours ago

      I've been doing a cheap DIY version of Tag-Connect for some STM32 projects (6-pin debug). I just put the holes for a pin header near the edge of the board, and use a pogo clip to connect [0]. (These are readily available on AliExpress in various sizes.)

      [0] https://www.adafruit.com/product/5433

      • edanuff 14 hours ago

        I do exactly the same on my boards and use that same clip.

        • sam_bristow 20 minutes ago

          Back in my undergrad days I built a similar clip out of a broken clothes peg, hot glue, and some 2.54mm headers. It worked well.

    • _Microft 12 hours ago

      Maybe you like this - "paw connect", a whimsical version of the footprint for this connector:

      https://github.com/LeoDJ/Paw-Connect

    • the__alchemist 7 hours ago

      I wish the cables weren't so expensive! They do wear out after a while; had one die that way. Using the 2030-NL STM32 6-pin one.

    • mmoskal 15 hours ago

      I had good experience with carefully spaced holes in PCB and a 50 mil header, see https://jacdac.github.io/jacdac-docs/ddk/firmware/jac-connec...

    • Brian_K_White 17 hours ago

      I just use ordinary straight pin headers and stagered via holes. The board just has vias and the cable just has a plain pin header not even pogo pins.

      • stavros 7 hours ago

        Why vias? So the pins don't go all the way through? Wouldn't any disparity in the lengths of the pins make that pin not touch?

        • azdle 5 hours ago

          I think they probably mean standard through-holes. It's the old trick where you stagger the holes just enough that the flex of the pinheaders still let's them be inserted, but have just enough friction to stay in place while you're flashing or whatever.

          • Brian_K_White an hour ago

            Right, plated through holes, but with almost no exposed anular ring. As little as I can get away with without getting mask sprayed down into the hole.

            For 100 mil pitch, 25 mil square pins: 36 mil holes, 6 mil off center, 12 mil hole to hole.

            The short side of a generic pin header is the side that goes in the holes, so the long side is free to accept dupont sockets and shunts the same as if you had the same pins soldered in the pcb. So the cable is just ordinary programmer fly wires with female dupont ends. You don't even need to make an actual cable.

            If space is tight on the pcb then it does use up more pcb than pads that leave the other side free. And pogo pins are going to be a lot faster for producing something in numbers.

            I don't mind buying nice stuff like a fancy purpose made good-working tool for myself but I'm always making open source projects and one design goal is to require as little as possible, and as generic and universal as possible from the user. So I avoid fancy special things where possible. It's not designing for commercial production runs nor designing for one-off for myself, it's designing to a kind of a platonic ideal to strip away anything unnecessary and yet try to meet 2 opposing goals at the same time as much as possible: Don't require special tools that make things work reliably because of how fancy the tool is, and don't require the user to be a zen master craftsman that can attain a successful result with rocks and nails. Try to make the process reliable and repeatable while still only requiring basic materials and supplies. As much as possible anyway.

            Pogo pins are pretty common these days and not exactly exotic or expensive any more so maybe I can start using them.

            Then again, the through holes do 2 extra things besides make the connection.

            With pads you need to aim/register the pins to land on the pads, and you need to hold them there. That means aiming with your eyes and holding with at least one hand, or it means adding some kind of extra registration and grabbing features to both the pcb and the cable, like extra drill holes or slots and extra plastic shapes on a special cable-end etc. Or no extra features on the board and instead a whole clamping jig that holds both the board and the pins.

            Since these are holes that pins go in to, you don't need any other form of registration to aim the pins at the pads. The pins go in the holes.

            And they hold onto the pins themselves, so you don't need any other form of retention.

            It's just like plugging a plug into a socket where the socket provides all that naturally.

            I have one board that needs two different connections like that, one for jtag and one for power and to temporarily close a jumper to write-enable the cpld. So a 4-pin and a 6-pin, 2 different cables in 2 different places. The entire board is slightly smaller than a DIP-28 so no room for any real connectors. You just stick the cables in and two different cables hold themselves with zero hands while you operate the flashing software. The wires are all plain dupont wires stuck on the pins, no solder, and 2 of the pins just have a generic jumper on them. It's completely basic and not-special and works perfect.

            I have another board that needs 28 pins in a small space. For that one I used 2.0mm pitch pins in straight rows not staggered, but with the holes only 1.7mm apart. In that case it's the long side of the pins that goes into the holes, and the short side is soldered into a programming adapter pcb that goes into a programmer. The pins are in 2 sets of 2x7. Each set of 2x7 has 2 straight rows of 0.72mm holes 1.7mm apart. What happens there is, as the pins start to lean over, the top of the pins hit the opposite side of the hole on the top of the pcb, and don't want to go any further. The pins wedge solid and make 4 points of contact, 2 on bottom and 2 on top, and the board won't go any further even though the pins only just poke out the top and there is still almost 2mm of travel left. So you have a lot of remaining travel to just push a little more if you get a bad connection. It works great and no special parts anywhere.

          • stavros 5 hours ago

            Oooh that's a great trick! Thanks, I'll try that on my next board.

    • jkestner 17 hours ago

      Same, enamored and I’m not even the EE. Elegant, no cost on the product side, and I don’t have to take the board out of the case to access it.

  • dvh 12 hours ago

    Doesn't it require ENIG? I wanted edge connector for my pcb project but it adds $20 to the price of pcb, that's just too much. Anyone knows card edge alternative? I'm thinking pin header but that's not very user friendly. Edge card can be inserted blindly even if you don't see the connector, pin header would probably just bend irl.

    • tuetuopay 7 hours ago

      I've done HDMI edge connectors like this using plain HASL without too much trouble. Just don't forget to remove all soldermask on the connector path, they'll dirty out quickly otherwise.

      But, now I do ENIG everywhere because it's often the same price as lead-free HASL (or so close it does not matter), while looking way cooler. I've started to take quite seriously leaded stuff now, especially since low temperature lead-free solder exists (SAC305).

    • the__alchemist 7 hours ago

      ENIG sounds expensive right? Double the cost of your board or w/e? IMO it's no big deal because::

        - A: If you want a 6 or more layer board at some places, you have to get ENIG anyway, and solving routing puzzles isn't my idea of fun.
      
        - B: The PCB price is a small portion of the overall price anyway; parts and SMT dominate. So you're paying 2x as much on 15% of the total or w/e.
  • 15155 18 hours ago

    What PCB thickness is optimal? The USB-C tongue on a shieldless part I use is ~0.7mm, which is a pretty thin PCB.

    • Taniwha 18 hours ago
      • peteforde 18 hours ago

        That is a very thin PCB. For anyone reading this, 1.6mm is standard.

      • jmgao 14 hours ago

        I've found 0.8mm to make much more reliable connections, since the specification says that the tongue should be 0.7mm. 0.6mm will disconnect if the cable is angled in any way.

      • Taniwha 18 hours ago

        +copper+ENIG is going to make that 0.7mm

    • webdevver 18 hours ago

      i wonder how often you can plug/replug the connector in this case. how will the pcb material hold up? with my press-fit or clip-fit (is that a term?) 3d prints, ive noticed that 20 cycles can be sufficient to induce substantial 'loosening'.

      • Kirby64 15 hours ago

        It’s likely in the order of 10-30, especially with something like ENIG as a finish. If you wanted more cycles, you’d want to switch to a hard gold finish which would likely increase the cost substantially.

        This is truly only for a debug port, not anything else.

      • ggm-at-algebras 17 hours ago

        Plug an OTG cable in and connect to that, so you don't repeat plug-unplug?

        • eternityforest 16 hours ago

          What about the force transferred by the connector wiggling? I think You'd need a very good mechanical design on the case to make it all work.

          • kgasser88 15 hours ago

            I don't think it's intended for thousands of mating cycles. It's a "free" standard programming/debugging/recovery/configuration interface.

  • the__alchemist 4 hours ago

    This is very cool! What is the practical intent, given USB ports are 69c each? To save vertical space? I am thinking: Neat this is elegant and would work! But I can't think of any scenarios (off-the-cuff.) where I would choose this.

    • user_7832 3 hours ago

      I have no idea how easy it is to implement this in KiCAD, but if it is - prototyping with this can be faster if you're eg making something like a DIY keyboard. Fewer things to solder, which is very nice if you struggle with it.

  • JKCalhoun 17 hours ago

    That's cool but I am not sure how a customer of mine would feel if I shipped a board to them like that. (I could see trying it on a project for myself, though.)

    • mananaysiempre 16 hours ago

      The problem with USB-C connectors for hobby projects is that they are ass to solder by hand—I’m still looking for one that would use a larger pitch by shorting the four USB pin pairs for either orientation. If you’re shipping something to a customer, I think it’s fair to assume that you don’t really have that problem :)

      • LiamPowell 12 hours ago

        They're also ass to make PCBs for. The second you need 2oz or higher you start to really push the limits of what most prototype shops can do.

        This is a pretty standard 2.0 receptacle, you've only got 0.2mm between pads if you follow their footprint (literally the limit for soldermask bridges on 2oz at JLCPCB): https://gct.co/download?type=PDFDrawing&name=USB4105.pdf

      • murderfs 14 hours ago

        Get a hot air gun: it'll make your life way easier. You can tin the pads with a soldering iron, put the connector on and squirt some flux on the leads, and then just blow hot air until it reflows into place.

        • The_SamminAter 13 hours ago

          What do you do if the structural through-holes already have solder in them, that wick doesn’t seem to get? I’ve been trying to put a new USB C port onto my switch for quite a while now. (Now that I think about it, I can probably just shorten the prongs on the port and add solder after for structural strength).

          • 0_____0 8 hours ago

            I often add solder to make it easier for the wick to get everything. If the original assy was Lead-Free, using low temp solder (I can has lead? As a treat?) may make a difference here as well. Flux pen on the solder wick also seems to help especially if your wick is kinda crusty.

          • ahartmetz 12 hours ago

            A desoldering pump (manual model, $10 or so for a decent one) is very suitable for removing solder from through-holes, if that is the main issue.

        • Hackbraten 13 hours ago

          How would tinning those tiny pads not create a massive bridge between them? Does the bridge somehow go away in the reflow phase? (Not familiar with reflow at all)

          • amelius 2 hours ago

            Make sure there is soldermask between the pads. This makes soldering much easier!

            (If your foundry can't fabricate it, then make the pads thinner until they can fabricate the soldermask.)

          • etrautmann 13 hours ago

            Yes, the surface tension of melted solder pulls the solder to just the pad areas (assuming you don’t have far too much)

          • The_SamminAter 13 hours ago

            Using with a little flux while tinning usually prevents the pads from bridging

          • foldr 11 hours ago

            To add to the sister comments, you can quite easily remove such bridges by adding flux and then touching each individual pad with a fine tipped soldering iron. It sometimes takes a few tries, but eventually the solder that’s touching the solder mask will either be wicked onto the iron or move onto one of the neighboring pads. (The trick is to touch just the pads with the iron, and not to try to attack the solder bridge itself.)

      • exmadscientist 15 hours ago

        Do you find the 6-pin charge-only Type-C connectors too small? Or the 16-pin 2.0-only ones? They seem reasonably hand-solder-friendly but I admit I've been fortunate enough to have the factory handling them for me.

        • mananaysiempre 15 hours ago

          Yeah, I find the 16-pin ones a little beyond my skill. They also feel silly—why can’t I have one with just six pins for D±, VBUS, GND, and CC1/2? I guess I could have a factory make a bunch of modules like that for me, but it definitely feels like a thing that should already exist.

          (There are passive A-to-C adapters, so I see no reason why I couldn’t short pin pairs like that.)

          • JKCalhoun 3 hours ago

            I have soldered the 12-pin, power-only USB-C connectors. The real breakthrough came though when I tried a hotplate rather than soldering iron for the USB-C connector.

          • exmadscientist 4 hours ago

            You cannot do that because of how the connector flips over.

            (Believe me, I have tried to make it work.)

            • mananaysiempre 4 hours ago

              Could you clarify? As far as I can tell, GND is A1/B1 and A12/B12, VBUS is A4/B4 and A9/B9, D+ is A6/B6, and D− is A7/B7, and each A pin swaps with its B counterpart when I flip the connector.

  • peterburkimsher 15 hours ago

    If you're interested in other PCB edge connectors, here's an HDMI one I designed:

    https://forum.kicad.info/t/hdmi-pcb-edge-connector-for-raspb...

  • Velocifyer 6 hours ago

    I was looking for this for a while!

  • izonu 13 hours ago

    Here is a similar project in the sense that it uses no connectors on the PCBs, using a SOIC-8 clip to bite into the board. I think it's pretty clever.

    https://github.com/SimonMerrett/SOICbite/

  • geepytee 15 hours ago

    Very clever packaging of a connector