LProg Programmer for Microchip PIC Microcontrollers

Last updated 2 November 2022

The LProg is a low cost light weight PIC programmer for the 3.3 V PICs.  These include the 16F1xxx, 18FJ, 24H, 24F, 24FJ, 24EP, 33F, and 33EP families and others. 

No signals to program these parts exceed 3.3 V, which allows for an ultra low cost yet capable programmer.  The LProg can not damage the target PIC by accidentally exposing it to 5V or higher as programmers designed to support other PICs can. 

The LProg is completely powered by the USB, and can provide up to 100 mA Vdd current to the target. 

LProg PIC programmer

Purchase

Individual units

Embed does not sell individual units directly.  Individual units can be purchased from MicrochipDirect, product ID TEMLP001

Packs of 5 units, $120/pack ($24 each)

For shipping to the United States.  A flat fee of $15.00 will be charged for shipping and handling the first 5-pack, and $2.00 each additional 5-pack in the same order. 

For shipping to all other destinations.  A flat fee of $25.00 will be charged for shipping and handling the first 5-pack, and $3.00 for each additional 5-pack in the same order. 


Features

Product Package

The product package contains one LProg unit as show in the picture above.  No USB cable or PIC programming cable is included. 

Software and Firmware

The host software is available via free download at www.embedinc.com/picprg/sw.htm.

Units come with the latest firmware available at their time of manufacture.  Newer firmware may be available, and may be required to support all the PICs listed below.  The latest firmware is included in the software release.

All the software and firmware source code is available to download and build locally.  See www.embedinc.com/build.htm for details.  The firmware unique to the LProg is in the LPRG Git repository.  Additional firmware common to other programmers is in the PPROG repository.  The host software is in the PICPRG repository.

Supported PICs

The LProg always uses low voltage programming mode (LVP) entry, so can only be used with parts that support LVP.  LVP is always available on some parts, like many of the dsPIC series.  On other parts, LVP must be enabled by a configuration bit.  In that case, parts come from the factory with LVP enabled.  LVP can not be disabled from LVP mode.  This can only be done when programming mode is entered by using a high voltage.  In that case, the LProg can not program the part until LVP is re-enabled by using high voltage program mode entry.  Consult the datasheet of particular parts to find whether LVP can be disabled in those parts.

The LProg can program the following 480 parts when loaded with the latest firmware and when using the lastest software:

12F1501 12F1571 12F1572 12F1822 12F1840 12LF1501 12LF1571 12LF1572 12LF1822 12LF1840 16F1503 16F1507 16F1508 16F1509 16F1512 16F1513 16F1516 16F1517 16F1518 16F1519 16F15213 16F15214 16F15223 16F15224 16F15225 16F15243 16F15244 16F15245 16F15254 16F15255 16F15256 16F1526 16F1527 16F15274 16F15275 16F15276 16F15313 16F15323 16F15324 16F15325 16F15344 16F15345 16F15354 16F15355 16F15356 16F15375 16F15376 16F15385 16F15386 16F1703 16F1704 16F1705 16F1707 16F1708 16F1709 16F1764 16F1765 16F1768 16F1769 16F1782 16F1783 16F1784 16F1786 16F1787 16F1788 16F1789 16F1823 16F1824 16F1825 16F1826 16F1827 16F1828 16F1829 16F18313 16F18323 16F18324 16F18325 16F18326 16F18344 16F18345 16F18346 16F1847 16LF1503 16LF1507 16LF1508 16LF1509 16LF1512 16LF1513 16LF1516 16LF1517 16LF1518 16LF1519 16LF1526 16LF1527 16LF15313 16LF15323 16LF15324 16LF15325 16LF15344 16LF15345 16LF15354 16LF15355 16LF15356 16LF15375 16LF15376 16LF15385 16LF15386 16LF1703 16LF1704 16LF1705 16LF1707 16LF1708 16LF1709 16LF1764 16LF1765 16LF1768 16LF1769 16LF1782 16LF1783 16LF1784 16LF1786 16LF1787 16LF1788 16LF1789 16LF1823 16LF1824 16LF1825 16LF1826 16LF1827 16LF1828 16LF1829 16LF18313 16LF18323 16LF18324 16LF18325 16LF18326 16LF18344 16LF18345 16LF18346 16LF1847 18F13K22 18F14K22 18F23K22 18F24K22 18F24K50 18F24Q10 18F25K22 18F25K80 18F25Q10 18F26K22 18F26K80 18F26Q10 18F27Q10 18F43K22 18F44K22 18F45K22 18F45K80 18F45Q10 18F46K22 18F46K80 18F46Q10 18F47Q10 18F65K22 18F65K80 18F65K90 18F66K22 18F66K80 18F66K90 18F67K22 18F67K90 18F85K22 18F85K90 18F86K22 18F86K90 18F87K22 18F87K90 18LF13K22 18LF14K22 18LF23K22 18LF24K22 18LF25K22 18LF25K80 18LF26K22 18LF26K80 18LF43K22 18LF44K22 18LF45K22 18LF45K80 18LF46K22 18LF46K80 18LF65K80 18LF66K80 24EP128GP202 24EP128GP204 24EP128GP206 24EP128MC202 24EP128MC204 24EP128MC206 24EP256GP202 24EP256GP204 24EP256GP206 24EP256MC202 24EP256MC204 24EP256MC206 24EP32GP202 24EP32GP203 24EP32GP204 24EP32MC202 24EP32MC203 24EP32MC204 24EP512GP202 24EP512GP204 24EP512GP206 24EP512MC202 24EP512MC204 24EP512MC206 24EP64GP202 24EP64GP203 24EP64GP204 24EP64GP206 24EP64MC202 24EP64MC203 24EP64MC204 24EP64MC206 24FJ128GA006 24FJ128GA008 24FJ128GA010 24FJ128GA106 24FJ128GA108 24FJ128GA110 24FJ128GB106 24FJ128GB108 24FJ128GB110 24FJ16GA002 24FJ16GA004 24FJ192GA106 24FJ192GA108 24FJ192GA110 24FJ192GB106 24FJ192GB108 24FJ192GB110 24FJ256GA106 24FJ256GA108 24FJ256GA110 24FJ256GB106 24FJ256GB108 24FJ256GB110 24FJ32GA002 24FJ32GA004 24FJ32GA102 24FJ32GA104 24FJ32GB002 24FJ32GB004 24FJ48GA002 24FJ48GA004 24FJ64GA002 24FJ64GA004 24FJ64GA006 24FJ64GA008 24FJ64GA010 24FJ64GA102 24FJ64GA104 24FJ64GA106 24FJ64GA108 24FJ64GA110 24FJ64GB002 24FJ64GB004 24FJ64GB106 24FJ64GB108 24FJ64GB110 24FJ96GA006 24FJ96GA008 24FJ96GA010 24HJ128GP202 24HJ128GP204 24HJ128GP206 24HJ128GP206A 24HJ128GP210 24HJ128GP210A 24HJ128GP306 24HJ128GP306A 24HJ128GP310 24HJ128GP310A 24HJ128GP502 24HJ128GP504 24HJ128GP506 24HJ128GP506A 24HJ128GP510 24HJ128GP510A 24HJ12GP201 24HJ12GP202 24HJ16GP304 24HJ256GP206 24HJ256GP206A 24HJ256GP210 24HJ256GP210A 24HJ256GP610 24HJ256GP610A 24HJ32GP202 24HJ32GP204 24HJ32GP302 24HJ32GP302-QFN 24HJ32GP304 24HJ64GP202 24HJ64GP204 24HJ64GP206 24HJ64GP206A 24HJ64GP210 24HJ64GP210A 24HJ64GP502 24HJ64GP504 24HJ64GP506 24HJ64GP506A 24HJ64GP510 24HJ64GP510A 33EP128GM304 33EP128GM306 33EP128GM310 33EP128GM604 33EP128GM706 33EP128GM710 33EP128GP502 33EP128GP504 33EP128GP506 33EP128MC202 33EP128MC204 33EP128MC206 33EP128MC502 33EP128MC504 33EP128MC506 33EP256GM304 33EP256GM306 33EP256GM310 33EP256GM604 33EP256GM706 33EP256GM710 33EP256GP502 33EP256GP504 33EP256GP506 33EP256MC202 33EP256MC204 33EP256MC206 33EP256MC502 33EP256MC504 33EP256MC506 33EP32GP502 33EP32GP503 33EP32GP504 33EP32MC202 33EP32MC203 33EP32MC204 33EP32MC502 33EP32MC503 33EP32MC504 33EP512GM304 33EP512GM306 33EP512GM310 33EP512GM604 33EP512GM706 33EP512GM710 33EP512GP502 33EP512GP504 33EP512GP506 33EP512MC202 33EP512MC204 33EP512MC206 33EP512MC502 33EP512MC504 33EP512MC506 33EP64GP502 33EP64GP503 33EP64GP504 33EP64GP506 33EP64MC202 33EP64MC203 33EP64MC204 33EP64MC206 33EP64MC502 33EP64MC503 33EP64MC504 33EP64MC506 33FJ06GS101 33FJ06GS102 33FJ06GS202 33FJ128GP202 33FJ128GP204 33FJ128GP206 33FJ128GP206A 33FJ128GP306 33FJ128GP306A 33FJ128GP310 33FJ128GP310A 33FJ128GP706 33FJ128GP706A 33FJ128GP708 33FJ128GP708A 33FJ128GP710 33FJ128GP710A 33FJ128GP802 33FJ128GP804 33FJ128MC202 33FJ128MC204 33FJ128MC506 33FJ128MC506A 33FJ128MC510 33FJ128MC510A 33FJ128MC706 33FJ128MC706A 33FJ128MC708 33FJ128MC708A 33FJ128MC710 33FJ128MC710A 33FJ128MC802 33FJ128MC804 33FJ12GP201 33FJ12GP202 33FJ12MC201 33FJ12MC202 33FJ16GP304 33FJ16GS402 33FJ16GS404 33FJ16GS502 33FJ16GS504 33FJ16MC304 33FJ256GP506 33FJ256GP506A 33FJ256GP510 33FJ256GP510A 33FJ256GP710 33FJ256GP710A 33FJ256MC510 33FJ256MC510A 33FJ256MC710 33FJ256MC710A 33FJ32GP202 33FJ32GP204 33FJ32GP302 33FJ32GP304 33FJ32GS406 33FJ32GS606 33FJ32GS608 33FJ32GS610 33FJ32MC202 33FJ32MC204 33FJ32MC302 33FJ32MC304 33FJ64GP202 33FJ64GP204 33FJ64GP206 33FJ64GP206A 33FJ64GP306 33FJ64GP306A 33FJ64GP310 33FJ64GP310A 33FJ64GP706 33FJ64GP706A 33FJ64GP708 33FJ64GP708A 33FJ64GP710 33FJ64GP710A 33FJ64GP802 33FJ64GP804 33FJ64GS406 33FJ64GS606 33FJ64GS608 33FJ64GS610 33FJ64MC202 33FJ64MC204 33FJ64MC506 33FJ64MC506A 33FJ64MC508 33FJ64MC508A 33FJ64MC510 33FJ64MC510A 33FJ64MC706 33FJ64MC706A 33FJ64MC710 33FJ64MC710A 33FJ64MC802 33FJ64MC804

Additional PICs will be supported in the future.  Contact Embed Inc if you need a PIC supported that is not listed above.

Updating the Firmware

Follow these steps to update the LProg firmware:

  1. Go to the PIC programmers software page and install the operational software.  This installs the latest software and firmware on your machine.
  2. Connect the LProg to your computer, and make sure no other PIC programmers are connected to the computer.
  3. From a command shell, run:

    pic_prog

    This will result in a message like:

    Programmer firmware is type LProg version 18 by Embed Inc.
    Programmer name is "LProg0121".
    Unable to read the device ID from the target chip.  This is probably because
    the target chip is not a supported type, does not contain a unique device ID
    (12 bit core devices), nothing is plugged into the programming socket (if
    present), or the programmer is not connected to a target circuit.
    *** Program aborted on error. ***
          

  4. Compare the version shown on the first line of the output, above, to the latest version available for the LProg.  The latest firmware for each Embed programmer is shown on the PIC programmers software page.  LProg firmware is in files named LPRGxx.HEX, where XX is the version number.
  5. If the LProg version reported in step 3 matches the latest version, then STOP.  Your LProg is already running the latest firmware.
  6. Record the programmer name reported on the second line of the output from step 3.  Loading new firmware into the LProg will erase its name.  Saving the name allows it to be restored in a later step.
  7. Unplug the USB cable from the LProg.  The LED on the LProg should now be completely off.
  8. Connect a second PIC programmer to the LProg.  This programmer must be able to program a PIC18F2455 in-circuit.  The Embed USBProg or USBProg2 programmers are suitable, for example.  Note that another LProg is not suitable since the 18F2455 can not be programmed with the low voltage method (LVP).

    The programming lines of the PIC in the LProg are available on pads in the upper left corner:


  9. Program the new firmware into the LProg.

    The LProg firmware is in files named LPRGxx.HEX, where XX is the firmware version number.  These files are in the SRC > PICPRG directory within the software installation directory.  For example, if the software was installed to the default location, then the firmware files directory is "c:\embedinc\src\picprg". 

    Use the second programmer to program the LPRGxx.HEX file for the latest LProg firmware into the LProg.

    For example, if the second programmer is an Embed USBProg2, then the command to program the firmware into the LProg would be:

    pic_prog filename

    With filename replaced by the name of the LPRGxx.HEX file.  In the case of using the pic_prog program, the ".hex" file name suffix may be omitted from filename.

    The output should look similar to:

    Programmer firmware is type USBProg version 35 by Embed Inc.
    Programmer name is "USBProg1117".
    The target chip type is 18F2455 revision 6.
    Erasing the target chip.
    Writing to program memory.
    Writing to non-volatile data memory.
    Writing to ID and other locations.
    Performing verification at 5.5 volts.
    Performing verification at 4.5 volts.
    Writing configuration bits.
    Performing verification at 5.5 volts.
    Performing verification at 4.5 volts.
    No errors.  Elapsed time was 11.6 seconds.
          

  10. Disconnect the second programmer from the machine, and connect the LProg via USB.
  11. Run the command:

    pic_ctrl -setname name

    With name replaced with the original name of the LProg that was saved in step 6.  If the name contains spaces, then it must be enclosed in quotes.

  12. To verify the new firmare version and the LProg name, run:

    pic_prog

    The firmware version should now be the latest, and the name should be the same as reported by pic_prog in step 3.

Additional Documents