Ha, a classic. A few off the cuff (@ 2:20am EST so take with grain of margarita salt) comments... 1. I use 16mil vias for two reasons - a) drill sizes of 15mil or lower may cost more, and b) 30ga wire-wrap wire will just fit thru the hole, rather useful for minor muck-ups like this. I'm almost tempted to put a via on most signal traces on a proto board just to give me these options. But I'm usually too confident to bother. (Hubris will get you every time) 2. shorted PIC output pins seem to cause the chip to warm up, maybe to the point of fairly hot, but haven't blown them, as one would think. I'm thankful for this! Gives one time to probe around. 3. a minor-ish fix for qty 10 isn't bad. its the qty 100 that'll really make you try hard to not make mistakes. and yet, I do. always the last minute changes too, you can't be too careful. the latest was putting a significantly undersized (in W rating) inrush limiting resistor right before the production run. every time you turn it on, get a tiny puff of smoke! great. pull 100 1/2W SMT, tack-solder 100 3W radial. after the first 10 you start to not pay any attention to what you're doing, and your hands work on autopilot ... for a few hours. ack. 4. i've found an xacto knife is as vital as tweezers, nippers, and needlenose pliers on the EE workbench. who knew. Anyway, 8 hours of head-scratching sounds about right. congrats on getting it all to go. if the patch wires are awkward and might work themselves loose somehow, a little devcon 5-minute 2-part epoxy is another fixit EE must-have. great stuff. J Timothy Weber wrote: > Classic goof-up, simple to do, should have caught it earlier, didn't, > but it's the strange symptoms that I thought were worth sharing. > > Breadboard prototype worked great. Contained two PICs talking over a > pair of serial lines, using a simple asynchronous protocol, one line for > transmit and one for receive. One 16F688 for main processing, and a > 16F916 to drive a six-digit LED display in the usual multiplexed manner. > > Got the boards. Populated (or shall I say, 'stuffed') one. Powered up. > The display is all 8's for a few seconds (its normal startup mode), > then changes to one much brighter 8. The specific digit varies among > trials. > > My initial guess was that the LED driver code was hanging, and this > appeared to be borne out by further experiments. Pared the code down to > an absolute minimum; still hung. > > So I'm thinking bypass capacitors. Added more, and larger. They change > the behavior so I think I'm on the right track, but eventually I'm up to > one 10 uF tantalum each and it still hangs regularly. > > Then I'm questioning the power supply. Too much ripple? Any drains > that would be bigger on the PCB than the breadboard? Less stray > capacitance in general on the PCB... I had chosen not to do a ground > plane because I thought I wouldn't need it - mostly low-frequency stuff > - but maybe the LED multiplexing was switching too many mA too fast? > Seemed unlikely. But maybe... > > Pins left floating? No, all are either outputs or pulled up internally. > > Watchdog reset? Doesn't really fit. I had watchdogs turned off on both > chips at this point. Turned them on; the watchdog barked every time, > after the hang, and the chip happily restarted. So it wasn't the problem. > > And why wasn't the main controller sending anything to the display, > anyway? What was it doing while the LED driver was locked up? > > After nearly eight hours of this... > > TX on PIC #1 was going to TX on PIC #2, and RX to RX. A brain fart in > the schematic, and I never caught it before the board went out. > > So basically, one PIC was lowering the TX line to start transmitting a > byte, and there's no resistor between the two, and the other was still > holding it high. So current was unlimited, and one or both chips > latched up? Make sense? > > Luckily, there were a couple of vias I could use to insert some jumpers > without too much pain. And it's only a run of 10, so fixing all the > boards will be annoying but not too slow. > > So basically, the weird lockup symptom got me sidetracked thinking about > bypass capacitors and fiddly voodoo analog stuff, instead of going back > to the basics and checking continuity. Checking continuity while > thinking carefully, I should say. > > This was yesterday, so it's still a bit painful, but today the whole > product is working, so I'm cheered up and able to get it off my chest. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist