an in-circuit flash PICmicro Programmer

You can buy a Wisp648 kit, Wisp648 build, or just a 16f648 with Wisp648 firmware. Or use this description to build your own programmer. No hidden costs, the PC software and firmware upgrades are free.



  in-circuit programmer
  programs flash PICmicro's
  supports a rapid cycle of code/program/test, including serial passthrough to the target
  prototype programmer
  takes power from the target circuit, or supplies power to the target circuit
  serial interface, also works with off-the-shelve usb-to-serial converters

Target chips

  10F200#, 10F202#, 10F204#, 10F206#, 10F220, 10F222
  12F1822@, 12F508, 12F509, 12F510, 12F609, 12F615, 12F629, 12F635, 12F675
  16F1823@, 16F1824@, 16F1825@, 16F1826@, 16F1827, 16F1828@, 16F1829@
  16F1933@, 16F1934@, 16F1936@, 16F1937, 16F1938@, 16F1939@, 16F1946@
  16F1947@, 16F505, 16F526, 16F54, 16F57, 16F59#, 16F610, 16F616, 16F627
  16F627A, 16F628, 16F628A, 16F630, 16F631, 16F636, 16F639, 16F648A, 16F676
  16F677, 16F684, 16F685, 16F687, 16F688, 16F689, 16F690, 16F716#, 16F72
  16F722, 16F723, 16F724, 16F726, 16F727, 16F73, 16F737, 16F74, 16F747, 16F76
  16F767, 16F77, 16F777, 16F785, 16F818, 16F819, 16F83, 16F84, 16F84A, 16F87
  16F870, 16F871, 16F872, 16F873, 16F873A, 16F874, 16F874A, 16F876, 16F876A
  16F877, 16F877A, 16F88, 16F882, 16F883, 16F884, 16F886, 16F887, 16F913
  16F914, 16F916, 16F917, 16F946
  18F1220, 18F1230@, 18F1320, 18F1330, 18F2220, 18F2221@, 18F2320, 18F2321
  18F2331#, 18F2410, 18F242, 18F2420, 18F2423, 18F2431#, 18F2439, 18F2450
  18F2455, 18F2458, 18F248, 18F2480, 18F2510, 18F2515, 18F252, 18F2520
  18F2523, 18F2525, 18F2539, 18F2550, 18F2553, 18F258, 18F2580, 18F2585
  18F2610, 18F2620, 18F2680, 18F2682, 18F2685, 18F4220, 18F4221, 18F4320
  18F4321, 18F4331, 18F4410, 18F442, 18F4420, 18F4423, 18F4431, 18F4439
  18F4450, 18F4455, 18F4458, 18F448, 18F4480, 18F4510, 18F4515, 18F452
  18F4520, 18F4523, 18F4525, 18F4539, 18F4550, 18F4553, 18F458, 18F4580
  18F4585, 18F4610, 18F4620, 18F4680, 18F4682, 18F4685, 18F6520@, 18F6620@
  18F6720@, 18F8520@, 18F8620@, 18F8720@

  The list above is valid when the xwisp PC software is used. Third party PC software might support less (or, in some cases, more) target chips
  Although not explicitly mentioned the LF (low power) variants of the mentioned chips are also supported, except for the 16LF72X chips, which are realy different chips from their 16F72X brothers, and for instance can't be run directly from 5V.
  Chips with a @ are supported according to the chip's programming specifications but not tested with a real chip.
  Chips with a # are somehow special. The xwisp command "xwisp info chip" (replace chip with the name of the chip) will tell you what is special about that chip.
  Writing ID memory is not supported for 16F7x.
  A special note for the 16F639 and 18FXX39 chips: these chips have the same on-chip identification code as the (very similar) 16F636 and 18FXX2 chips, but contain pre-programmed firmware. When you want to read the image of an such chips be sure to specify the target chip explicitly to the programmer softeware, otherwise the full 16F636 or 18FXX2 address range will be read, instead of the slightly smaller 16F639 / 18FXX39 address range, which would cause a verification error when you later try to write such an image to an similar chip.

PC Software

The XWisp program can be used to control the Wisp648 hardware. This program can be used on Windows (95 or higher). It is available as Windows installation package, or as Python source only (Python interpreter required). The XWisp program supports the full range of target chips supported by Wisp648.

The Wisp program is DOS a command-line program that can be used to control the Wisp648 hardware. It is available as source or as executable for DOS/Windows. This program will work only on DOS, or on Windows versions that allow direct access to the serial port hardware. It will not work on NT or NT-derived Windows versions, unless a suitable driver is installed that enables direct access to the serial port hardware. The Wisp program supports only a limited range of target chips.

A number of people have created their own PC software for use with Wisp648. The ones that I am aware of are listed below (in no particular order). Let me know if there are others. The set of target chips supported by this third-party software can be different from the list on this page. I do not 'support' this third-party software: when you have any trouble with it you will have to consult the author, not me.

  Win Wisp
  LINWLOAD intended for WLoader only, but will probably work with Wisp268 (with some limitations)

Downloads and other information

  the Wisp648 manual (pdf, for A4 paper)
  the firmware hex file for a 20 MHz 16F648A (current version is 1.29), and the firmware source (in Jal)
  the Wisp and XWisp programs are available from their respective pages

The PC-to-programmer protcol description.

PCB 1.05 bug

Version 1.05 of the Wisp648 PCB has a bug: the PGM line is permanently shorted to ground. The effect is that if you use the white wire to pull the PGM/LVP pin low during programming, this pin will permanently be pulled low, thus preventing normal use of this pin. If you donít use this pin you wonít notice this problem (which is why I did not discover it Ė thanks Johan Van Hecke!). More about this bug can be found in the manual.

The current version of the PCB has this bug fixed.


Changes in the manual are not listed here, check the manual itself.

17-JUL-2009 firmware 1.29 (supports 16F72x)
18-JAN-2009 firmware 1.28 (identified as Wisp648, supports 12F609..)
12-SEP-2008 firmware version corrected
18-JUN-2008 PCB 1.05 bug mentioned
30-NOV-2007 firmware 1.23: break handling corrected
19-NOV-2007 PCB 1.03; firmware 1.22; first public version

Copyright (c) 2007 Van Ooijen Technische Informatica / Wouter van Ooijen
Use of this document and the information it contains is granted to everyone on the conditions outlined in the Wisp648 document.