./wip/picprog, PIC16, PIC12 and PIC18 microcontroller programmer

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 1.9.1, Package name: picprog-1.9.1, Maintainer: pkgsrc-users

PICmicro microcontrollers, or MCUs, are fine chips that are especially easy
to program with a simple device attached to a parallel or serial port.
Because of the EEPROM or Flash memory, they are also easy and fast to erase
and reprogram without need for UV equipment. This makes them very popular
among electronics hobbyists.

At the moment this is the second implementation of a PIC programmer for
Linux that works with the very simple and cheap serial port programmers.
The first one I know was made by Ralph Metzler in 1996. My programmer was
originally designed for PIC16C84 and PIC16F84 chips back in 1997, and since
then I have implemented other chips without access to most of them. I have
tested PIC16F628, PIC16F676, PIC12F675, PIC16F88, PIC16F876A, PIC16F76,
PIC18F1320 and PIC18F458. Others have used many other models. The dsPIC30
family has some code in the sources, but the support is not finished yet.
Some 12 bit chips should be supported but I have not tested that support.

Master sites:

SHA1: 7956eabb6ff9a8427ad65e3186ef17a172c31620
RMD160: 63293485f27e88a6de684bc10bbeb52c85681a53
Filesize: 74.66 KB

Version history: (Expand)

CVS history: (Expand)

   2014-08-24 01:07:16 by Leonardo Taccari | Files touched by this commit (6) | Package updated
Log message:
Update wip/picprog to picprog-1.9.1, requested by Piotr Staszewski on

While here also add DESTDIR support, improve COMMENT and DESCR a bit (all stolen
from official web site).

Compile-tested only.

2003-08-10 version 1.2 
With help from Taneli Kalvas changed the schemantics diagram and pcb mask to
ground the RB4 pin, selecting high voltage programming on for example pic16f628.

Implemented preservation of OSCCAL and other calibration data. 
Added automatic detection of devices based on location 0x2006. 
Merged Bart Goossens's changes to implement PIC16F73. I hope it works.

2003-08-21 version 1.3 
Autodetect more chips. Fix programming of chips with OSCCAL. Fix erasing some
chips - erasing and resetting code protection is now performed the hard way: all
methods are tried regardless of chip type. --erase now works also without
--input-hexfile flag.

2004-01-02 version 1.4 
Add option --force-calibration to program OSCCAL and BG bits. Implement
programming algorithms for 16f87/16f88 and 16f87Xa. Revise some timings on
programmer reset to avoid operating voltage to dip. More verbose output on how
many locations actually were burned.

2004-03-02 version 1.5 
Fix PIC16F87xA configuration word burning. Remove the 10k resistor added by me
from the PCB and schema. Add support for PIC18 family. Make the DTR be held low
as long as possible. This may improve the reliability and limit stress on RS-232

2004-03-19 version 1.6 
Now compiles on Windows with Cygwin DLL version 1.5.8 and later. More accurate
timings result in shorter programming times compared to previous versions. These
timings use the CPU RDTSC instruction on x86 and AMD64 plattforms. PIC16F87/88
second configuration word programming implemented.

2004-04-28 version 1.7 
Fixed 16c OTP and UV erased parts EPROM programming to use 100µs
programming/overprogramming pulses. Use real time priorities and nanosleep() for
delays if run under root priviledges. Relax timings so that they work out of the
box with longer cables. Fixed PIC12F629 / PIC12F675 / PIC16F627a / PIC16F628a /
PIC16F648a / PIC16F630 / PIC16F676 programming with >1.3GHz i386 CPU.

2006-03-05 version 1.8 
Experimental dsPIC support, never tested, just compiled. Disabled the real time
priorities, the nanosleep function does not work any more in Linux 2.6 kernels
as it used to. Exit value 76 added to indicate unsupported chip id. Added more
PIC18F models, thanks to Jan Wagemakers from Belgium.

2006-03-26 version 1.8.1 
Fix a mistake with 18f[24]5[128]5 and 18f[24]6[128]0. Thanks to Jan Wagemakers
for the fix.

2006-09-28 version 1.8.3 
Added --rdtsc, --nordtsc and --slow options. They may help with laptops and new
faster models of CPUs. Made --nordtsc the default. This was originally release
1.8.2 that did not have that default.

2008-06-05 version 1.9.0 
New chips defined, including 12 bit parts, thanks to Renato Caldas, Kevin
Buettner, Alexander Zangerl and Jan Wagemakers. Chip presence is no more
detected with start/stop bit checking, as some chips do not clear them (see
Debian bug #412778). Microcontroller is now powered off before any operations
with --reboot option, thank you for the idea to Mauro Giachero. Some code
changes remove duplicate port initialization. Timings have been changed
completely, hopefully this fixes the erratic behaviour with some chips. Thank
you for testing and ideas to Mauro Giachero and Jan Wagemakers. Added
environment variables PIC_PORT and PIC_DEVICE, thanks to monttyle. Added --k8048
option for Velleman K8048 with reversed signals, thanks to Bob Dunlop and Neil

2010-04-14 version 1.9.1 
Fixed a bug that prevented erasing chip with OSCCAL words. Thank you for Eckhard
Neber for finding this. Read also short hexfile data lines, thanks to Jacques
Klei, Salie Adams, Redzinalds Knipsis and Jani Turkia for pointing this out.
Charge capacitors a little longer, suggested by Bernard Hatt. Added some NOP
commands to PIC18F programming sequence, suggested by Marco Mattila. Fixed
warnings with current compilers. Changed license to GPL3. Thanks to Mario
Castelán Castro for reminding about that.
   2012-11-26 00:32:22 by othyro | Files touched by this commit (104)
Log message:
Maintainer stated that no time is available to work on pkgsrc anymore, but
wouldn't mind seeing other people continue to maintain these packages.
Resetting to pkgsrc-users@NetBSD.org
   2012-10-05 13:31:51 by Aleksej Saushev | Files touched by this commit (25)
Log message:
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
Mark packages that don't or might probably not have staged installation.
   2006-12-03 18:59:35 by Sergey Svishchev | Files touched by this commit (2)
Log message:

   2006-08-25 23:36:57 by David Howland | Files touched by this commit (1)
Log message:
   2005-09-28 08:41:20 by Roland Illig | Files touched by this commit (179)
Log message:
Added RMD160 checksums.
   2005-05-24 12:31:18 by Roland Illig | Files touched by this commit (1)
Log message:
Replaced USE_GNU_TOOLS+=make with USE_TOOLS+=gmake.
   2005-04-11 23:14:47 by Todd Vierling | Files touched by this commit (1)
Log message:
Remove USE_BUILDLINK3 and NO_BUILDLINK; these are no longer used.