Software for matching transistor pairs or quads?

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Is there any software around that can take most of the trial-and-error out of matching transistors? I googled for a while but didn't find what I'm looking for...

Here's an example to better explain what I'm looking for:
First of all we might as well as not be talking about any kind of parts here that might be matched - resistors, capacitors, bjts, jfets; anything really. Things like passive components with one value each or NPN's with hFE only make things easy, but it may get more complex if you consider multiple values like hFE and VBE, or JFETs with Vgs(off), gfs and ID at the same time.
I'll keep it simple for now, so let's say I have measured a batch of NPN's for their hFE and now want to have some pairs and some quads out of that batch. The pairs are no big problem usually - just put all the data into a spreadsheet, sort for the value in question and pick some adjacent parts as pairs. The quads take somewhat more time to find, as soon as all the quads are supposed to be matched against each other.
So I've picked my pairs first and now want to have four quads out of the remainder with their final hFE close to each other quad. If I'm left with 16 parts of all the same hFE, this is not a problem. But if the remaining parts are spread out over something like 20%, I'd be having a hard time picking an arbitrary quad, calculate the total hFE, pick another quad, calculate total hFE, compare, swap a single part for a closer match, then pick the third quad, ... and so on.

I'm thinking of a software that can be fed with the measured part values, regardless of what those values actually mean, like resistance, capacitance, VBE, gfs, you name it. A single value for a single part would probably be all that's needed most of the time. Then I want to specify what I'm looking for, like groups of 2/4/6/8/n and probably how many of those groups and to which tolerance. Click a button and wait for the results.
There would be two approaches for the software to take now: 1) simply find the groups with the closest tolerance possible (good to make the most out of the remaining parts) and spit out all the combinations together with the tolerance value, or 2) specify a number N and let the software find N groups with a tolerance within a given range. This would be great for cases where there're not enough "good" groups close enough - Say you have three groups within 3% but the next one is only 10% already. Then you would specify 4 groups and 10%, and the software would try the possible combinations and might probably find 4 groups matched to 5%.
Imagine doing this with a spreadsheet and a batch of 200 parts....
Another (third) approach might be to specify an average value and let the software find a given number of pairs/quads/whatever to a tolerance around that value. That'd probably be useful only if you had a really huge number of parts, though.

For a moment I have actually considered writing my own tool just for this purpose, but eventually came to this conclusion:

attachment.php



So If you know of any kind of software that somehow does anything (or everything) of the aforementioned, please let me know ;).
 

Attachments

  • automation.png
    automation.png
    25.8 KB · Views: 510
Member
Joined 2011
Paid Member
The free statistical software package "R" includes the powerful Kmeans Clustering algorithm which would probably be the way that research scientists would attack your problem if they hoped to publish their results in an uber-exclusive journal like _Nature_. Unfortunately Kmeans is not a hands-off, pushbutton procedure, and "R" itself takes dozens of hours (not dozens of minutes) to learn.

Since you're treating this as a univariate problem, matching on a single parameter value, I suggest you employ the powerful pattern matching capabilities of the human eye/brain.

Suppose you have N=100 electrolytic capacitors and you have measured the leakage current of each capacitor. Plot these N datapoints as a histogram and use the human eye/brain to look for peaks. Those are the regions where several capacitors have identical or very closely matched leakage currents. Use a colored pencil to circle the peaks.

You would probably do this at several different widths-of-histogram-bins. The bins are too narrow if very very few bins have more than one datapoint. The bins are too wide if more than, oh let's just say, ~80% of datapoints fall into bins with more than one occupant.

Plain ordinary spreadsheets offer a histogram feature; you could explore that. Google shows many dozens of matches for histogram AND bin AND Excel. I have also used the third party software package "PSI-Plot" which includes an especially easy to use histogram feature.
 
The histogram approach is certainly helpful in finding adjacent matches, but not any more helpful in finding quads. Take these two (actual) examples:

Code:
604
601
600
575

Code:
603
599
595
583

They both sum up to the same final value, but out of a batch of only 30 parts with a hFE range from 571 to 658 the histogram would've been a too coarse attempt, besides I needed four quads (and actually got four exactly equal quads).
Of course the matching is only as accurate as the preceding measurement, but especially with an ever shrinking batch of remaining parts I'd like the selection to be as accurate as possible - but ideally without having to try every possible combination by hand ;).


"R" might be a good solution, maybe even the ultimate solution, but before I get my head around that I'd rather try to write my own tool :cheers:
 
If you already use a spreadsheet and sort your component by value, why not distribute the components in zig-zag.
I mean, find the interval where 16 consecutives values have the least variance. That should be doable with the solver.
Then distribute the first component in group1,second in group 2, third in group 3, fouth and fith in group 4, sixth in group 3, and so on and so forth.
The groups should be well balanced.

Hope this simple solution help!
 
In the heyday of the Pass F4 amplifier I was matching IRFP transistors by the hundreds. When the lot numbers were consistent, transconductance and threshold voltage correlated very closely (I am not a solid state physicist, so I really don't know why...). Almost invariably, however, the distribution was bimodal!

Edit -- re statistics -- the package in Excel gives you the descriptive stats you need.
 
Hope this simple solution help!

This is certainly a great way to start out, just tried it. In my case I've had a tolerance of +3 -5 which can be zeroed out perfectly by swapping components between the groups. But there I'm back again at trial-and-error... Maybe a drag-and-drop tool that does the summing calculation on the fly might be the next best thing to look for?


When the lot numbers were consistent, transconductance and threshold voltage correlated very closely

No luck for me then with my batches of small signal BJTs and JFETs :(


Edit -- re statistics -- the package in Excel gives you the descriptive stats you need.

Care to elaborate :eek: ? I'm not an ace with Excel and statistics (or even higher level mathematics) and use OpenOffice...
 
No luck for me then with my batches of small signal BJTs and JFETs :(

If you purchase 25 small signal bjt's for current sources, there's a high likelihood you'll be able to get 4 or more decent Vbe or hfe matches for current sources.

Same with 25 jfets, but these are getting hard to source in TO-92.

For JFETs, gm is a function of Idss and Vp, so matching for Idss gets you families with similar transconductance.


Care to elaborate :eek: ? I'm not an ace with Excel and statistics (or even higher level mathematics) and use OpenOffice...

Excel has mean, median, mode, std deviation, histogram etc.
 
Member
Joined 2011
Paid Member
... out of a batch of only 30 parts with a hFE range from 571 to 658 ...

Post your data here and run a competition: who can get the largest number of "good" quads from this set? Who can get the "goodest" quads from this set? Who can do both?

I promise to enter the competition.

Be sure to write an unambiguous set of rules, laying out what is acceptable and what is not. How do you define and measure goodness? Etc.

I have an inkling of an idea that there might be a way to map trial solutions onto strings of bits. If so, then those bitstrings might be considered chromosomes for genetic algorithm optimizers (wikipedia) ....hmmm ....
 
I reported my findings on selecteing pairs of jFETs from a 600 batch of lsk170.

I got many pairs. Only a few dozen (<5%) individuals could not be matched to any other.
I got no quads ! No pair was close enough to any other pair to qualify as a quad set.

Clever software writing could not improve on that.
 
Post your data here and run a competition (...)

I'll post the data of the next batch, should I need some more quads :D.

The batches in question are basically non-existent anymore, so there's no much point in doing a competition. Out of 200 BC550/560 I have left about a dozen, and the remaining 176 JFETs in SOT23 somehow got scrambled (my cats, probably) so I'll have to re-measure them next time.


I wanted some quads out of the BC batch for a circuit using 4xNPN and 4xPNP in parallel at the input stage. The original circuit didn't ask for matched parts, but I wanted the hFE of the complementary quads to be as close to equal as I could get with what I had, and of course the hFE matched between both left and right channel.

The JFETs were for input stage duty, too, and I was hoping for some good complementary pairs here also. Unfortunately the lowest gfs of the N-batch was 3.4 while the highest gfs of the P-batch was 2.3.
Matching for Idss on the other hand yielded some good pairs (complementary ones, too), and even some quads to within 0.01mA. Didn't need those quads yet, but maybe in the future I might need four equal CCSes?
 
I'm thinking of a software that can be fed with the measured part values, regardless of what those values actually mean, like resistance, capacitance, VBE, gfs, you name it. A single value for a single part would probably be all that's needed most of the time. Then I want to specify what I'm looking for, like groups of 2/4/6/8/n and probably how many of those groups and to which tolerance. Click a button and wait for the results.

My solution is a long piece of scrap Styrofoam packing material. I mark it off with a felt marker in whatever increments make sense, then measure the parts and poke them into the foam according to relative value. When the parts are all measured, then the closest matching parts from that batch are obvious by visual inspection. If your measuring equipment can display percent deviation from a target value, so much the better -- you can save the marked foam for another sorting session.
 
Member
Joined 2013
Paid Member
Not to nitpick, but I'd suggest something other than standard white styrofoam to hold the devices - it's not ESD safe. Sure, bipolars and JFETs are pretty rugged, but still, why risk zapping your entire supply of devices. During this time of year, it's also common to have very low indoor relative humidity, making it more important to pay attention to random ESD problems that might be unimportant in warmer, wetter weather.

They make some black, carbon impregnated foam for holding chips and other leaded devices that would work very well for this use. IMHO, buying a sheet of this stuff will pay off in the long term. Barring that, 'pink' foam from some electronic device packaging is usually pink to indicate that it is static dissipative, and it may be dissipative enough for this use.

The black foam is hard to mark up, but a strip of tape can be applied for markings - a good idea to make sorting easier.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.