Saphum

Ifos Assembly Attempt #1

July 21, 2008 | 1 Minute Read

After assembling the first Ifos prototype based on the new circuit board design, I crossed my fingers and applied power.

The good news: It passed the smoke test (nothing exploded, melted, or released its magic blue smoke).

The bad news: The heartbeat LED no blinky.

Since programming PICs is still kind of a mystical art to me, I’ve taken to using a simple gross debugging tool on every project (well, this one): the wallclock ISR toggles an I/O port every 256 ms. This results in a train of pulses at ~2 Hz, perfect for blinking an LED about once a second. This “heartbeat” is a good indicator that:

  1. the chip was programmed successfully
  2. the MCLR line is high
  3. the start-up code was executed successfully
  4. the timer ISR is working
  5. the main program hasn’t HALTed
  6. the chip isn’t resetting continuously (due to stack over/underflow, RESET, brown out, etc.)
  7. the chip is operating at the expected frequency

No heartbeat meant something wasn’t right. That’s when I discovered the first major problem: I couldn’t reflash the chip using ICSP anymore. I knew it had worked at least once, because I had used it as soon as the μC and RJ25 jack were soldered down and my custom cable complete.

After an hour of searching, I still hadn’t found any solder bridges or gaps, so all I could do was starting removing components in reverse order. Almost immediately, I delaminated a couple traces. Drat. I green-wired them, but by now I’d spent so much time on the problem I decided to cut my losses and just start over. I’d assemble another board from scratch, but this time I’d follow my own advice and go slow.

It’s cliché, but haste makes waste. In this case, the waste was about $37 in parts and 6 hours of “me” time.