We designed a board with a Microchip PIC24HJ256GP610A on it. We've successfully used an ICD3 to program and debug the PIC on the Explorer 16 development board. We think we've followed the design guidelines found in Debugger's User's Guide:
Edit: We use a 4.6k pullup resistor between MCLR and VDD.
Our PCEG/PGED interface are pins 26/27 on the PIC. These lines are exclusively connected to the chip and not used for anything else.
We power our board externally and the PIC is connected to this power supply circuit (3.3 Volts, enough power from this source).
Edit: We use some decoupling capacitors on our supply rails (C2, C8, C9 and C16, C18):
However, when we try to connect and upload our program to the PIC, we get the following message in MPLAB X's output window:
Target detected
Target Device ID (0x0) does not match expected Device ID (0x77b0000).
This is an excerpt from our board's layout: