Software for Microchip® PICmicro® controllers

(latest page update: 22 December 2013)

Download Description

List of Errata in Programming and Customizing PICmicro microcontrollers second edition, by Mike Predko; McGraw-Hill, ISBN 0-07-136172-3.
The errata should really be on the site of Myke Predko. I sent my list to Myke in July 2002. According to Myke I got an early print of his book, and he confirmed it was a disaster.
In contrast to the promise on page XXII of the book, the Errata and Update section on the site of Myke does not list any of these. And my list may even be far from complete, since I did not read the whole book and got tired of making a note of every error I found!

Christmas 2002 project My first complete PICmicro project: a Christmas armature, with "twinkeling" electric candles (another view).
The chassis is made of aluminum L-profile (30x30x2 mm) and the candles are made of 13 mm aluminum pipes. The structure is about 35 cm wide and 25 cm high, and assembled with two component glue.
The fittings (E10) and bulbs (14V, 3W) are obtained from an old christmas-tree string. The chassis is the common plus-pole for the candles. Care should be taken to ensure the pipes make contact with the chassis, for example with small parker screws underneath the chassis.
The schematic is very simple, basically a PIC16F628 using the internal oscillator and an ULN2003 as amplifier for the candles, and of course a power supply: 12VDC/1A wallwart and a 7805. The electronic components fit easily on a piece of vero-(strip)-board (you will notice the connector for ICS programming with Wisp628). The board can be mounted underneath the chassis. Since the ULN2003 is loaded practically to its limit I glued a heat sink on the body.
The control program is pretty simple, and may be an example of the use of timer interrupts. The source contains comments about how and why. The luminesce of the candles is regulated with PWM (bit banging) using Timer0, for each candle individually. Under control of Timer2 the PWM value of each candle is slowly changed, having the effect of fade-in and fade-out. The overall luminosity pattern can be changed with a push button, some alternative patterns are provided.
The source can be compiled with the (free demo-version of the)  CC5X compiler.
Freeware, released 7 November 2002.

Schematics and software for low voltage dimmers.
This dimmer software is an enhanced version of an older version (which is now obsolete and removed).
  • This version is written in JAL, compiled with the JalV2 compiler, using Jallib libraries.
    For more info about Jal en Jallib see elsewhere on this site.
  • The range of the potmeter is somewhat reduced such that flicker due to instable slider contacts (frequently occuring at the ends of the slider) is avoided.
  • The movement of the slider is also digitally filtered to obtain a more smooth change of the lightening level.
See for more details the readme file and comments in the source file.
This package contains source and hex files, as well as schematics of dimmers for 5 Volt and 12 Volt. The hardware (schematics) is unchanged, see 5V dimmer and 12V dimmer.
Freeware, version 0.1.0, released 16 April 2017.
for FSbus

Tester for 7-segment display units as used with FSbus used by many Flight Simulator cockpit builders, see FSbus.
Main purpose is to check if all digits and segments of a display are connected and working correctly. Every segment is lit individually for about half a second to make it easy to determine which segment (if any) is not working properly. Common Anode or Cathode displays can be tested, selectable by jumper.
The tester can be equiped with different PICmicros: 16F818/9, 16F87/8, 16F628A or 16F648A (each with specific firmware).
The package contains pictures (JPG files) of schematics, as well as all source-, hex- and make-files. The readme and source files contain information about how and why and can be compiled with the (free demo-version of the) CC5X compiler.
Freeware, version 1.1.0, released 10 August 2007.
PC case fan

Temperature controlled PC case fan
This is a simple controller, equiped with a PIC12F683, an LM74 temperature sensor, an N-channel MOSFET and a few other components. It is designed to quiesce the cooling fan in a PC (the case fase) when the temperature in the inside does not require cooling. The fan starts rotating slowly when temperature rises above 30 degrees Celsius and rotation speed increases with temperature. At 55 degrees C and above it runs at full speed. When cooling down the rotational speed is gradually decreased until 30 degrees C when it runs at minimum speed. The fan stops turning when temperature has dropped below 25 degrees C.
The controller works fine with my 92 mm fan, but may need changes for other fans. In particular the power needed for minimum speed might need adaption to your specific fan.
Connect the controller to a standard diskette/harddisk connector of the PC power-supply. Mount it in a safe place where the air temperature of the inside of the PC case can be measured reliably.
The package contains source-, hex- and make files, as well as the schematics of the Fan controller. The source can be compiled with the (free demo-version of the) CC5X compiler.
Freeware, version 0.1.3, released 28 January 2007.

GPutils 1.2.0 for eComStation.
{eCS} This is a complete distribution of GPutils (GPASM, GPLINK, GPLIB, GPDASM and some others) for eComStation (OS/2). All programs run in an eComStation commandline session, just like their Linux originals. The sources were compiled with Open Watcom C/C++ with a set of makefiles for Wmake. No changes were made to the sources. The makefiles are included in this distribution. The original sources were obtained from SourceForge.
Released 27 September 2013.
Click GPutils-0.13.6 or GPutils-0.13.7 or GPutils-0.14.1 or GPutils-0.14.2 or GPutils-1.0.0 or GPutils-1.1.0 to download an older version.

JAL compiler version 0.4.60 for eComStation.
{eCS} This version of the JAL compiler has been compiled with IBM VisualAge C Compiler version 3.0, and runs in an eComStation commandline session, exactly like the original DOS version of JAL. Note: This archive contains only the file JAL.EXE. All other required material should be obtained from the repository at   SourceForge. Download the corresponding version of the Win32 package of JAL from SourceForge and replace its file Jal.Exe with the eComStation executable provided here. See also the Readme.OS2 file in this package.
Released 4 May 2004.

JAL V2 compiler version 2.4q6 for eComStation.
{eCS} This version of the JALV2 compiler has been compiled with Open Watcom C/C++ 2.0 compiler and runs in an eComStation commandline session, just like its Linux and Windows sisters.
This is the sixth bug fix version of version 2.4q.
Released 25 October 2016.
Note: This archive contains only the eComStation executable "Jalv2ecs.exe" and some make files. The complete original JalV2 compiler can be obtained from the Homepage of JalV2.
A collection of JalV2 libraries is available at Jallib.

Click JalV2 2.4o, or JalV2 2.4p, or JalV2 2.4q4, or JalV2 2.4q5, to download an older version of the compiler for eComStation.


JAL V2 compiler Include File generation project. Project for generating include files for PIC microcontrollers supported by the JAL V2 compiler. These files are shadows of the device files of Jallib.

PICmicro programming of LocoBuffer and LocoIO, version 0.8 LocoBuffer and LocoIO are PICmicro based devices designed by by John Jabour. Both devices are equiped with a PIC16F873.
Jisp is a JAVA application with which LocoBuffer devices can be programmed via a serial port, and LocoIO devices via a parallel port, without any additional hardware (such as a PICmicro programmer). It provides a Graphical User Interface, but is somewhat slow.
Requires Java 1.1.8 or higher with Swing and JavaComm.
For details of LocoBuffer and LocoIO see the Files section of the Loconet Hackers mailing list.
The source material is available.
Java, Freeware, released 15 October 2002.
Orientation Light

Battery powered Orientation Light with 2 white LEDs
The circuit is very simple, basically a PIC16F683 using the internal oscillator, builtin ADC to read a potmeter and hardware PWM to control the brightness of the LEDs.
The control program is pretty simple as well, and may be an example of the use of an asynchronous timer while in sleep mode. The source contains comments about how and why.
The source can be compiled with the (free demo-version of the)  CC5X compiler.
Freeware, released 03 December 2006.

Quadrature encoder circuits for rotary encoders version 1.0.4. To be able to use cheap mechanical rotary encoders, some additional electronics is required. A document contains the description of several circuits, in particular 1 equiped with a PICmicros to control 4 rotary encoders. See here the schematics.
The software (hex files for PICmicros) and a PCB layout file are in a separate package.
The circuits are especially designed to connect rotary encoders to FSbus for Flight Simulator.

Example of interrupt driven serial communications with a PICmicro equiped device as DCE.
Function: echo incoming datastream from DTE, featuring
  • Interrupt driven, high speed, full duplex data flow (57600 bps)
  • Use of builtin USART in RS232 mode (8 bits, no parity).
  • With relatively large receive buffer.
  • Using CTS flow control (PC -> PICmicro).
  • PC-side should have set CTS output flow control enabled, PC FiFo transmit load count may be set to 16 (max).
The program is written for a PIC16F628, but can be easily adapted for another PICmicro, also of the PIC18Fxxx family.
The source can be compiled with the (free demo-version of) the CC5X compiler, or for a PIC of the PIC18Fxxx family with the  CC8E compiler. Suggestion for testing your target device: Intellibox Terminal (IBterm).
Freeware, released 02 February 2003.
One Hour Timer

1-Hour Timer for UV-light and Darkroom
This timer is pimarily designed for making Printed Circuit Boards with photo-sensitive layer(s).
The exposure time can be selected from 1 second to 60 minutes. The timer uses a rotary encoder to select the lamp-on-period (forward and backward). The steps vary with the period: the longer the period the larger the number of seconds per step.
The actual switching of the (UV-)lamp is performed by a TRIAC. See here the complete schematics.
A 4-digit 7-segment LED display shows initially the selected exposure time in minutes and seconds. When the start-button has been hit the lamp switches on and the display counts down to zero and indicates the number of minutes and seconds to go. The last used period will become the default for next power-on.
Different PICmicros can be used for this timer and a HEX file is provided for each of these: 16F631, 677, 685, 687, 689, 690. The source is provided too and can be compiled with the (free demo-version of the)  CC5X compiler. In addition some photographs of my timer and a Layout file for Abacom Sprint Layout 4.0 are provided to build your own timer.
Freeware, released 08 December 2007.



TinyBld2: PC support program for the TinyBootloader for PICs for eComStation(OS/2), Linux and Windows, version 0.4.4
TinyBld2 is {eCS} a multi-platform alternative for the original program TinyBldWin of the author of TinyBootloader - Claudiu Chiculita - which is a Windows only program. TinyBld2 has a Command Line Interface (CLI) and can be used in batch scripts and called by other programs. This package contains executables for eComStation, Linux and Windows. Other platforms like Mac and FreeBSD need to compile from the source package.
Tinybld2 supports currently the 16F and 18F series of Microchip PICs It supports also the "Reset-by-RTS" feature for boards which have the RTS line of the serial port connected to MCLR in one way or the other. See the readme file for commandline syntax, options and other details.
New with this release:
  • Mainly improved messages, help screen and readme file.

FREEBSD license; version 0.4.4; released 22 Dec 2013.

Click TinyBld2 0.4.1, TinyBld2 0.4.2, TinyBld2 0.4.3 to download the executables package of a previous version.




Support software for the Wisp648 programmer for eComStation, Linux and Windows, version 2.0.2
XWisp2 is an alternative for XWisp by VOTI. Its purpose is to be able to use the Wisp648 programmer under eComStation, Linux, MacOS, FreeBSD and Windows without Python. This package contains executables for eComStation, Linux and Windows. MacOS and FreeBSD users will have to build an executable from the sources!
XWisp2 provides a commandline interface, very similar to XWisp with Python. It contains a large subset of the XWisp command set, and supports most features of Wisp648 firmware. See the online Users Guide and Command Reference for a more detailed description (the html file is included in the download package).
For information about the Wisp648 programmer see Wouters site.
The Wisp648 should be at firmware version 1.28 or newer.
XWisp2 supports the following 14-bits core PICmicros:
  • 12F609, 12HV609, 12F615, 12HV615, 12F617,
  • 12F629, 12F635, 12F675, 12F683,
  • 16F627, 16F627A, 16F628, 16F628A, 16F630, 16F631, 16F636 (16F639), 16F648A,
  • 16F676, 16F677, 16F684, 16F685, 16F687, 16F688, 16F689, 16F690,
  • 16F716,
  • 16F72, 16F73, 16F74, 16F76, 16F77,
  • 16F722, 16F723, 16F724, 16F726, 16F727,
  • 16F737, 16F747, 16F767, 16F777,
  • 16F785, 16HV785,
  • 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,
and the following 16-bit core PICmicros:
  • 18F242 (18F2439), 18F248, 18F252 (18F2539), 18F258,
  • 18F442 (18F4439), 18F448, 18F452 (18F2539), 18F458,
  • 18F1220, 18F1230, 18F1320, 18F1330,
  • 18F2220, 18F2221, 18F2320, 18F2321, 18F2410, 18F2420, 18F2423, 18F2450, 18F2455, 18F2458, 18F2480, 18F2510, 18F2515, 18F2520, 18F2523, 18F2525, 18F2550, 18F2553, 18F2580, 18F2585, 18F2610, 18F2620, 18F2680, 18F2682, 18F2685,
  • 18F4220, 18F4221, 18F4320, 18F4321, 18F4410, 18F4420, 18F4423, 18F4450, 18F4455, 18F4458, 18F4480, 18F4510, 18F4515, 18F4520, 18F4523, 18F4525, 18F4550, 18F4553, 18F4580, 18F4585, 18F4610, 18F4620, 18F4680, 18F4682, 18F4685,
  • 18F6310, 18F6390, 18F6393, 18F6410, 18F6490, 18F6493, 18F6520, 18F6527, 18F6525, 18F6585, 18F6620, 18F6621, 18F6622, 18F6627, 18F6680, 18F6720, 18F6722,
  • 18F8310, 18F8390, 18F8393, 18F8410, 18F8490, 18F8493, 18F8520, 18F8525, 18F8527, 18F8585, 18F8620, 18F8621, 18F8622, 18F8627, 18F8680, 18F8720, 18F8722
Note: These are the chips of which the properties are provided in the configuration files. Other chips may be added!
New with this release:
  • Only Wisp648 programmer is supported with firmware version 1.28 or newer.
  • Released under FreeBSD license.
  • DTR and RTS handling improved.
  • Added commands QUIET and UNATTENDED.
  • Fixed several PIC configuration specifications.
  • Serial ports higher than COM9 supported for Windows.
  • Added support for environment variable XWISP2 with which the location of the Xwisp2 configuration files may be specified.
  • Several other minor improvements.
{eCS} XWisp2 for eComStation is available as a WarpIn archive containing 2 packages: the executables and runtime files and the sources, makefiles, etc.. It requires WarpIn being installed on your system. See the NetLabs site for the WarpIn package and documentation. These two packages are also available as ZIP-archives. The source package makes it possible for you to build your own variant of Xwisp2.
Released under FreeBSD license, 27 September 2013.

Click xwisp2-1.8.3 + Wisp628 1.10a, xwisp2-1.9.0 + Wisp628 1.10a, xwisp2-1.9.1 + Wisp628 1.11, xwisp2-1.9.2 + Wisp628 1.12, xwisp2-1.9.3 xwisp2-1.9.4 xwisp2-1.9.5 + Wisp648 1.23 xwisp2-1.9.6 + Wisp648 1.27 xwisp2-2.0.0 to download the executables package of a previous version.


Support software for the Zero Pin bootLoader for PIC18Fxxx under eComStation, version 0.4
{eCS} ZPL2 is a clone of ZPL by Wouter van Ooijen. Its purpose is to be able to use Wouters Zero Pin bootLoader for the PIC18Fxxx under eComStation. See also the arguments for XWisp2 above! A DOS version is available too.
ZPL2 has the same commandline interface as For details of ZPL see the site of   Circuit Cellar or maybe also  Wouters site.
New with version 0.4:
  • Improved timing in log file.
eComStation, DOS/DPMI, Freeware, released 4 April 2003.

Microchip, PIC and PICmicro are registered trademarks of Microchip Technology Inc. in the U.S. and other countries.