e-die: PIC12F683-based electronic die. Preview


'Knight-Rider':  LED experiment  with  PIC16F628A



Pic programmer

 Download the schematic (PDF)

This circuit is based on the original Tait programmer. We made a few changes in order to support recent PIC micro controllers:

  • The PGM pin is pulled to ground to ensure that it's at low logic level during programming and LVP mode is not entered (Ref. 1). LVP is enabled by default on brand new PICs like the 16F628A; erasing the chip also re-enables LVP. Noise spikes may cause unpredictable results during programming, if they couple into the PGM input (Ref. 2). A pull down resistor is a simple and cheap fix.
  • Selectable Vpp: you can choose the programming voltage amongst three values  with a dip-switch. Modern micro controllers generate the programming voltage internally and the requirement of 13.4 V is now obsolete (it's only necessary to ensure backwards compatibility with old micro controllers). The voltage applied to the MCLR pin must be less than 13.5 V (maximum absolute rating) for recent devices; choosing 12.7 V allows some headroom. 
    Select Vpp before powering the programmer.



V pp » V hi



13.4 V



12.7 V



12.0 V

o = open; c = closed; x = don't care

The programmer requires an external power supply of 18 V DC typically (two 9 V batteries in series, for example). The supply voltage for the 7406 IC and the micro controller is regulated by the 7805.

We recommend the 7406 or the 7407, with high voltage open collector outputs. Both inverting and non-inverting buffers can be used with one distinction: the software must be initialized by selecting the type of the buffers.  

If the circuit is powered by batteries, a switch helps extending their lifetime.

The software can give enough information on the process and no addidional LEDs are used in this circuit.

Programmed devices: PIC16F84A, PIC16F88, PIC16F628, PIC16F628A, PIC16F690, PIC12F629, PIC12F675, PIC12F508, PIC12F683.

Check the data sheets and the memory programming specifications of other PIC micro controllers before programming them with this circuit.

Top view

Pin Function Signal
4 !MCLR V pp
5 Negative voltage supply GND
14 Positive voltage supply V dd
9/10 RB3/RB4 PGM


List of parts (v1.3.4)

Part Value Part Value
D1 1N4001/7 U2 LM7805
D2, D3 1N4148 U3 SN7406
LED1 green LED Q1, Q2 BC307 (BC556, BC557)
R1, R5, R6 4700 ohms J1 DB25F connector
R2 1500 ohms C1 100 m F - 50 V cap.
R3, R4, R10, R11 10k ohms C3, C6 10 m F - 25 V cap.
R8 3300 ohms C2, C4, C5 10 nF ceramic cap.
R9 15k ohms sockets DIP8, DIP18
R12, R13 47k ohms SW1 switch
U1 LM7812 SW2 dip-switch


Device Configuration

V pp



PIC16F84A oscillator: XT

13.4 V

PIC16F88 oscillator: XT, HS

12.7 / 13.4 V

disable the LVP fuse
INTOSC (MCLR disabled)

12.7 / 13.4 V

PIC16F628 PIC16F628A oscillator: XT, HS

12.7 / 13.4 V

disable the LVP fuse
INTOSC (MCLR disabled)

12.7 / 13.4 V

PIC12F508 INTOSC (MCLR disabled)

12 / 12.7 V  (*)

calibration value!
PIC12F629 PIC12F675 XT, INTOSC (MCLR disabled)

12 / 12.7 V (*)

calibration value!
PIC12F683 INTOSC (MCLR disabled)

12 / 12.7 V (*)

WinPIC800, PICPGM Programmer
PIC16F690 (**) HS

12 / 12.7 V (*)

WinPIC800, PICPGM Programmer
PIC16F887 (***) HS

12 V

PICPGM Programmer

(*) Voltage applied to the MCLR pin must be less than 13.5 V (maximum absolute rating).

(**) Considering the similar position of the progamming pins of the PIC16F690 and the PIC12F629/675/683/508, one socket may be used to program all these devices.

(***) The Vdd pins of the PIC16F887 have been connected directly to 5 V (output of the 7805 regulator).


IC-Prog setup

DL4YHF's PIC Programmer setup

PIGPgm Programmer setup 

Hardware Check

The Hardware Check (or Interface Test and similar) function allows you to toggle the programming signals and check the voltages with a digital multimeter, before you start using the programmer.

PIC12F629/675, PIC12F508/9, PIC12F683


PIC10F200 (not tested)





Data sheets





This site is listed at  REM links free linking directory




All information, software and firmware on this site is provided "as-is" without warranty of any kind, either express or implied. Use of the documentation on this site is not permitted in commercial products. Names and trademarks are properties of the respective owners.