Resistor Network Finder - Page 1
Forum section: electronics / general

author: Kirr
author_rank: Regular Contributor
timestamp: June 15, 2016, 03:03:42 pm
content: Hi everyone! I recently got interested in electronics. I mainly build guitar pedals and synth modules. I recently needed a non-standard resistor, so that started me thinking about networking the ones I had. I got a bit carried away and made a network finder. Which I'm happy to introduce here:http://kirr.homeunix.org/electronics/resistor-network-finder/It's an online tool that finds optimal resistor networks to substitute for your target resistance values. Features:Finds networks of up to 6 resistors.Searches all possible topologies, including bridges.Allows to specify stock using standard series, range, gaps and extras.Configurable target error (set it to 0 to see the closest network possible).Supports specifying a list of target resistances, shows the optimal networks for each target in a single table.Shows schematic of each network found.Can find a single additional (non-stocked) resistance value, that would be the most helpful for obtaining specified target resistances.Due to possibly huge number or networks (depending on your stock and search options), the total number of networks it tries is capped at 20 million per search (smaller under high load).I'd appreciate any comments or suggestions. Especially if you notice any mistakes. Also if you have any cool ideas for improvements! And of course, feel free to use it, whenever you are out of a resistor value.EDIT: Shortened self-introduction, added feature list.

author: Kirr
author_rank: Regular Contributor
timestamp: June 20, 2016, 06:03:02 am
content: Well, I guess the idea of networking resistors has been long obsoleted by the advent of: 1) SMT. 2) Shops like Mouser with 1-2 days delivery of any 1% (or 0.1%) value you may ever need. I also guess this is all well known, so I understand the lack of any interest. Still I personally find it cool that you can get within 0.5% to almost any value using just 3 E6 resistors.

author: Ian.M
author_rank: Super Contributor
timestamp: June 20, 2016, 06:06:18 am
content: No you cant, because E6 resistors have a vanishingly small probability of being within 0.5% of their nominal value.

author: Kirr
author_rank: Regular Contributor
timestamp: June 20, 2016, 01:52:41 pm
content: Quote from: Ian.M on June 20, 2016, 06:06:18 amWhat can I say.. Congrats on finding something you can disagree with. Good job!I've only two points to make here. 1-st. The E series are first of all about the nominal value, the implication about accuracy is not set in stone. Even if historically the two concepts were usually coupled together, these days you can very well have a full set of 1% E6 resistors. And you can build a lot with that stock. See, E24 series is usually considered to correspond to 5% error. However 1% and 0.1% resistors with E24 nominal values are available. (Think this way: Not all exact E24 or E96 values are included in E24, therefore you can't say that those 1% E24 resistors are really E48, or E96).2-nd. The calculation I mentioned above is of course theoretical, based on spot-on accurate resistors. Practically the accuracy of your stock will of course affect the accuracy of the network you build. I don't think you'll find anyone who will try to debate that. With 20%-error resistors you don't even have to network anything - with enough time you can find whatever value you need. If you do decide to network even just 2 of those resistors together, then with 20% stock you can probably get arbitrarily close to any value. Of course that would need even longer time. So obtaining your target value with any reasonable accuracy based on 20% stock is pretty cumbersome, with or without networks.However with 1% stock, even if it's very limited set of values, you can obtain any resistance needed with good precision through networking approach.Personally I only use 1% (or better) resistors. Whenever I need an up to E24 value I get the whole bunch. However I don't want to stock E48 and further, so here networking might help, as well as when I'm out of some value. I realize that it's not everyone's cup of tea, but I believe the approach is sound in principle, and in practice.

author: Ian.M
author_rank: Super Contributor
timestamp: June 20, 2016, 02:20:30 pm
content: Yes, you can buy 0.5% or better E192 resistors corresponding to E6 values, but the E6 series (as defined in IEC 60063 1963) *IS* nominally 20% tolerance.Also seehttp://www.edn.com/electronics-blogs/signal-integrity/4363408/7-solution

author: Brutte
author_rank: Frequent Contributor
timestamp: June 20, 2016, 02:57:33 pm
content: That is a useful tool, thank you.Occasionally I have to solve:With given X volt source of 0R output resistance I need to build an Y volt source of Z output resistance. Y<X.So in case I have a X=10V voltage source of 0R output resistance and I need a Y=5V voltage source of Z=1k then this can be done with two 2k resistors spanning X. Or with two 1k resistors followed by 500R, etc.Things are getting more complicated when fractions of voltages, tolerances and E24 are involved...

author: Kirr
author_rank: Regular Contributor
timestamp: June 20, 2016, 03:01:30 pm
content: Quote from: Ian.M on June 20, 2016, 02:20:30 pmIt's possible that I am really confused here. I'm under impression that this historical link between E series and tolerance is no longer relevant. Way back there tolerance and E series were one. Nowadays they are not, and I've seen much more references about E series related to nominal value concept than to tolerance in modern DIY discussions. When people talk about tolerance, they mention % and not E. Instead E series are being mentioned when talking about limited set of standard nominal values. Again though, it's entirely possible that I am under wrong impression.E.g., see this:https://blog.octopart.com/archives/2015/02/millions-of-resistors. (Summary: they searched and found that non-standard 1% values like 330 Ohm are more common than the official standard ones like 324 or 332 Ohm).Also I just noticed that "IEC 60063:2015" summary mentions:QuoteI wonder what it's about?Quote from: Ian.M on June 20, 2016, 02:20:30 pmYup, that's known. Sorry for the simplified example above, I am aware that resistance distribution is often not a bell curve in a set of same value resistors.

author: Kirr
author_rank: Regular Contributor
timestamp: June 20, 2016, 03:05:43 pm
content: Quote from: Brutte on June 20, 2016, 02:57:33 pmYou're welcome!Quote from: Brutte on June 20, 2016, 02:57:33 pmThanks for idea. I'll have to think a bit about it. Is it like designing a voltage divider with a given output voltage and impedance? Can't you fix one resistance first, and then design the matching second one?

author: Brutte
author_rank: Frequent Contributor
timestamp: June 20, 2016, 04:59:40 pm
content: Quote from: Kirr on June 20, 2016, 03:05:43 pmLets narrow the thing to output resistance. Yes.QuoteX/Y = 3.14Z=3k3Solve that, E24.

author: Kirr
author_rank: Regular Contributor
timestamp: June 21, 2016, 05:06:26 am
content: Sorry, Brutte, I'm still not sure I follow. Can you explain in more detail, and with schematic, e.g., using examples that you mentioned previously? (You'll have to bear with someone as new to electronics as me. How new? Like, yesterday new).

author: Brutte
author_rank: Frequent Contributor
timestamp: June 21, 2016, 08:24:09 am
content: Quote from: Kirr on June 21, 2016, 05:06:26 amWell, your tool divides voltages only in case when voltage source (X) has 0R output resistance (DC impedance) and voltage sink (Y) has infinite input resistance (DC impedance). That does not happen very often in real life, you know. Practically never.Usually this 0R is not quite 0 and infR might be a little bit lower. So instead of assuming impossible, this divider calculator could be improved by taking both resistances being more realistic, and using E24 values.Just a hint for improvement.

author: Kirr
author_rank: Regular Contributor
timestamp: June 21, 2016, 11:41:46 am
content: Sorry for being dense. But without knowing squat about electronics I need schematic and more detailed explanation before I can help with this. Thanks for understanding.

author: Brutte
author_rank: Frequent Contributor
timestamp: June 21, 2016, 03:04:49 pm
content: Ok, so the task is to calculate R3, R4 and R5 by minimizing design errors (the lower the better) and component count (go, figure), E24.The given values are:R1 known as "source resistance" (that is an internal property of the source, typically you cannot tweak that, it sits inside)R1+R3|R4+R5 known as "output resistance" (that is a design parameter, in previous post it was referenced as "Z")V1/input, when R2=inf, known as "attenuation" (that is a design parameter, in previous post that was "Y/X")The R2 is the load. It is not taken into the design because it influences neither output resistance nor attenuation. For LTSpice purposes I have placed R2 there.Anyway, if you put a pot instead of R2, the current flowing through a pot should be the same as when whole load was powered with V1*Y/X voltage source with Z output resistance. For all R2 values. Which basically means that with no load it should have V1*Y/X volts at the output and when short circuited the current should be (V1*Y/X)/ZRemark: It can be tempting to put R5 as 0R (by removing it) and using only R3 and R4. With 3 resistors arrangement the R5 might be helpful to match required Z with with lower error. Or sometimes it could be better to R5=0R and make R3 out of two resistors in parallel.. Depends on the specific requirements.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: June 21, 2016, 05:23:25 pm
content: I haven't given it a try, but it looks promising. Bookmarked. Thanks!Hacking resistor values IS still valuable; it reduces BOM items, purchasing and inventory cost (and perhaps assembly cost as well, if it saves reel changes).I know a guy in SF who stocks a few values of 1206 quad resistor packs. He uses just one for a single resistor. Or a pair, or three, or all four independently -- however many are needed, and that fit the requirements. Lots of values available using different permutations of them, all for zero extra stocking and assembly cost. And the parts don't cost much more than single resistors. In SF, the labor to manage inventory is probably much worse than the small amount of design time spent stacking resistors!Tim

author: Kirr
author_rank: Regular Contributor
timestamp: June 22, 2016, 01:20:01 pm
content: Quote from: Brutte on June 21, 2016, 03:04:49 pmAlright, thanks for details. Can I just confirm a few things.. 1. The meaning of notation "R1+R3|R4+R5", e.g., what "output resistance" is in the example schematic (1k+2k2|3k3+4k7). 2. Is it a hard requirement to have R3, R4 and R5 as single resistor?

author: Kirr
author_rank: Regular Contributor
timestamp: June 22, 2016, 01:24:55 pm
content: Quote from: T3sl4co1l on June 21, 2016, 05:23:25 pmThanks for this information. I have no much experience with SMT, so I haven't realized this, but it makes perfect sense. If an extra resistance value means an extra reel at the chip placer, then there might be indeed a good use case for networking/stacking smaller set of values. As well as saving BOM length, purchasing and inventory management. Food for thought!

author: Brutte
author_rank: Frequent Contributor
timestamp: June 22, 2016, 04:23:12 pm
content: Quote from: Kirr on June 22, 2016, 01:20:01 pmOk, I see your point.a= 1k+2k2b= a in parallel with 3k3c=b+ 4k7should have been Z=((1k+2k2)|3k3)+4k7QuoteNo, of course not. Many resistor calculators (even simple dividers as yours) give a hint with 2, 3 or more resistors. The bigger count the more choices and possibly the smaller the error. With 3 resistors you can do it as on the LTSpice drawing I made or you could put R5=0 and make R3 of two resistors in series. Or in parallel. Or R3=0R and R5=0R (only one resistor possible when R1 != 0R). Different topologies but same aim. Who cares where to solder them as long as whole thingy mimics a V*Y/X source of Z output resistanceMind that in your simple calculator only Y/X matters, while in upgraded one there is also Z that should match. So there are two criteria.

author: Kirr
author_rank: Regular Contributor
timestamp: June 23, 2016, 06:15:38 am
content: Thanks for clarification! I think this should be enough information for now. It will be a little while though before I'll be able to work on it, but I agree this is good proposal. I'll try to make it happen when I find the time.

author: Kirr
author_rank: Regular Contributor
timestamp: June 25, 2016, 02:16:13 pm
content: In the meantime, I'll appreciate any help with testingResistor Network Solver.Features:Computes equivalent resistance between any two nodes of a specified resistor network (as long as the network is not too large).Tested with 2-dimentional grid of up to 20 x 20 cells (441 nodes, 840 resistors) (I had to make another script for just printing out such network)No rounding errors, the exact equivalent resistance is computed.Supports any topologies and values, supports suffixes k, M, G, T.Supports specifying resistance as fraction, e.g. "1k/3".The network is specified as a space-separated list of nodes and resistances. Whenever resistance value appears between two nodes, it specifies a resistor connecting those two nodes. Example networks:Two resistors in series: "a 100k b 5k c"Two resistors in parallel: "a 100k b a 5k b"Bridge network: "a 1 b 2 d a 2 c 1 d b 1 c" (to make it a bridge you need to use nodes a and d as terminals).

author: Kirr
author_rank: Regular Contributor
timestamp: June 27, 2016, 05:50:56 am
content: I've just reminded about the infinite resistor grid puzzle, and Dave's "practical" solution. I don't remember the size of his physical network (can't find the video now). But similarly "practical" solution is now possible without soldering, usingResistor Network Solver. I've just tried it with grids of various sizes:1x1 (4 nodes, 4 resistors): 3/4 = 0.752x2 (9 nodes, 12 resistors): 7/12 ~ 0.58333x3 (16 nodes, 24 resistors): 61/112 ~ 0.54464x4 (25 nodes, 40 resistors): 577/1100 ~ 0.52455x5 (36 nodes, 60 resistors): 26617/51480 ~ 0.51706x6 (49 nodes, 84 resistors): 232285/453908 ~ 0.51177x7 (64 nodes, 112 resistors): 99745395/195927584 ~ 0.50918x8 (81 nodes, 144 resistors): 71321351/140687172 ~ 0.5069...20x20 (441 nodes, 840 resistors): 48426449316318400127036341046521575282695764486655653 / 96612013372277946147230534939089220408376952642693692 ~ 0.501221x21 (484 nodes, 924 resistors): 9691191602868994825486067421813395557913144973208944974034823446738009 / 19338314985766945202054515481037769424207957324464145705293637973651416 ~ 0.501122x22 (529 nodes, 1012 resistors): 13008766752441301206010258779900631678093775307405316378101753244558907 / 25963610873505634105474846071321610417963767763190262434295154671122188 ~ 0.5010etc.As expected it converges towards 0.5 (which gives hope that the tool might be working correctly). What's also interesting is how unwieldy the rational number becomes.Two kinds of engineer (hardware and software), two kinds of "practical solution". It may be fun to explore some other grids, like triangular, 3D, non-identical resistors - what do you think?(The only downside of this method - I can't frame it and hang it on the wall)

author: Brutte
author_rank: Frequent Contributor
timestamp: June 27, 2016, 06:46:23 am
content: Although theoretically interesting, do you think there exists a practical task where calculating a 5x5 resistor grid could be of any use?That looks like a rough discrete approximation of a PDE (partial differential equation) with boundary conditions. Like calculating current field flowing in a square sheet of conductor when voltage is applied in opposite corners. A 3D case would be to calculate current field when voltage is applied across the cube corners.FEMis the right tool to solve such PDEs.

author: Kirr
author_rank: Regular Contributor
timestamp: June 27, 2016, 01:39:10 pm
content: Quote from: Brutte on June 27, 2016, 06:46:23 amGood question. Here are some I can think of:Solving homeworks (a very common practical task). Or, perhaps I should say: veryfying solutions of such problems. You still need to know how to solve it, but at least you can check if you got the right answer.Designing homeworks.Verifying resistor network designs. Believe it or not, I already found (and fixed) a bug in my network finder, using this tool: Bridge networks were displayed incorrectly, even though they were correctly found.Note that this tool is not limited to 2D grids of unit resistance. Any topology is possible. 3D, 4D, mix of different values, anything you can imagine (as long as it's not too large). You may not have an analytical solution ready for another topology, and this solver will at least give you a ballpark approximation. And if you are attempting a real analytical solution, you'll know that you're on a right track if it agrees with this tool. Also, with, say, ~1000 resistors you can get reasonably close to approximating an infinite grid.It frees you from having to solder stuff when you all you need is an approximation for an infinite grid puzzle (E.g. you don't feel like doing analytical solution).I recently saw some discussion about randomly "diluted" finite resistor grids, where some proportion (e.g., 25%) of resistors is removed. I'm not yet sure how practical it is, but I guess the solver tool might be helpful here (if the network is not too large).Like with any tool, I'm sure there are other uses that I did not think of (remember I know nearly zip about this stuff).Whether any of this is what you would call practical is up to you. I've also a number of personal reasons for making this: Learning a new programming language (these are my first two projects in it), utilizing my idle brain cycles when I don't want to think about more difficult stuff, learning and practicing a very tiny bit of electronics, as well as "practically" dealing with being nerd-sniped myself.Quote from: Brutte on June 27, 2016, 06:46:23 amThanks for the link and comment. Not sure I if want (or have time) to get much deeper into this, but I'll think about it.

author: Kirr
author_rank: Regular Contributor
timestamp: June 28, 2016, 11:06:00 am
content: Found Dave's video, and saw the physical grid is 14x14.In the meantime I used the solver with 3D grids of 1 Ohm resistors. I computed resistances between two directly adjacent nodes, as close to the center of cube as possible. Error is in % compared to 1/3 (which is the expected for infinite grid, I guess).1x1x1 (8 nodes, 12 resistors): ~0.5833 (7/12), error: 75%2x2x2 (27 nodes, 54 resistors): ~0.3836 (145/378), error: 15.079%3x3x3 (64 nodes, 144 resistors): ~0.3525 (4027/11424), error: 5.751%4x4x4 (125 nodes, 300 resistors): ~0.3410 (3575711/10485750), error: 2.302%5x5x5 (216 nodes, 540 resistors): ~0.3377 (50534501687/149653183680), error: 1.303%6x6x6 (343 nodes, 882 resistors): ~0.3358 (2746554716708623/8179125668883078), error: 0.740%7x7x7 (512 nodes, 1344 resistors): ~0.3350 (3924444686595026569770612762903629/11714636003548080511292887931731584), error: 0.501%8x8x8 (729 nodes, 1944 resistors): ~0.3344 (9523138557930770659246383479/28474314222911385786266707902), error: 0.334%9x9x9 (1000 nodes, 2700 resistors): ~0.3342 (661826589682196285557397699497469844120993892854989720500347534943157 / 1980593010004549487431424306860577048998284576938287880910944998851000), error: 0.247%I stopped at 9x9x9 as it's getting quite slow.Happy Tau day!

author: T3sl4co1l
author_rank: Super Contributor
timestamp: October 20, 2016, 06:47:25 am
content: Bumping because I'm using this at the moment and I really like it.Tim

author: Kirr
author_rank: Regular Contributor
timestamp: October 21, 2016, 03:07:04 am
content: Thanks, and I'm glad you're enjoying it!

author: David Hess
author_rank: Super Contributor
timestamp: October 21, 2016, 07:58:48 pm
content: I wrote something like that long ago and in the interest of speed, just precomputed the results and stored them in a database because indexed lookups were faster than calculating each from scratch.

author: Kirr
author_rank: Regular Contributor
timestamp: October 22, 2016, 01:43:22 pm
content: Quote from: David Hess on October 21, 2016, 07:58:48 pmYeah, that's a valid approach. I thought about it, and I might still add such database, at least for most common stock series. Out of curiosity, what range of values did you use, how large networks, and how large was the database?Currently I simply recompute the table, as it is simpler, and allows to configure the stock flexibly. It takes some time though, so I have to put a limit on a total number of networks searched (20 millions currently).Another possibility to gain speed is to be more selective on the last step of the search, instead of trying every network. Haven't tried that yet either, so there's still a lot of room for improvement.

author: David Hess
author_rank: Super Contributor
timestamp: October 22, 2016, 06:02:16 pm
content: Quote from: Kirr on October 22, 2016, 01:43:22 pmThis was back in the days of the PCs using the 8088 so indexed database searches were significantly faster than even optimized calculations. It took about a day to create the database and I do not remember how large it was but the size was not a limitation even on the storage media of the time. It was only for parallel E96 values to produce a full 3 significant digits.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: October 23, 2016, 04:03:08 am
content: It would offload your server, if the code were clientside (scripted). But maybe you don't want to do that. (Alas, tradeoffs!)Tim

author: T3sl4co1l
author_rank: Super Contributor
timestamp: October 23, 2016, 04:10:25 am
content: Quote from: David Hess on October 22, 2016, 06:02:16 pmHmm, you wouldn't need very many entries because a great many of them would be duplicates at the stated precision (1k || 8.87k vs. 1k || 9.09k), or wouldn't do anything at all (1k || 1M == 1.00k). Most obviously of all, everything is a multiple of the decade, so you only need the unit series paired with everything else.Three sig figs is pretty limiting. Think I'd have done 32 bit fixed point, or single precision. Let the user decide how many figures they need. Then again, maybe that would've made the database a little too ambitious. I don't know, I'd have to think about that.(Also, I have an 8086 + 8087, so that's like turbo!)Tim

author: David Hess
author_rank: Super Contributor
timestamp: October 23, 2016, 05:10:28 am
content: Quote from: T3sl4co1l on October 23, 2016, 04:10:25 amI simplified and it was a production environment. Part of the optimization was to minimize the number of separate values kept in inventory.The PC I used had turbo and a V20 but I think it lacked an 8087.

author: Kirr
author_rank: Regular Contributor
timestamp: October 24, 2016, 07:51:18 am
content: Quote from: David Hess on October 22, 2016, 06:02:16 pmIt might be fun to experiment with this on today's hardware. Depending on stock range and network size the database may quickly get enormous.

author: Kirr
author_rank: Regular Contributor
timestamp: October 24, 2016, 08:10:30 am
content: Quote from: T3sl4co1l on October 23, 2016, 04:10:25 amWith rounding your error estimates will be slightly off. Also, you may have to be careful about transitivity. I.e., A~B and B~C, but does it mean A~C? So I don't use any rounding like this. So I enjoy spot on errors, and accurate detection of duplicates.Quote from: T3sl4co1l on October 23, 2016, 04:10:25 amI might be misunderstanding what you are saying here, but any value can be networked with anything else (including other networks). E.g., small resistances in series and large resistances in parallel can be used to tweak an already close value, so every possibility has to be considered?Quote from: T3sl4co1l on October 23, 2016, 04:10:25 amI used honest rationals in calculation, so I avoid all rounding, precision errors, have no troubles with comparison for equality, etc.. However since my rationals are built on top of 64-bit integers, my method may overflow in extreme cases (large network, large range of stock values). It's far from common use case though, also all overflows are detected and discarded (and reported on the result page), instead of being used, so there's no problem usually. I think it's a practical solution, accurate and very fast. (Though in the future I might add 128 bit int based rationals for extended range).

author: T3sl4co1l
author_rank: Super Contributor
timestamp: October 24, 2016, 09:11:44 am
content: Quote from: Kirr on October 24, 2016, 08:10:30 amI was referring to his thing, which he said does use rounding. Good point about math rules: most computer systemsbreakthem! Integers are guaranteed to satisfy transitive, additive and so on (within bounds of overflow; but on a ring of 2^N bits, it's still true). Floating point need not satisfy equality (i.e., "2.1234567" != "2.1234567", because of subtle bit differences that aren't printed in the decimal version) and therefore transitive, and does not usually satisfy associativity (A*B + A*C != A*(B+C)). So you need to be very careful about what sizes of numbers you're adding together!QuoteE series repeat every decade, so you don't need to track, say, 1k in parallel with everything from 1k to 1Meg, if you've already calculated 1.0 ohm in parallel with everything from 1.0 to 1k.E series are exponential in design (i.e., the decade is divided into geometrically equal ratios from value to value), but due to rounding, actual values fall above and below the ideal values, giving rise to unusually accurate ratios for certain lucky combinations. If it were perfectly geometric, you wouldn't need to account for the values at all: only a list of networks and multipliers. But since it's not, you have to track what's within a decade as well.But between decades, no problem. I mean, until parasitics get in the way (when is 1.000 ohm not 1.000 ohm?..).QuoteAh, nice. Then, in that case: if you're doing calculations in ohms rather than ohm-ratios, then for example, doing a calculation for a 1.0 || 1k network will have a different value (for numerator and denominator) than for a 1k || 1M network, but their network ratios (i.e., dividing the numerator by the base value resistor) will be precisely identical.A practical example would be, can you calculate a 1T || 1P resistor network? Both are technically on the E series (not that you could actually purchase either one, at least not in an accurate enough values to ever measure it correctly!), and the (proper fraction) network ratio of 1000/1001 is just as true and accurate as that of 1.0 || 1k. Cast numerator to float, multiply by the base resistance (1Tohm), and divide by the denominator (also cast to float), to geth the floating point result that has no additive error and only ratiometric error due to floating point rounding.Hope that was clearer... maybe you're already doing it that way, or, maybe it'll make things even simpler!Tim

author: Kirr
author_rank: Regular Contributor
timestamp: October 25, 2016, 06:12:08 am
content: Quote from: T3sl4co1l on October 24, 2016, 09:11:44 amYup, that's why I don't use floating point. Integer-based rationals can be compared for equality, which is useful. E.g., if the same equivalent resistance can be achieved by different networks, Resistor Network Finder always prefers a smaller network over a larger one. Without reliable equality it can't be done safely.Quote from: T3sl4co1l on October 24, 2016, 09:11:44 amOK, I see your point. I'm just not sure how much speed it will add compared with the added complexity. With networks of more than 2 resistors it might become quite complex. Also, user's custom stock might have gaps and extra values (or a totally custom stock), further complication the issue. So far I opted for a trivial method of treating each network individually. But perhaps it's worth experimenting with.Quote from: T3sl4co1l on October 24, 2016, 09:11:44 amYeah, the unit can be factored out in this example. I don't bother with that, but I do select the optimal unit based on the specified stock range.Quote from: T3sl4co1l on October 24, 2016, 09:11:44 amYes, Resistor Network Finder will work fine with 1T and 1P. Though it does not recognize the "P" prefix, so you'd have to write it as 1000T instead. The trick is to select a unit first, in this case I think it will automatically choose 10T as unit, and use it internally for all calculations. On the other hand, networking something like 10000000000T and 0.0000000000001R could be problematic with the current design of my tool. But I guess it's not a big problem in practical applications.For practical use, one issues is: how much stock do you want to keep? I don't think many stock E192. The other thing: How large networks you will consider. Most of time it's 2, maximum 3 resistors. Final question, what precision is needed, and what precision will be expected with the tolerance of your stocked resistors. Considering these three points, I think that the Finder works fine for most practical applications. I still have many ideas about making it faster, and I might work on it if I have time. But that will be mostly to gather statistics and satisfy curiosity.