What's your soldering success rate?
2023-05-13 electronics design meta
Soldering mistakes are by far the most common thing to go wrong in do-it-yourself electronics. It seems like I spend most of my tech-support time gently urging customers with failed kit builds to re-check their soldering, and when I have problems in my own builds, those also usually turn out to be soldering-related. Everybody, myself included, tends to think of failed components as a likely cause of problems, and we spend a lot of time doing differential diagnosis to figure out which components might have failed; but then once the problem is narrowed down to a single component, the actual issue usually turns out to be a bad solder joint on that component, not the component itself. The real point of the debugging is often just to figure out which solder joints to look at more closely.
There are a few different ways solder joints can be bad. A bad joint might be open: no electrical connection between the two sides that were supposed be connected. It might also be short: the joint is spuriously connected to something else, like a neighbouring joint or the ground plane.
Back in The Day™, people spent a lot of time worrying about "cold" or "dry" solder joints, which were caused by failing to take lead solder through its heating/cooling sequence properly. Traditional 60/40 lead solder goes through an intermediate state between solid and liquid, called the "plastic" state. Lead solder in the plastic state is sort of mushy: neither fully solid nor fully liquid. If it's heated into the plastic state without ever becoming fully liquid, or if it's moved while in that state during the cooling process, the joint can end up unreliable, with a lot more resistance than it should have while not being completely open. I'm not sure cold solder joints are actually a thing with modern lead-free alloys - I haven't seen any since switching to lead-free - but at one time they were a big concern.
The solder joints in a synthesizer module are basically all necessary to its operation, else they wouldn't be there. It's like a jigsaw puzzle, where missing even one piece is a significant problem for the whole thing. So if you build a module and you want it to really work, you need all the solder joints to be good. There are many articles on soldering technique and this is not one of them. Instead, I'm interested here in something more geeky: the numbers.
How many solder joints are there in a module, exactly? And how many mistakes do you make in your soldering, on average?
Joints per module
It might be possible to go through one of the build videos on my Twitch stream and count every single solder joint I make while building a module, but it would be hours of boring work to get the number and probably not worth it. In most modules all the soldering is done on a printed circuit board, so it should be possible to just look at the circuit boards to count the solder joints, and KiCAD provides some tools that make that easier.
In the "Inspect" menu of the KiCAD PCB tool there's a command called "Show Board Statistics" which pops up some numbers describing the board, including a count of through-hole pads.
In the screenshot, the statistics for the new MSK 015 Quad VCA list 586 through-hole pads. Almost all of those correspond to solder joints and vice versa, but to get a really exact count we need to handle the exceptions.
Most of my boards have mounting holes for attaching standoffs that hold the boards securely to the panel. Not every modular manufacturer uses these. Some try to fasten the board behind the panel using only the panel components, and the board-to-board electrical connectors alone for holding on the second board and any further back. That way they can save a bit of space (and cost - hex standoffs such as I use are surprisingly expensive), and it prevents the fastening screws from being visible on the front panel. But I think durability is a higher priority. Anyway, the mounting holes are not soldered and so have to be subtracted from the count. There are eight of them in an MSK 015 board set.
Test points are another category of unsoldered pads. I sometimes put pads on the board as places to hit with a test probe during adjustment or debugging. There are three on the MSK 015. Not all my other modules have them; some, like the Coiler, are designed to be adjusted solely from measurements of the output jacks. The Leapfrog holds the record, with 20 test points scattered across the three boards. Where used, these also get subtracted from the count because they are pads that don't get soldered.
A couple of other adjustments need to be made for pads associated with optional components and configuration, and solder joints made off-board. In the MSK 008 Octave Switch, for instance, one channel adds and one subtracts in a default build, but it's possible during the build to customize the module by cutting and soldering some traces to change the add/subtract configuration of the channels, and there are some extra pads on the board to support doing that. Similarly the Gracious Host has pads for an optional voltage regulator and debugging header, which would not be installed in an ordinary build. These get substracted from the count. On the other hand, in the MSK 012 Transistor ADSR, there are an LED and a switch mounted off-board on wires, so I add five solder joints to the total.
Here are all the joint counts for North Coast modules, based on the current versions of the PCB designs as they exist on my development computer. I can't be absolutely certain that I haven't missed any solder joints, but I think they should be pretty accurate. The column for "vias" is included for interest's sake, but it refers to through-holes used for connecting layers of the PCB. These do not get soldered, so they are not included positively or negatively in the count of solder joints.
|MSK 007 Leapfrog VCF||624||70||12||20||29||0||563|
|MSK 008 Dual VC Octave Switch||297||37||4||0||6||0||287|
|MSK 009 Coiler VCF||230||8||4||0||0||0||226|
|MSK 010 Fixed Sine Bank||294||13||4||0||0||0||290|
|MSK 011 Transistor Mixer||113||11||0||0||0||0||113|
|MSK 012 Transistor ADSR||162||15||0||0||0||5||167|
|MSK 013 Middle Path VCO||780||130||8||0||6||0||766|
|MSK 014 Gracious Host||303||70||4||1||9||0||289|
|MSK 015 Quad VCA||586||114||8||3||0||0||575|
Looking at the numbers
There are a few interesting patterns to be seen in the above numbers. The Leapfrog stands out with its much larger number of test points and optional connections compared to all the others. That was a module I designed before I was doing these commercially; although it's not the very first board I designed for basically this circuit, it is nonetheless a somewhat experimental design, and I originally intended it to be just a set of plans I'd post on the Net for other hobbyists. So the boards have a lot of test points for figuring out what's going on in the circuit, and optional pads for different choices hobbyists might make while building the thing. My later, more "commercial" designs, are a little more streamlined.
The ratio of pads to vias seems to give some kind of measurement of how cramped the PCB layout may be. In the case of the Coiler, there are only eight vias in the whole design - and seven of them are connecting sections of the two-sided ground pour. It's a relatively simple circuit for the physical size of the module, so there was space for routing, and I managed to lay that module out with just a single via in a non-ground trace (to pin 1 of the resonance pot). Otherwise, whenever a trace needed to get from one side of the board to another, I did it at an existing component pin instead of introducing a via. I'm not sure minimizing the number of vias is really a useful achievement, but it was fun.
At the other extreme, the Gracious Host has the most vias as a proportion, one via per 4.32 non-via pads, and I think that is because it's a digital module. There are a lot of traces to run, I relaxed my usual rule of avoiding traces between DIP pads (because otherwise I would have had to make the module a fair bit wider), and the EMI requirements of digital meant adding a lot of extra ground-pour vias to keep current loops small.
The amount of work in assembling a module seems like it should scale with the number of solder joints, so I wondered how well that would correlate with the prices I've set for my modules, which are chosen by other means. Here's a plot of module price according to number of joints, with a fit line.
The fit line seems to be saying that my suggested retail prices are reasonably well-approximated by a base price of Ca$87.83 per module plus Ca$0.78 per solder joint in the module. As far as I know nobody really prices modules that way - it's certainly not how I actually chose my prices - but it seems sort of interesting that there is a solid correlation.
The success rate of builds
The number of solder joints in a module bears directly on how likely it is that the module will actually work when you build it. As a first approximation, the module will work if all the solder joints are good, and not if at least one of them is bad. So the more solder joints there are in the module, the more likely one of them will be bad, and then the module won't work.
How many solder joints can you make with all of them good? I think that on average I make about one mistake for every 3000 solder joints I make, or a success rate of about 99.97%. That means for every 3000 joints I solder, one of them is bad enough to impair the operation of the module, on average. I think a beginner who has never built electronics before at all, might have a success rate of more like 99.5%, or one mistake per 200 joints. Any previous soldering experience helps a lot; most kit builders do better than that. These estimates come by observing how often people including myself get bad builds overall, and then reversing the calculations below.
By a "bad" solder joint I mean one electrically different from what it should be, enough to impair the operation of the circuit. I'm not concerned with joints that may be cosmetically imperfect but still work, only with joints bad enough that they actually do not work.
If we let x represent the probability that any given single solder joint is bad, the chance it is good instead will be 1-x. Then the chance that two specific joints will both be good is (1-x)2, and for a project containing n joints, the chance they will all be good is (1-x)n.
The average number of bad joints you can expect to make in a project is x times n. For instance, if you make one mistake per 1000 joints and there are only 100 joints in the project, then x is 0.001 and on average you expect to make 0.1 of a mistake in the entire project. You can't really make 0.1 of a mistake: you have to make zero mistakes on most attempts of such project, exactly one mistake sometimes, and rarely more than one. When you unpack the kit and start building, it's reasonable to hope that this will be one of the builds that goes well without any mistakes.
On the other hand, if the numbers are reversed - one mistake per 100 joints and 1000 joints in the project - then the average number of mistakes you can expect to make is ten, in a fairly tight distribution. That means, probably not much more or less than ten mistakes. Then the chance of getting through the whole 1000-joint project with no mistakes at all is only 0.004%: one chance in about 23,000, comparable to winning a couple hundred dollars on a $1 lottery ticket.
Basically, you have a reasonable chance of success overall as long as your average number of mistakes is less than one per however many joints there are in the project. But you always have some small chance of getting through the whole project without mistakes no matter how poor your skills are, and some small chance of making a mistake no matter how good your skills.
Based on this calculation, here are the chances of completing a mistake-free build of each North Coast Synthesis kit, for a number of different per-joint success rates - or, inversely, for different numbers of joints per mistake. I've ranked them from easiest (the MSK 011 Transistor Mixer) down to hardest (the MSK 013 Middle Path VCO). Remember, these numbers represent the chance of success: the chance of completing the whole build without making any soldering mistakes serious enough to affect circuit operation, so that, although possibly still requiring adjustment, the module will basically work on the first power-up.
|mistakes, one per||200||500||1000||2000||5000||10000|
|per-joint success rate||99.5%||99.8%||99.9%||99.95%||99.98%||99.99%|
|kit||# joints||per-module success rate|
|MSK 011 Mixer||113||56.8%||79.8%||89.3%||94.5%||97.8%||98.9%|
|MSK 012 ASDR||167||43.3%||71.6%||84.6%||92.0%||96.7%||98.3%|
|MSK 008 Octave Switch||226||32.2%||63.6%||79.8%||89.3%||95.6%||97.8%|
|MSK 014 Gracious Host||289||23.5%||56.1%||74.9%||86.5%||94.4%||97.2%|
|MSK 010 Fixed Sine Bank||290||23.4%||56.0%||74.8%||86.5%||94.4%||97.1%|
|MSK 007 Leapfrog||563||5.9%||32.4%||56.9%||75.5%||89.3%||94.5%|
|MSK 015 Quad VCA||575||5.6%||31.6%||56.3%||75.0%||89.1%||94.4%|
|MSK 013 Middle Path||760||2.2%||21.8%||46.7%||68.4%||85.9%||92.7%|
I figure that when I build a batch of ten Middle Path VCOs, I usually have about eight of them work on the first try. That would be an 80% per-module success rate, putting me somewhere between the table columns for one mistake per 2000 joints, and one mistake per 5000 - which is why I estimate my own rate of mistakes as about one per 3000 joints, or 99.97% success per joint. You can help me improve, of course, by buying more modules so I get more practice. On the home builder side, some DIYers are no doubt more successful than me, but what I hear from absolute beginners is that they fall somewhere between the leftmost two columns of success rates on the table, with rapid improvement after a little experience.
So if you're looking to improve your own skills, you should definitely buy and build more kits - but you'll probably also be happiest to start with the smaller kits. I often see people who are interested in getting started with SDIY reaching for the biggest, most complicated modules first - but as the numbers above show, smaller projects are really a lot more likely to work on the first try. Doubling the number of solder joints squares the probability of success - which is a bad thing in the context of probabilities, which are necessarily numbers between 0 and 1.
With the simplest kit, someone at even the worst skill level (the one mistake in 200 joints level) still has a better than 50-50 chance of success for the entire module; whereas the same builder attempting a Middle Path would have only a 2.2% chance of getting it right the first time. The difference in number of joints is a factor of less than seven, but the difference in success probability is a factor of more than 25. Even just a little bit of experience and practice, moving up to the next column in the table, would drastically improve the chance of success for the bigger modules. And that's why I really encourage beginners to start with the smallest kits.
A note on independence
This analysis uses what statisticians call an independence assumption - the idea that the chance of making a mistake on any one joint is the same for every joint, and has nothing to do with whether you make mistakes on any other joints in particular. That is probably not entirely realistic.
As an example of how independence could fail, let's say you're doing the internal wiring on a guitar. The instructions might call for soldering three ground wires to the metal bodies of the tone and volume pots - a type of solder joint that is common in guitars, for shielding purposes, but not often done elsewhere. So if it's unfamiliar, and you misunderstand the technique and do the first wire to pot body joint wrong, there's a significant chance you'll also do the other two wrong in the same way. The chance of getting them all wrong and making exactly three mistakes in that project is significantly increased compared to what we would expect from the overall per-one-joint rate of mistakes, and that is compensated by slightly smaller chances of making exactly one or exactly two mistakes.
Similar, but subtler, things can happen in many other builds where the experience of making mistakes, or not, on specific joints can affect your performance on other joints. Maybe you sit down to solder in a really bad mood, make five mistakes in a row, and then burn yourself. The independence assumption does not capture these kinds of issues.
Nonetheless, I think the independence assumption is close enough; and there aren't many other options for how to analyse these things anyway. The total number of North Coast Synthesis modules that have ever been built, including both my own builds and those done by kit builders, is not a big enough sample to figure out non-independent relationships that may exist between different kinds of solder joints within the modules; and that would be even if I could collect specific data on every bad joint ever made by anyone in constructing a North Coast Synthesis modle, which of course I cannot do. Assuming independence and just looking at the total number of joints and how many modules work on the first try, seems like a reasonable thing to do and is the only practical thing to do.