Santa brought the boys two Tonka Ricochet Replay R/C cars on Sunday, a blue/green one for Zane and a yellow/red one for Aidan. Unfortunately, only Zane’s worked, putting a damper on Aidan’s Christmas—Zane was having too much fun to share.
The M25P10-A serial flash memory I use in the Ifos project seemed non-responsive when installed in the actual device—at least, my test program was consistently failing. Something was wonky, though, because not even debugging output was reaching the console.
Here's a short video of Ifos running a hardware check. The LEDs are intensely bright, so it probably would have been better not to shoot them straight-on, but the basic operation is still obvious.
I finally tracked down some sticky issues with the PCB prototype of my Ifos project. Until now, I had assumed hardware problems accounted for its non-function. In a way, that was true, but in another more important way, it was software. I made some subtle changes in port assignments for the PCB version, then forgot to tell myself about them.
Compare the same SPI command sent from two PICs, one on the breadboard prototype of my Ifos project and one on the pcb-based version:
As I suspected, the in-circuit serial programming problem I was having with the new Ifos prototypes was due to a lack of isolation between the ICSP interface and the rest of the Ifos circuit. Not sure how the breadboard prototypes work in spite of this, but the circuit-board-based versions are definitely affected. Here's the original circuit:
I just started building the second Ifos prototype from scratch, and already I've discovered an issue that problably contributed to the DOA-ness of assembly attempt #1. It turns out the land pattern for the voltage regulator's heatsink doesn't quite match the heatsink I'm actually using. When installed, the heatsink just barely clears the solder pads, and the mounting nut allows enough play that the pads may actually be shorted together.
After assembling the first Ifos prototype based on the new circuit board design, I crossed my fingers and applied power.
My PIC programmer has a 6-pin ICSP header that I've been using to program the breadboard prototypes of my Ifos controller. Each prototype has a matching header and I simply connect it to the programmer with a straight-through ribbon cable. For the "real" version (or at least the real prototype version), I decided an RJ25 jack would be more convenient, wired for compatibility with Microchip's MPLAB ICD 2.
Just received my revised Ifos circuit boards from the manufacturer yesterday, so most of the evening was devoted to assembly. The boards themselves look great, with my corrections in place (fixing the DRC errors of the last batch) and no obvious defects.