Resistor combination calculator - Page 1
Forum section: electronics / projects

author: Eliminateur
author_rank: Regular Contributor
timestamp: January 07, 2011, 09:52:15 pm
content: Here's the short version:I have a large bunch of assorted resistors WITH assorted tolerance values and i'm currently building a circuit and i require some weird nonstandard values(and standard as well).Before going to the electronics store, i might as well check wheter i have or can combine any of my resistors for this purpose.So my plan/what i need is:1) Enter all the resistors i have, ammounts, tolerance(AND maybe power) into a spreadsheet(google docs, maybe excel, whatever works best)2) Put my desired resulting value and tolerance and with some mathematic mumbo-jumbo the program/spreadsheet returns the combination(parallel/series/combination para-series) that will result into my value(taking tolerance into account(in the simplest way only take into account <X tolerance resistors, in more complex scenario, take all tolerances into consideration and see if results falls into resulting tolerance).could also put another option to chose a limit on how many resistors you desire in the result.i've been googling for something like this but the closest i've found is a website that allows you to enter a certain number of resistors and your desired value, but it's far limited as the data sample is too small to be of use.¿any ideas on the math i should do(i can't remember squat about advanced math/calc/stats from uni, always hated it hehe), the workflow or program to use?(one of my ideas is to make a program for this into my Casio 9800G calculator, but that would leave me with the data stranded there, and my other more advanced calc i haven't got the slightest clue how to program it).i don't know what would be the optimal path for the program(even if the loops aren't the best) to determine a value or return an error if it's impossible(and returning the resulting value and what resistor you need).what would be best?, try summatory of values <desired and record closest matches(and what would be "closest"?), then try parallel(but with how many parallels?, 2, 3, 4, 10?), and then try combination?(and how do you chose how to cobine them?meh, i'm so lost in this...cheers!

author: Bored@Work
author_rank: Super Contributor
timestamp: January 07, 2011, 09:55:16 pm
content: Here is your calculatorhttp://en.wikipedia.org/wiki/File:Nomogramparallelresistance.svgFrom those days when men were still men, and engineers still engineers.

author: Eliminateur
author_rank: Regular Contributor
timestamp: January 08, 2011, 01:05:30 am
content: i don't quite follow how that could help me as it's a graphical aid for calculating parallel resistance whilst i need a loop approach for method decision and minimization of difference/components.thanks anyway

author: jahonen
author_rank: Super Contributor
timestamp: January 08, 2011, 08:34:43 am
content: I have used myResistor optimizerfor some time now. It has been quite adequate for practical problems, despite the "brute force" approach.Regards,Janne

author: saturation
author_rank: Super Contributor
timestamp: January 08, 2011, 01:24:54 pm
content: Nice! Thank you.For my need I calculate non-precision resistances usually by determining current I need to find the wattage value to use, then just use a combo of 100kohm values I stock to zero in on the resistance I need. This is apart from the capacitance and inductance such combos cause in precision requirements.A single value like 100k in parallel/series combos can give a host of combinations you can use to zero in on the value you really need; its easier than stocking a lot of different types of values for resistors.Successive 100K in parallel will yield:50, 33, 25, 20, 17, 14.3, 12.5 etc., then mix series and parallel values until the value you need is won.Quote from: jahonen on January 08, 2011, 08:34:43 am

author: johnmx
author_rank: Frequent Contributor
timestamp: January 08, 2011, 05:48:06 pm
content: I use this one:http://www.eevblog.com/2010/01/07/useful-resistor-calculation-tool/

author: Bored@Work
author_rank: Super Contributor
timestamp: January 08, 2011, 05:59:55 pm
content: Quote from: Eliminateur on January 08, 2011, 01:05:30 amYou failed to understand how it can be used.

author: blackdog
author_rank: Frequent Contributor
timestamp: January 08, 2011, 07:15:16 pm
content: Hi Eliminateur :-)Try this little program, download is from my server =>www.bramcam.nl/Rescalc.exeIt wil help you with parrralel resistors.Maybe this Spreadsheet is also helpful =>www.bramcam.nl/Electric-Excel.xlsKind regarts,Bram

author: Eliminateur
author_rank: Regular Contributor
timestamp: January 10, 2011, 06:40:42 pm
content: oops, sorry for the delay, i was convinced i had setup the notify on reply but no... anyway, ive been looking at your posts and letme go by order:@jahonen: excellent soft it's almost what i had in mind, but i don't quite inderstand what's "upper and lower" resistors and it seems oriented for voltage divider, i don't quite follow it (for example, to use series alone, do i put the same value in to/from, then check series, ignore division factor, check available values and choose how many resistors in series to consider?, am i wrong?).@saturation: i already have this bunch of precision/non precision resistors and want to see what if i could accomplish the values i need with them, if i need to go get new resistors, it defeats the initial purpose.@johnmx: umfortunately not what i was looking for, that rescad soft you input a value and it tells you what closest Exx values you need to accomplish it and with what error, seeing as to reach a value i can use thousands of combinations with the resistors i have at hand it's not of much use.@boredatwork: explain it.@blackdog: similar to rescad it's for the reverse path of what i need(you need an X value and the program tells you the Exx combinations closest for it, then you go buy them/check those specific values), but again, i add a layer of complexity in that the soft should check not a Exx range, but a finite list of existing resistors to make the combinations(and it also uses a 2-resistor limit). All in all it's almost there but on the reverse path.What it is is extremely useful to find the combination(or direct value) for a resistor you just calculated in your circuit based on Exx values.I like how it presents the other results below, so far i think it's the closest to what i needNice spreadsheet, i'll save it for future use(doesn't has what i need for this problem as well)thanks everybody, now to see if the circuit works...

author: blackdog
author_rank: Frequent Contributor
timestamp: January 10, 2011, 08:34:53 pm
content: Hi,Maybe this program can help you a little...www.bramcam.nl/Res-Optimizer.zipUnzip en run the ResOpt.exe, Make a copy of the E96.res name it "Myres.ser" edit this file with "Notepad", put your values in it and save.Now your happy ;-)It uses a text file for the resistor values, you can put your resistors in it :-)Kind regarts,Bram

author: jahonen
author_rank: Super Contributor
timestamp: January 10, 2011, 09:14:33 pm
content: Quote from: Eliminateur on January 10, 2011, 06:40:42 pmYes, the resistor optimizer was originally for optimizing the dividers, but there is a parallel resistor optimizer tab available which lets you to optimize parallel combinations of resistors to achieve specified target resistance.I'm working on a new version, which has some enhancements, like series optimizing for target resistance and taking source and load resistances into consideration when optimizing dividers (I actually needed that feature).Regards,Janne

author: Eliminateur
author_rank: Regular Contributor
timestamp: January 11, 2011, 04:59:34 pm
content: @jahonen: looking forward to new version, because atm it can only calculate parallel combinations, does not take serial into account.a combination of rescalc and resitor optimizer would be awesome(bad thing about rescalc is that it only takes 2 resistors into account for serial resultants.@blackdog: yeah it's the same one that was posted before, i'll load my values into excel then export it to txt and see what happens :Scan you believe that my 2 largest local electro-shops almost do not stock 1% resistors....

author: jahonen
author_rank: Super Contributor
timestamp: January 11, 2011, 07:27:46 pm
content: Quote from: Eliminateur on January 11, 2011, 04:59:34 pmFYI, the new 0.45 version should be available now on the URL I posted before. Check it out!Note that although optimization using nominal value might get the value you are after, it does not improve tolerances. So resultant resistor still has bad tolerance. And of course, LC-parasitics will be multiplied compared to single resistor, sometimes that matters.Regards,Janne

author: Eliminateur
author_rank: Regular Contributor
timestamp: January 11, 2011, 07:56:38 pm
content: downloading....i'm not expecting better tolerance, it's just that i simply can't get the values i need here(we're in the stone age of electronics, for example, you simply cannot get any smd components at all).luckily my design is pure constant DC so i don't care about LC-values going haywire

author: Eliminateur
author_rank: Regular Contributor
timestamp: January 17, 2011, 05:22:31 pm
content: absolutely fantastic Janne, you deserve a box of cookies!Process was: inputting values in K in excel(along with quantity), exporting as CSV, replacing ";" and . to ,fiddling with number of resistors to get optimal results and deleting(or not) from source file if i depleted said value...not the most direct method but pretty straightforward and works like a charm!turns out i could build all the resistors i needed from the assorted box!, this just saved me a ton of cash and grief(large distributors that carry 1% resistors would only ship for orders >25$, and i needed at most 1~2$ worth of resistors...., PLUS the shipping charge, another 10$~)now ontowards the build!

author: brian1taylor
author_rank: Newbie
timestamp: May 18, 2014, 01:52:10 am
content: Hi all,For your information attached is a resistor combination chart I've used before. It is from Electronic Australia 1975 and contains the original Fortran program which I've transposed to C#. I like it because it shows all the best combinations in a couple of pages. A high resolution of the original is available at:http://www.logostechnology.com/ResistorCombinationChart.pdfBrian

author: mariush
author_rank: Super Contributor
timestamp: May 18, 2014, 07:07:37 am
content: There is another thread about a resistor calculator on this forum. Not to say that your contribution isn't appreciated, just point out that there are already some alternatives.There's also the online solution of using Wolfram Alpha for example, which was mentioned in one of those other threads:http://www.wolframalpha.com/input/?i=1234+OhmScroll down and you will see the engine giving you suggestions of series/parallel resistors to get to that value.

author: LukeW
author_rank: Frequent Contributor
timestamp: May 18, 2014, 11:07:16 am
content: http://jansson.us/resistors.htmlI like this site. Find a match to the closest E-series preferred value with whichever series you want, using either a single resistor or series/parallel combo.You can also do voltage divider calculations (eg. for opamp or regulator feedback) choosing E-series values combined to match your desired ratio most accurately.

author: acolomitchi
author_rank: Contributor
timestamp: July 21, 2016, 05:01:55 am
content: I'll just let this here:http://caffeineowl.com/electronics/calcs/rescomb/index.htmlJavaScript based (uses your browser), series/parallel or both, allows custom subsets of E12/E24, goes up to 4 resistor networks with a full E12 in input, 3 for E24, up to 6 resistor combinations for limited number of the input set.Cheers

author: Kirr
author_rank: Regular Contributor
timestamp: July 21, 2016, 06:09:26 am
content: Here is one another calculator:Resistor Network FinderSupports configurable stock (series, bases, range, gaps, extras), configurable target error, finds networks of up to 6 resistors including bridges, supports a list of target resistances. Runs on server side, so it's quite fast and won't freeze the browser (the downside is that in the unlikely event of too many requests the server might slow down). It's currently limited to 20 million networks per search.It also shows the schematic of each found network.

author: acolomitchi
author_rank: Contributor
timestamp: July 21, 2016, 08:59:39 am
content: Quote from: Kirr on July 21, 2016, 06:09:26 amDid the other one freeze yours? (is meant to work one a separate thread, WebWorkers and stuff).If it did, what browser have you used?

author: Kirr
author_rank: Regular Contributor
timestamp: July 21, 2016, 09:12:18 am
content: Quote from: acolomitchi on July 21, 2016, 08:59:39 amNo, but some other JavaScript-based one did (forgot now which one). By the way, congrats on a very nice tool! The dynamically updating list of matches looks great. I will soon add it to my list of calculators.(By any chance, do you have any interest in making a network solver too?)

author: acolomitchi
author_rank: Contributor
timestamp: July 21, 2016, 10:25:18 am
content: Quote from: Kirr on July 21, 2016, 09:12:18 amThanks.BTW,get on github, download it as a zip, unpack in a directory at you liking, start index.html and you get it no matter if the caffeineowl server goes down.Well, almost...some browsers are more finicky.Quote from: Kirr on July 21, 2016, 09:12:18 amYou mean resolving currents in a resistor network (Kirchhoff and the like)?If not, what do you mean?

author: Kirr
author_rank: Regular Contributor
timestamp: July 21, 2016, 04:00:58 pm
content: Quote from: acolomitchi on July 21, 2016, 10:25:18 amThanks, and nice of you to share your code. I should probably clean up and share my code too.Quote from: acolomitchi on July 21, 2016, 10:25:18 amI mean finding the equivalent resistance between any two nodes of an arbitrarily complex resistor network. It's a kind of opposite problem compared to finding the replacement network for a missing resistor value. When finding the network, you try to find the best network for specified value. When solving, you are given a network, and now you are trying to find the equivalent resistance. This is a fascinating problem, especially if the network is large.

author: mathsquid
author_rank: Frequent Contributor
timestamp: July 22, 2016, 12:24:24 am
content: Quote from: Kirr on July 21, 2016, 04:00:58 pmYes it is. There is a known solution for computing the resistance between any two points in a given network of resistors, but you need something like MATLAB or SageMath to compute it, because it involves taking the Moore-Penrose pseudoinverse of a noninvertible matrix. If you google "resistance distance", the formula is on the wikipedia page, but it's not the best explanation. The paper by Klein and Randic (http://link.springer.com/article/10.1007/BF01164627) has a good explanation, but unfortunately there doesn't seem to be a copy of it on the web. PM me if you want a copy.

author: acolomitchi
author_rank: Contributor
timestamp: July 22, 2016, 12:46:03 am
content: Quote from: Kirr on July 21, 2016, 04:00:58 pm"Arbitrary complex resistor network"...hmmm...nerd sniping, are you?From a pragmatical point of view, I'll say that the UI is going to take more effort that I can put in - if you volunteer to write the user interface and provide me the connectivity network (resistance between node i,j), then I'll consider.As for the actual computation, I'd go on this path:Simplifying complex resistor networks- for pragmatical real-world network resistors (on the order of hundreds up to 1000) would be feasible even in browser.If linear system solving is too trivial (it's only O(N3)complexity... with a little bit of elbow grease maybe a O(N2log(N)), then I can think of an approach of NP-complexity that is very simple to program:1. linearity of the system conduces to: the conductance of a resistor network between two nodes is the sum of conductances of all simple paths between the two nodes considered.2. plug in a simple algo to enumerate all the simple (no node repetition) paths between the two nodes - problem already known as NP hard (come on, don't be a wimp, what those computers are for anyway?) - compute the conductances, invert and come back with the answer.Speaking of nerd-sniping: have fun analyzingthis one.

author: acolomitchi
author_rank: Contributor
timestamp: July 22, 2016, 01:38:06 am
content: Quote from: mathsquid on July 22, 2016, 12:24:24 amThanks for the ref.

author: Kirr
author_rank: Regular Contributor
timestamp: July 22, 2016, 03:04:28 am
content: Quote from: mathsquid on July 22, 2016, 12:24:24 amThanks for the reply! (PM sent).So far I've been just toying with the naive approach to solving, that is, repeatedly applying the star-mesh transform to eliminate the nodes one by one. Surprisingly it works not too bad (or, at least much better than I expected). I'm curious if matrix-based approaches are known to be much faster.In general, I guess we can distinguish different levels of a solution (when finding the equivalent resistance):1. Approximate solution (perhaps using numerical approaches).2. Exact answer. This is what I'm trying to do.3. Symbolic answer. (A formula for a given topology).I just wonder what is the fastest (or most scalable) method for each of the three cases, for large networks. In case of symbolic answer, the formula could grow fast with network size. But the other two should scale to thousands of resistors.

author: Kirr
author_rank: Regular Contributor
timestamp: July 22, 2016, 03:14:44 am
content: Quote from: acolomitchi on July 22, 2016, 12:46:03 amWell may be just a little. Actually it took some self-control to stop myself from posting that same link.Quote from: acolomitchi on July 22, 2016, 12:46:03 amI decided to just make it a text input box, thus skipping the GUI design entirely.Quote from: acolomitchi on July 22, 2016, 12:46:03 amInteresting. I wonder how that would perform for large networks.Quote from: acolomitchi on July 22, 2016, 12:46:03 amWell I guess you mean the resistor mesh on the right? It's too small for a good benchmark, but may it can serve as a well known example. Good idea!

author: acolomitchi
author_rank: Contributor
timestamp: July 22, 2016, 03:54:48 am
content: Quote from: Kirr on July 22, 2016, 03:04:28 amJust from curiosity, is there any practical consideration in the problem (perhaps outside EE)?Is so, would you mind to share?

author: The Electrician
author_rank: Frequent Contributor
timestamp: July 22, 2016, 08:01:29 am
content: Quote from: Kirr on July 22, 2016, 03:04:28 amThe network to be solved can be represented as an admittance matrix. The graph theory people would call this the "Laplacian matrix". See:https://en.wikipedia.org/wiki/Laplacian_matrixThis explanation assumes that all the resistors (conductances) in the network are all 1 ohm, but a network with any value resistors can be solved the same way. A network being analyzed by an EE would usually have one node grounded, the reference node. In this case, the admittance matrix (Laplacian matrix) is not singular, so the Moore-Penrose matrix need not be calculated; just a plain old ordinary inverse will do the job. Having the inverse, the two nodes between which the resistance is wanted define a 2x2 submatrix in the inverse. If the admittance matrix of the network under consideration is denoted Y, its inverse can be denoted Z.If there are N nodes in the network, the the element of the Z matrix corresponding to node j will be Zjj. If we want the resistance between nodes j and k, we need to do some arithmetic on four elements of the Z matrix. The desired resistance is given by Req = Zii+Zjj-Zij-ZjiSee:https://en.wikipedia.org/wiki/Resistance_distanceA network of the sort beloved by the graph theorists probably won't have one node grounded, so in that case the admittance matrix Y will be singular, and the Z matrix will be the Moore-Penrose pseudoinverse. Once the pseudoinverse is calculated, we have again Req = Zii+Zjj-Zij-ZjiI can calculate the pseudoinverse on my HP50G calculator for numerical admittance matrices up to order 10 in only a few seconds.

author: Kirr
author_rank: Regular Contributor
timestamp: July 22, 2016, 08:06:47 am
content: Quote from: acolomitchi on July 22, 2016, 03:54:48 amThis paper talks about application for electrostatic discharge analysis:http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5356296"Large resistor networks arise during the design of very-large-scale integration chips as a result of parasitic extraction and electro static discharge analysis. Simulating these large parasitic resistor networks is of vital importance, since it gives an insight into the functional and physical performance of the chip."For non-EE example, I saw resistor networks used in electrical impedance tomography research. Also there seems to be a large amount of research on random and diluted resistor networks, but I'm not sure how much of it is practical.The simplest practical use is verifying resistor networks found by a network finder.

author: acolomitchi
author_rank: Contributor
timestamp: July 22, 2016, 09:54:02 pm
content: Quote from: The Electrician on July 22, 2016, 08:01:29 amThe thing I don't get is: why the matrix is singular? A singular matrix usually denotes a "not enough constrained" system, with linearly dependent rows, leading to possibly many solutions when involved in a system of equations.In practice, a (non-disjoint) network will always have one and only one resistance between any two nodes, why would one need to introduce the assumption of one node linked to the ground?

author: The Electrician
author_rank: Frequent Contributor
timestamp: July 22, 2016, 10:26:20 pm
content: Quote from: acolomitchi on July 22, 2016, 09:54:02 pmBecause voltage is a relative quantity. Voltmeters have two probes for a reason. You must measure voltages between two points. If you had a network of resistors floating in the air, and you wanted to know the voltage at one of the nodes how would you measure it? So without a reference the voltages at various nodes (taken one at a time) are indeterminate; you can only find voltages between nodes. Choosing one node as a reference, and conventionally calling it "ground", adds a constraint to the system. Then the admittance matrix is no longer singular.PM me a good email address and I'll send you a relevant paper.

author: acolomitchi
author_rank: Contributor
timestamp: July 23, 2016, 12:26:25 am
content: Quote from: The Electrician on July 22, 2016, 10:26:20 pmDone.