ed_b_pes wrote: > Second, I didn't leave ICD registers free in the '877 before I tried > to program it: 0x70, 0xF0, 0x170, 0x1E5 - 0x1F0. Since then I've > shuffled stuff around to clear those registers. That is only necessary if you want to use the ICD2 for debugging. No resources are taken away if you are just using it as a programmer. > Fifth, there are no pull up/pull down resistors, diodes, capacitors > on any programmer lines. Take a look at the ICD2 documentation. I think they recommend a 10Kohm pullup from MCLR to Vdd. > This means that the only thing left to check is the program. It can't have anything to do with your code if the ICD2 can't even program the part. There is something more fundamental electrical wrong. Make sure that you are trying to just "program" the part, as apposed to "debugging" it with the ICD2. The ICD2 can hook up to a 16F877 in any state and program it, but this is not true for debugging. As you mentioned, debugging requires you to leave some resources for the ICD2. External debugging must also be enabled in the configuration settings. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics