Unfortunately, in the world of electronics not everything works perfectly first-time round. In fact, as soon as your circuit reaches any level of complexity, it’s likely that it will not, and you will have to troubleshoot. Even if you have a proven circuit, from time to time there will be assembly errors that you will have to resolve.
Sometimes the cause of the problem is obvious, but sometimes troubleshooting can be difficult and frustrating. Even the most experienced engineer will be able to recall a problem that stumped them for hours, days or even weeks! I want to share a few troubleshooting tips I have accumulated over the years. I hope they save you at least some frustration.
Be clear on what problem you are solving
This sounds obvious, but it is easy to fall into the trap of trying to solve several problems at once. This is particularly an issue during the bring-up of a first prototype when you may well have a few issues to resolve. Make sure you can articulate the problem you are working on quite specifically. For example, trying to solve a very general problem like “the unit is dead” could lead you down many possible paths, while “power LEDs don’t light” is a more specific and immediate problem to solve – there may be other problems too, but at least you will know the power rails are good and have visual indication of the fact.
Check power rails first. Then measure voltages – are they what you expect? If not, what could cause that to happen? Follow signals from stage to stage to narrow down the problem. Use a process of elimination. Can you disconnect parts of the circuit to rule them in or out as the culprit? This can be a great help when you have a dreaded power-to-ground short. If you find yourself straying from the path of logic and randomly trying things, it is time to stop and re-think.
It took me years and countless wasted hours to learn this rule. Write down each step you have tried and what the effect was. If you changed a component value, write it down. If you changed it back, write that down too. Write down what you measure and under what conditions. Try explaining your troubleshooting logic to yourself in writing. This will force you to think logically and prevent you from repeating things you have tried unsuccessfully before (another indication you have strayed from the path of logic).
Make sure your test fixtures are robust
There is nothing more frustrating that spending hours taking a series of measurements only to discover that one of your test leads has come adrift deep in the bowels of your project. Or having the whole thing dragged off the workbench under the weight of test leads. And yes, both these things have happened to me. As soon as you get to a point beyond the very trivial, spend some time making sure you can reliably access the signals you need. Screw the PCB down to a solid base. Make sure break-out leads or connectors are solidly anchored. If you can, think about this at design time and include test points or test connectors on likely signals.
Question your assumptions
You have got to the point where there seems no rational reason why your circuit does not work. You have checked everything twice (at least) and it just does not make sense that this circuit is behaving the way it is. Now is the time to question your assumptions.
I can give an example that happened to me in the last 12 months. I was debugging a circuit using a STUSB4500 standalone USB C PD controller. I had used the circuit before in another design and had dropped the same sub-circuit into this new project. But it just did not work. I spent hours trying to work out what was wrong. I changed the chip twice (a clear sign I was straying from the path of logic).
Eventually, out of desperation I pulled out the working project an put it alongside the non-working one and looked at them both under the microscope. Imagine what an idiot I felt when I noticed the non-working one was marked STUSB4500LQ, and the working one STUSB4500Q. Two. minutes on the net and it was clear. I had incorrectly ordered and fitted a slightly different version of the chip without the ability to negotiate a power contract. (Figure 1).
Take a break
Finally, its sometimes important to take a break from troubleshooting. If you can, leave it alone for a day or two and come back fresh. Imagine you are a different engineer tackling the problem for the first time. Read the notes that the other you made but do it skeptically. Assume that engineer was not as smart as you.
The Bleeding Obvious
Always remember that no matter how difficult a problem may be, or how long it takes to solve, the answer will be bleeding obvious when you do find it!
“STUSB4500 – Standalone USB PD Controller for Power Sinking Devices – STMicroelectronics.” Accessed July 30, 2021. https://www.st.com/en/interfaces-and-transceivers/stusb4500.html.
“STUSB4500L – Standalone USB Type-C Port Controller for Power Sinking Devices – STMicroelectronics.” Accessed July 30, 2021. https://www.st.com/en/interfaces-and-transceivers/stusb4500l.html.