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.

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.

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.

Not sure how this got down voted.

This is truth.

>> 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).

Point taken. Thanks!

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.

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

If you're insistent on Tag-Connect, that's a pretty good way to go. Those legs are a big part of the problem and so the No-Leg version helps a lot. But then it also falls out of the board....

Seriously, I tried to like Tag-Connect. I did like it before supporting a CM and a hardware team trying to use it (and lose the cables...). Now I just plain don't think it adds value over the alternatives. The header is three cents. Three. Cents. The cable is $39 (with legs, $34 without). That buys you over 1,000 headers and then you can use the free cables that come in the box with all the debug probes and live in the pile over there in the shop.

You can get retaining clips to hold it on. While these can be a bit fiddly, I’ve found them good enough for bench testing with no legs tag connect

https://www.tag-connect.com/product/tc2030-retaining-clip-bo...

Bending the little pins also works (they will tend to bend themselves after a little while of use anyway), but at the cost of making insertion a little harder as well. I found that to be the best compromise for me, but YMMV.

To be clear, I'm not criticizing the CM and didn't get hung up on the OP's tone, though I can see how folks would. Sorry about that.

I can understand how folks have issues with TC connectors.

As a counterpoint, I run a small CM and engineering firm and we love Tag Connect.

If you're dealing with truly high volume runs, get the ICs programmed before they're on the boards.

For smaller runs, the clipless TC connectors work great IME.

> If you're dealing with truly high volume runs, get the ICs programmed before they're on the boards.

That is absolutely 100% the way to go.

However, this week I got tremendous pushback on this for a current project with a build volume in the mid six figures... exactly where you'd want to be using pre-programmed parts. It took me a while to figure out what was really happening was the firmware lead (who thinks himself an EE) was spewing out nonsense to cover for the fact that he'll never be ready to deliver in time to preprogram anything. I wish he'd have just said that and saved us all the nasty argument....

That kind of thing definitely gets under my skin more than it should.

I'm sorry you had to deal with that!

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

Out of curiosity what are the other ways?

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.

This is the way

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.

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

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

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.

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

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

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.

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?

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.

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.

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

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...

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.

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.