In-Circuit debugger, created by E.E. Atanasios Melimopoulos using PIC16F628 microcontroller

This project was sent by Electrical Engineer Atanasios Melimopoulos (Copyright (c) June 15, 2007)


In-Circuit-Debuggers, as you may already know, have become the PIC’s debugging standard tool for many programmers because it’s easy use and handy interface to the target picplaced- board. They come with MPLAB plug-ins that provides a full rich set of commands and functions in order to debug your code in real time.


After hours of using some brands of ICDs, ICD2, etc. on different projects, I faced some hardware situations where the two pin interface ICD <-> PIC becomes annoying and sometimes difficult to work around. Apart from the fact that your target pic must run at selected clock frequencies that allows the ICD-Uart baudrate multiplier to fit. Also, some pics do not allow the same on-hook commands upon which ICDs are based. There is no electrical isolation between the pic-target board and the USB/Serial PC-GND interface.

Thinking about it, I decided to build the INSIDER, based on the following:

  • 1Bit Interface placed on ANY I/O selected spare pin (or carefully shared). ICD 2bit interface is too much, usually on 12Fxxx 8-pin pics where there are only 6 I/O pins. Also on bigger pics, like 16Fxxx and 18Fxxxx where the RB port is the most useful, the fact that RB6-RB7 are forced to be the 2bit ICD interface, may goes against your hardware I/O connections and sometimes you can’t share their use.


  • 1Bit Interface independent of the target PIC clock speed from 20KHz to 50MHz. ICD 2bit interface communicates to the target pic via serial ASCII link, that’s why the pic clock freq must be close to an integer multiple of the chosen baudrate.


  • 1Bit Interface independent of the target PIC type (12Fxxx, 16Fxxx, 18Fxxxx) ICD commands and features are based on some bootstrap routines that Microchip places on most of its MPU types. But depending of the devices class, family and generation, this routines differs and so the ICD implementation of this functions.


  • Electrical Isolation between the target PIC hardware and the PC workstation. PICs MCU are very useful on AC-line applications where the pic floats driving a MOSFET HBridge PWM converter or a Triac controlled power assembly, etc. That’s why it is so important to isolate the PC from the Target-PIC using an isolated connection ICD tool.


  • Small, easy to build, easy PC interface and very easy to use. With a double side 1″x 2″ PCB, just one 18pin dip 16F628 pic, a dual-optocoupler, leds, a pushbutton, some resistors, serial connector, etc. I think this is a small and easy to build circuit. With no more than 10 well designed commands and the most basic interface available: Hyperterminal using the PC serial-Ports.

Against some opinions, PC serial comm ports are not obsolete, my Dual Core PC desktop has two and my Core 2 Duo Laptop (HP nx6320) has one. Of course I could place an USB-Uart bridge chip in order to use the PC USB port (maybe later) and you can find a handy PCI card serial port for your Desktop PC. (USB-serial-port cable doesn’lt work).

For more detail: In-Circuit debugger, created by E.E. Atanasios Melimopoulos using PIC16F628 microcontroller

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.