Author Topic: Suggestions for SMD programming header  (Read 8246 times)

0 Members and 1 Guest are viewing this topic.

Offline michaelivTopic starter

  • Frequent Contributor
  • **
  • Posts: 260
Suggestions for SMD programming header
« on: March 14, 2016, 11:33:00 pm »
Hello,

I was wondering if anyone had any suggestions for what programming headers to put on prototype PCBs, in order to easily connect a programmer to the micro on the board.
I'm looking for 4-wire(STM32) and 6-wire(ATMEGA) connections.
So far I've been using either DIP 2.54mm headers when space was not that important or 1.27mm SMD headers. However these tend to pop out rather easily and it's easy to insert them the wrong way around.
Very small size and 90 degree angle would be a major plus.
Something like a MicroUSB female jack (for the 4-wire and obviously not using USB protocol) would be ideal, but not actually MicroUSB since there is generally another one on the board and I would like to avoid any confusion.

What do people here use ?
Thanks!
 

Online Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1684
  • Country: us
Re: Suggestions for SMD programming header
« Reply #1 on: March 14, 2016, 11:51:37 pm »
Check out these guys: http://www.tag-connect.com/
Complexity is the number-one enemy of high-quality code.
 

Offline rx8pilot

  • Super Contributor
  • ***
  • Posts: 3634
  • Country: us
  • If you want more money, be more valuable.
Re: Suggestions for SMD programming header
« Reply #2 on: March 14, 2016, 11:52:52 pm »
I only use the Tag Connect. Its awesome, easy, and tiny.

http://www.tag-connect.com

Sent from my horrible mobile....

Factory400 - the worlds smallest factory. https://www.youtube.com/c/Factory400
 

Offline KL27x

  • Super Contributor
  • ***
  • Posts: 4108
  • Country: us
Re: Suggestions for SMD programming header
« Reply #3 on: March 15, 2016, 12:51:14 am »
I hate Tag connect.

If the connection is just for flashing firmware, I use simple single row of pads with 50 mil spacing. I make my own pogo pin connector with high quality pogo pins which can be replaced and swapped for different heads.

Tag connect needs holes in your pcb. This is not compact. This is more space than just pads. Holes very rarely help.
Tag connect necessitates at least one extra via, at least.
Tag connect pins stick all the way thru a 0.062" pcb... It would be nice if Tag connect would work on a flat surface. Why are the damn pins so long?
Tag connect uses a double row which makes the pinout non-intuitive. And making it stupid if you also want to add a redundant hard/header connector. (Which I sometimes put on a proto PCB, such as OP asked about).
The double row and guide pins also means the connector must be placed straight up and down. Manually flash a batch like this and try and find a comfortable position to do so. It's near impossible. Using CNC or arbor press? Sure... after you find a way to attach the HDPE bead to your jig... And then the stupid guide pins are pointless and just get in the way.
Tag connect has two guide pins on one side and 1 on the other. This makes it impossible to use backwards, but it also makes it very difficult to line up straight, visually. Optical illusions, and all.
If using simple pads, it's because you want to save space on a single board.... or because you are going to batch flash a lot of boards. Which is more likely? I think the latter. Non-reversible guide pins are not necessary in the latter. It might take a few seconds to verify the correct orientation on the first one. No big deal. Make one pad on your SIL row square. Problem solved.
Tag connect conveniently comes with a stupid, inflexible ~6" cable with a 6 pin RJ connector... too short to be useful. But way longer than necessary as a pigtail. And RJ jacks are freaking huge.
And the HDPE little "bead" you're supposed to hold onto while using it? Hopeless.

If you want a more permanent (but cheap and space-saving) connection for say debugging, then a row of 100 mil spaced plated thru holes with "wiggly" placement will hold a pin header.

Tag connect solves one problem which needs to be solved. They sell the pogo pin interface, already built. It also solves another couple problems that don't need solving. And the interface sucks. A lot of hardware designers love it. The guys that flash your boards don't.
« Last Edit: March 15, 2016, 01:20:41 am by KL27x »
 

Offline rx8pilot

  • Super Contributor
  • ***
  • Posts: 3634
  • Country: us
  • If you want more money, be more valuable.
Re: Suggestions for SMD programming header
« Reply #4 on: March 15, 2016, 01:14:41 am »
I have never really concerned myself with any of those issues - for my applications which are generally quite tight, I love it. For at least 3 of my boards - a header would not fit at all. For upgrades/maintenance it's just so easy to push this thing on the PCB and press a button.

The 3 alignment holes are small, and you only need big holes if you choose the captive TAG-CONNECT. The double row keeps it smaller. Who cares about the pin arrangement after it is saved as a library part? I have never used a redundant header but not sure why the tag-connect would make that any harder. The pins are long enough to ensure alignment before contact - this is a good thing. I simply put the PCB on a piece of ESD foam if it is being programmed on a flat surface. As for the cables, they seem to make any length you need. I originally used an AVR ISPMKII but then switched to an ATMEL ICE. I modified the cable in about 10min and never have to mess with it again.

I have both latching and non-latching versions but I never use the latching. I have the captive pcb adapter to hold it in place for development. For production, it is too easy to line up a bunch of boards and make one handed connection leaving the other free to push the programming start button. I would never go back to headers if I can avoid it.
Making my own special version is possible, but why would I bother for the cost of the tag-connect.

Factory400 - the worlds smallest factory. https://www.youtube.com/c/Factory400
 

Offline KL27x

  • Super Contributor
  • ***
  • Posts: 4108
  • Country: us
Re: Suggestions for SMD programming header
« Reply #5 on: March 15, 2016, 01:29:24 am »
The double row keeps it smaller is maybe a matter of opinion. I don't see 6 pads SIL as being any larger than 3x2 pads footprint. Maybe 5x2 is something. I've put 1x5 headers places where 3x2 would be a tighter fit; probably need to make the board bigger, in fact.

Quote
The pins are long enough to ensure alignment before contact - this is a good thing.

In fact, they're wayyyy longer than necessary for that.

Quote
I have never used a redundant header but not sure why the tag-connect would make that any harder.
Because it's a double row... If you make a proto board with a pluggable connector, you have to route this double row twice. A SIL row can be multiplied as many times as you want without any extra routing/vias.

Quote
I have the captive pcb adapter to hold it in place for development.
You got me here. I didn't know this existed. For my protos, I either add an extra pinheader. Or I hand solder a connector onto my row of ICSP pads.... which is all the easier if it's SIL and I don't have to refer to a library footprint or a diagram.

Making my own.... simple reasons.
1. Replacable pins. You can slip out worn out or bent pins and slip in new ones. You can select different pin heads for different purposes. In case there is flux on the board, you can use the spear head pointed ones with a higher spring weight. If you accidentally forgot to remove the paste layer on your ICSP header (oops!), you can use serrated head pins on soldered pads. Etc.
2. Remappable. Sometimes I switch the pinout to save space on a board. My custom interface has a couple rows of pads where I can swap the pinout. I have even made a few custom interfaces with asymmetric pin spacing specific to a pcb, to allow gaps for simpler routing on the pcb.
3. Ergos and/or interface to a jig.
4. Button. You keep mentioning this button you have to press with your other hand. I press the button that is on my ICSP interface. Because I'm an electronics engineer and I make things operate the way I want.
5. Positioning... much easier to position SIL row of pads without guide pins. I've done hundreds if not thousands of boards with Tag connect by hand and by arbor press. I've done thousands with an SIL pogo pin interface by hand, by CNC, by arbor press. I hate Tag connect with a passion. Guide pins are not necessary. It's the asymmetrical guide pins and the straight up/down positioning that it mandates combined with the ergos of the interface which make Tag Connect a pain to use by hand. My interface is shaped like a pen. You can see what you're doing. You can make fine adjustments to position. I would rather my surgeon use a scalpel shaped like my interface than to use a little blade on the end of a small plastic nub where he can't see what he's doing and can barely make a proper, repeatable adjustment even if he could.
6. It's way easier than you think. No CNC router or 3D printer necessary. All you need is a pcb layout. I solder the pins holders flat to a pcb. Two pads per pin. Reflow one end to straighten the pin.
7. No matter what lengths it comes in, I bet the Tag Connect cable is still a relatively inflexible piece of telephone cable with an RJ connector. No where to access/tap those traces for other purposes. No way to change the cable or connector without surgery or a clunky adapter; and no way to secure your solder connections and/or affix anything to any part of this interface other than with heat shrink, hot melt glue, and wishful thinking. It's an HDPE nub connected to a rubbery vinyl telephone cable. No place for screw holes. No flat spot to mount it in a repeatable fashion.

Quote
I simply put the PCB on a piece of ESD foam if it is being programmed on a flat surface.
This is fine if you're the guy designing the board and flashing one of them. Even this piece of foam is annoying when all you want to do is slide the next pcb over and flash it. And finish the 200 boards that you are no longer impressed with and just want to get off your plate.

Quote
The 3 alignment holes are small
No matter how small you make a hole, there's still a minimum distance between the edge of a hole and a trace. The smallest hole in the world is an obstruction almost as large as a via. And it's on every layer on your board.

For high volume flash, the best is to flash the chips before you assemble the board. I have an amazingly simple solution for that without handling chips. No sending my firmware to a third party or paying a premium or planning for lead times.

*If Tag Connect is so great, why do even their distributors not use it? Microchip promotes and sells Tag Connect through Microchip Direct. I have purchased Microchip dev boards. I have 3 different Microchip programmers. I have never seen a Tag Connect footprint on any of them.  :-// I am sure they get a really good price on these Tag Connect interfaces.

There's only one place where I don't dislike Tag Connect. That's when the board is already installed in a tight location that is difficult to access. When you eventually get the Tag Connect guide pins in, you're home free. (If there's enough room under your board for the ridiculously long guide pins, of course!)
« Last Edit: March 15, 2016, 04:37:32 am by KL27x »
 

Offline donotdespisethesnake

  • Super Contributor
  • ***
  • Posts: 1093
  • Country: gb
  • Embedded stuff
Re: Suggestions for SMD programming header
« Reply #6 on: March 15, 2016, 10:27:11 am »
People seem to either love or hate Tag Connect, personally I did not like it, and nor do most engineers in the office. It's fragile, awkward to use and doesn't actually save much board space. The only thing in its favour is that the PCB side doesn't need a connector, which makes the bean counters happy.

But there are plenty of cheap PCB connectors, so that is not much advantage. For example, in this case a 4 pin JST might work.
Bob
"All you said is just a bunch of opinions."
 

Offline Fred27

  • Supporter
  • ****
  • Posts: 726
  • Country: gb
    • Fred's blog
Re: Suggestions for SMD programming header
« Reply #7 on: March 15, 2016, 10:46:36 am »
I get on OK with the TagConnect, but I only do low volume hobby projects. I can understand other people's frustration with them though.

Pogo pins seem to work well for custom headers. I've even seen a few attached to clothes pegs, such as in this thread.
https://www.eevblog.com/forum/manufacture/diy-quick-attachrelease-programming-clip/

Sent from my Nexus 6 using Tapatalk

 

Offline Jeroen3

  • Super Contributor
  • ***
  • Posts: 4078
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: Suggestions for SMD programming header
« Reply #8 on: March 15, 2016, 10:51:26 am »
Samtec SHF series with shroud: SHF-105-01-L-D-SM.
But you'd need to make a small pcb for production since the mating cable is a bit fragile.
Can't you use the DFU capability of your mcu?
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 895
  • Country: us
Re: Suggestions for SMD programming header
« Reply #9 on: March 15, 2016, 03:55:18 pm »
I have the captive pcb adapter to hold it in place for development.
I'm a fan of Tag-Connect in general, but man, those holder thingies suck hard. First off, they're $6 apiece. Ouch.

The bigger issue is that they lose their ability to capture the connector over time. It's a friction based fit, and once that friction is gone, you need another $6 (Ouch!) holder. This is much more of a problem with the TC-2050 (10 pin) than the TC-2030 (6 pin) because each holder has the same amount of friction, but has to overcome 66% more pogo pins on the TC-2050.

I worked on a project where we didn't have enough board space for the version with legs, and had to keep a TC-2050 on the board continuously (for SWD plus some other signals), and also needed to swap between different boards frequently. Those holder clips were constantly springing across my desk (Pling! .... "Fsck! grumble, dammit...") until I started wrapping a rubber band around the holder on the back and the ribbon cable itself. Not easy with only two hands.
 

Offline michaelivTopic starter

  • Frequent Contributor
  • **
  • Posts: 260
Re: Suggestions for SMD programming header
« Reply #10 on: March 15, 2016, 04:25:26 pm »
Can't you use the DFU capability of your mcu?
That's what I was hoping to use but generally I use the serial port as a serial monitor and software is holding locks on the COM port so if I want to flash i have to disconnect the software from the COM port and then flash. Also on ATMEGA's at least when flashing the COM port disconnects and re-connects after a short delay, making that annoying too. I then have re-connect the COM port monitor software.
 

Offline rx8pilot

  • Super Contributor
  • ***
  • Posts: 3634
  • Country: us
  • If you want more money, be more valuable.
Re: Suggestions for SMD programming header
« Reply #11 on: March 15, 2016, 06:18:45 pm »
I'm a fan of Tag-Connect in general, but man, those holder thingies suck hard. First off, they're $6 apiece. Ouch.

The bigger issue is that they lose their ability to capture the connector over time.

I don't use them very often, in two years+ I have not worn one of them out. That is not saying much since they don't see a lot of use. My use case is split between development and short production runs <100 pcs. Most of the time, I just hold the programming cable on the pads and click the program button on my computer. Every once in a while, I need to do rapid-fire iterations and the clip comes in handy. I would guess its good for a couple hundred mates, not too bad for $6. On my first few boards, I accidentally had the holes drilled too small and the result was that the connector was actually held in place by the FR4. Can't count on that I guess.

I was a mechanical engineer before electronics so I am sure that I could work out something a little better, slicker, easier - but as the owner of the company I'd rather just buy something that is done. I have had no fumbly challenges with the tag-connect but I could see it being a problem if you are impatient. I would estimate that I have made about 10k+ connections with tag-connect over 2 years and never was over whelmed by the apparent difficulty. Since I am also the mechanical engineer, I design the position of the pads with the rest of the system so that I can get to it without taking anything apart. The pins only protrude about .05" or so which is not a problem - especially if you think ahead a little bit.

One of my favorite things about tag-connect is that it's a few mouse clicks away from getting more. I don't have to think about it, design anything, work out the bugs. If any of my future engineers complain, I will remind them that I have used it quite successfully with no real issues at all. For a new product, I have to do everything from identifying a problem to shipping. The last thing I want is to develop my own fancy programming fixture.

Is anyone able to post pics of their custom solution? I am not making any claims that tag-connect is the best possible solution - just saying it requires very little effort to implement since it is a commercial product ready to roll. I  now have a whole bunch of product in the field that will need updates over time - tag-connect will be with me for a while.
Factory400 - the worlds smallest factory. https://www.youtube.com/c/Factory400
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 895
  • Country: us
Re: Suggestions for SMD programming header
« Reply #12 on: March 15, 2016, 06:54:00 pm »
I don't use them very often, in two years+ I have not worn one of them out.
Sounds like you were using them correctly!

They wore out on my project because we ended up doing most of our firmware development on final form factor boards that were incredibly space constrained (wearable product). Ideally, we should've had a development platform with the same parts on a much larger and more stable board, but that didn't happen. We did the whole project basically at the final form factor.

BTW, Tag-Connect made it into that project at my request because I was tired of dealing with the previous solution: hand soldering 30 gauge wires to 0402 resistor pads. The EE/Mech engineers had no room for a typical connector, but were able to squeeze in a no-legs TC-2050.
 

Offline rx8pilot

  • Super Contributor
  • ***
  • Posts: 3634
  • Country: us
  • If you want more money, be more valuable.
Re: Suggestions for SMD programming header
« Reply #13 on: March 15, 2016, 07:03:37 pm »
If it makes you feel any better, I am always working with final form factor PCB's. While I am working out the circuits and firmware - I am also working out mechanical issues and developing an assembly plan. I have seen development boards create more problems than they solve in many cases when it becomes apparent that all the software was worked out with a circuit that cannot fit on the final board space available.

Depends on the product but it sounds like both of us live in a space constrained world with strange mechanical shapes and limitations.
Factory400 - the worlds smallest factory. https://www.youtube.com/c/Factory400
 

Offline fra.gherard

  • Contributor
  • Posts: 19
  • Country: it
 

Offline dgtl

  • Regular Contributor
  • *
  • Posts: 183
  • Country: ee
Re: Suggestions for SMD programming header
« Reply #15 on: March 15, 2016, 07:29:10 pm »
We are using for development the ARM standard pin headers here, mostly the smaller one. The 2x5 pin 0.05in header can be either smd or through-hole and can be either shrouded or not. Depending on the project requirements, one of those is chosen. If there is room, shouded header is used to avoid connecting things wrong way. If the production boards will have jtag header populated, it will be smd; otherwise it may be th, too. If the header will not be populated in production, connecting it the wrong way by somebody else is not that big risk, so we can use non-shrouded variants for development.
I have adapter cables from the large 0.1in JTAG pinout to 0.05in pinout and these cables can be used wherever needed (if the jtag programmer has large and board has small jtag pinout or vice versa). Using the same pinout everywhere ensures that I still have the cables years later if some modifications are needed later on. Even if the programming adapters have been replaced or new ones have been bought that have the other pinout, they still can be connected up. There is nothing worse than a drawer full of custom cables for legacly projects, and still the one cable that I need is missing when it is needed 5 years later.
This also works for eval kits, as a lot of them have the standard ARM pinout. Same cables for prototyping on eval kits and moving to custom boards.
For manufacturing process, it depends... Some factory test rigs are using jtag/swd; a lot are using usb or uart bootloaders. Some higher volume devices have bed-of-nails test systems, that also program the uc and then there are duplicate test points for the swd spread apart (larger pogo pins are more durable).
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 895
  • Country: us
Re: Suggestions for SMD programming header
« Reply #16 on: March 15, 2016, 07:33:07 pm »
... it sounds like both of us live in a space constrained world with strange mechanical shapes and limitations.
Yup. I like those constraints, actually. :-)

My current project is also a wearable (much smaller than the previous), but this one *does* have a dev board that's got several test points as large vias, so you can just drop a bare scope probe in to see what's happening. I'm totally fine with doing development on the final form factor as long as it doesn't prevent you from doing proper testing/verification.
 

Offline KL27x

  • Super Contributor
  • ***
  • Posts: 4108
  • Country: us
Re: Suggestions for SMD programming header
« Reply #17 on: March 15, 2016, 10:15:03 pm »
Quote
The last thing I want is to develop my own fancy programming fixture.
I made my first pogo pen before I could even use CAD PCB software. Yes, that is right. I made an ICSP pen before I could even design a proper PCB. I was curious about the mass-production/manufacturing side of the equation back then.

I'm still using the same basic design. And I still haven't needed to go beyond toner transfer to make a custom pen. I could supply and maintain a whole army of techs with these interfaces, if need be. The per cost in any significant quantity would be about on par with Tag Connect, even including my time and labor and full retail prices of the components in small quantities. This is not only something I use for myself. It is something I could theoretically offer a customer, be worth my time, and be beneficial to both parties. (IMO). It is something I could theoretically supply to my own employees if need be, and it would not be a terrible pain. Compared to buying a fairly comparable item off the shelf.

And I'm not saying Tag Connect is expensive. It's not. If it saves you time, initially, it is worth it, even if it ends up being only a stopgap measure before you move on to something that may possibly reduce your own long-term labor (or labor costs) and possibly increase your own (or your employees) work satisfaction and efficiency.

Quote
Is anyone able to post pics of their custom solution?
I will post pics when I have more time.
 

Offline KL27x

  • Super Contributor
  • ***
  • Posts: 4108
  • Country: us
Re: Suggestions for SMD programming header
« Reply #18 on: March 16, 2016, 02:54:49 am »
They don't look like much. I made these many years ago before I had a lot of fancy tools. The two on the bottom were custom made for a specific board. You can also see the pins on these two are shorter and look really crooked. They are the cheap non-replaceable pins that are wobbly and do wear out. The longer pins on the rest of these interfaces I have actually never worn one out of even broken one, yet. In years. And even dropping the pens from 3-4 feet onto hardwood. The part that's soldered is just a hollow tube that the pins snap-fit into; so the entire pin is replaceable, if need be. They look fragile, but I no longer even use the special case I made for them when I have to pack one to go. I just drop them in the bottom of a bag with my programmers. It took me hours to find these pins in a Digikey paper catalog. If anyone needs a part number, I'll look it up on my Mouser account.

http://i18.photobucket.com/albums/b103/klee27x/Pogo%20pens_zpsjq7jh8b7.jpg

You can also see the 6 pin Tag Connect at the bottom, for reference. My Tag Connect interface is wrapped in hot glue and twine to give it a little bit of shape. The pins are also shortened and carefully filed and sanded under a microscope. A tac switch has been tacked on with hot glue.

Here's what it looks like when I'm flashing boards by hand. But if I have a lot to do, I will usually setup my two arbor presses. They are fully adjustable in height and they have adjustable fences. I get them both going at once. While one board is flashing, I am inserting a pcb into the other press. I can also use two programmers manually, one in each hand. My custom PK3 circuit and my fully custom PK2's have LED and piezo alerts to indicate status and pass/fail. Using both hands is not hard with these pens. But try it with Tag Connect and see how far you get. In special circumstances, I even use a CNC mill with a custom firmware with pass/fail verification input from the programmer.
http://i18.photobucket.com/albums/b103/klee27x/Pogo%20pens%202_zps8v0ksoiv.jpg
You can see there's an LED integrated into a thumrest on the top pen in the pic. This is for flashing PCBs over a clipboard, sitting in my lazy boy, while watching movies with the GF. (The pen on bottom just got a fresh and sloppy coat of silicone conformal coating.)

The tac switch on the pens shorts an auxiliary seventh signal line to ground (or can be switched to Vdd as per your needs). My custom PK2 and my modded PK3's port out the programming button trace to this seventh pin. Additionally, I have a PK2 for dev integrated in my bench in which I integrated the chip out of a 3.00 USB mouse to give this PK2 a toggle switch to choose between PK2 programming button and mouse click (for reading or erasing chips with one hand, after moving the mouse pointer over the desired function on the visual GUI).

Here's a picture of one of my toner transfer boards with a 5 pad SIL ICSP header on it. In this case, due to how the board is installed, there is no room for guide pins extending out the bottom! (This picture is a reminder of one of the things I like about the "low-pin count" PICs. The ICSP pins are all conveniently located for a tight ICSP pad placement, if necessary, right by the chip. IIRC, there are no vias for the ICSP traces, even.)
http://i18.photobucket.com/albums/b103/klee27x/DSC_3060_zpsk6yjruvr.jpg
Quote
I'm a fan of Tag-Connect in general, but man, those holder thingies
I must be incredibly stingy. For dev/debug on a final production board, I am just soldering a pin header to my ICSP pads with 30AWG kynar and hot snotting it down somewhere.

IMO Tag Connect is missing a larger market. They could sell pogo pin arrays as a 90 degree SMD PCB component. In DIL and SIL. With and without guide pins. This would be more flexible. I could see buying a premade array to save time, and creating the pcb with w/e pinout, features, and connector I might want for a given app. I find their complete solution a bit lacking and quite unadaptable.
« Last Edit: March 16, 2016, 05:42:08 am by KL27x »
 

Offline Helix70

  • Supporter
  • ****
  • Posts: 289
  • Country: au
  • VK4JNA
Re: Suggestions for SMD programming header
« Reply #19 on: March 18, 2016, 11:57:52 am »
For the programming header, I make an interface PCB from my debugger pin header to a Samtec edge connector - https://www.samtec.com/products/mec1-em. They fit standard FR4, you can get an 8 way - perfect for JTAG and power, and then you just put the pins on your PCB layout, nothing to buy in production. Hell, if you ask for samples, you can get 10 of them for free and all you need to buy is the PCB to connect to your JTAG.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf