Electronics > Beginners
Pulling my hair out. Circuit boards stop working once shipped to client and more
Dubbie:
I can’t really see how this could happen. If the Gerbers have whatever size in them, how is it possible for them to magically change?
AndyC_772:
It's very normal for PCB manufacturers to make changes to artwork in order to adjust for the physical characteristics of their process. If, for example, they know that their etching process will over-etch by <x>, then they'll adjust the artwork to increase track width by <x> to compensate.
The problem comes if the process doesn't actually do what the (possibly modified) artwork was intended for.
Rerouter:
same for how they will usually erase silkscreen from copper pads and treat any hole with 2 touching copper pads as plated, these are simplifications in there process that generally lead to the best customer relation outcome, they just goofed. and somehow missed it in testing (likely because the production file was the flaw the optical never caught it)
The part that the less cheap PCB suppliers will do is give you feedback on ways to make your PCB more production ready for the next run, Allpcb ironically lets you download there production gerbers, which let you see what has changed, generally on the second run of boards I'll see what they shifted and adjust accordingly, Its fun to see just what they let through, Oh you want 0.4/0.3mm vias, yep straight on through without modification, its your own fault if you get a breakout.
Jackster:
--- Quote from: free_electron on July 02, 2019, 07:22:08 am ---
--- Quote from: Jackster on July 01, 2019, 07:16:38 pm ---
--- Quote from: free_electron on July 01, 2019, 06:49:48 pm ---Arduino is not exactly a case of 'proper' design. They take too many shortcuts.
That aside , what else is on your board. Anything drawing pulsed currents like muxed displays , rf transmitters etc ?
--- End quote ---
Yea I have 4-8 seven segments displays and a nrf24l01.
--- End quote ---
That would be one possibility. muxed displays draw peak currents. Any kind of noise on your power rail and the cpu may brown out. Same for RF transmitters. it looks like you have those mounted above the cpu ...
--- End quote ---
So I added a 0.1uF in the original design for the NRF24L01 board.
Reading up on it, people are recommending 10uF and some are recommending either a second or a tantalum as well as.
I gave the NRF24L01 board its own 3.3v power supply (everything else is 5v) and added the 0.1uF between the regulator and the NRF24L01.
The NRF24L01 boards I use are a bit higher spec that the Arduino hobby boards bought on eBay. It has a +10 or +20 dB gain circuit in it too.
The driver for the LEDs 7 segment displays is pretty close to the main 5v regulator.
There are no caps near it though. I looked at off the self boards for that IC and to see how they did it.
No caps on it other than on the signal lines in.
Any recommendations?
Thank you
Siwastaja:
Looking at the clues posted in this thread, I'm almost 99.9% positive there's more to your problems than just the PCB mishap. Although it's possible such "almost shorted" pads could give intermittent operation, it's unlikely it happens in multiple units. You have so many unexplained incidents of it failing, working again, then failing again.
If you want to become a professional design engineer, do yourself a favor and as soon as you have a moment of silence, don't go on to design more features, or a more advanced product, but instead, try to do a proper root cause analysis. Instead of just building products, try to build a process/a "factory" where you can robustly build these products without wasting a lot of time.
You seem to have many issues, some are likely correlated, some are not.
In a stressful situation, we tend to fall back into trying to just get things to work by whatever means. Like can't get the MCU flashed? It's not a total showstopper, swap the board and go on. But in the long run, solving the problem once and for all would pay back in time used, and, it could turn out it's connected to your other issues, so they would be solved as well.
When I was looking this comment of yours:
"They just develop a fault where the software no longer cycles. This can happen on new boards too. It will go through the code 3-6 times and then hang. "
I thought, you are very lucky. You have a lot of specimen that do fail, on your hands. And you have consistent failures. Like you don't need to operate a well-performing product for weeks to see a failure. If I understand correctly, you have at least one (1) unit in your hands which you can demonstrate a failure with, within minutes or hours. That's great.
It doesn't matter what the fault is and what do you think it might be caused by. Given this particular failure you can demonstrate, go for full-blown root cause analysis and see what you find.
You just need to make your steps smaller, and lower level. Whenever you hit a wall of not knowing how to do it, Google it, learn it.
I don't personally use debuggers a lot, but this could be a case where you'd get a starting point. Failing to have one, just make your code turn an LED on/off at different points of code, after a few iterations of moving around where you turn the LED on/off you have found the exact place in code where it hangs.
If your MCU isn't flashing, look at the communication signals with an oscilloscope, decode the contents. It may take several hours, but then you know exactly where it hangs. Chances are, you find some analog signaling issue (stuck logic level, bad rise/fall time)... in two seconds after looking at the scope screen.
Get yourself the basic tools, a 50MHz 2-channel digital storage oscilloscope being a bare minimum to debug such a design. A $400 4-channel Rigol or similar is more than enough, but I'm sure you can get an older generation thing used for maybe $100.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version