Linux PIC Programmer Software:

See the PP06 Homepage to learn about PIC Programming. This page is only the specifics of the Linux and KDE versions of PP06.

You can buy the boards built and tested Buy It Now!

PP06 Homepage

KDE GUI Front end for programmer

Other Linux Tools

The linux software is still at an early stage. I don't use it regularly. This information is subject to change, and applies at V1.09. I am using SuSe 8.1, 2.4.19, Asus L3 P4M-1700 laptop.

Console Version

The console version is PPLIN. It is built using the free Borland Kylix3 C Builder. All versions use the same sources, platform specific code is in separate files.

I/O Ports & Addresses

I directly write to the printer port at /dev/ports. PPLIN needs to have permissions to be able to do this. You need to know that your ports are at the correct address

  1. If you don't want all users to be able to use the programmer, then create a group "picpusers". Otherwise just "users"
  2. Make PPLIN run suid. eg chmod 4754 pplin
  3. Make its group one the users belong to eg chown root:picpusers pplin or chown root:users pplin
  4. PPLin has the common printer port base addresses hard coded into it. It doesn't get them from the system. eg LP0 is 0x378. Check your port addresses. (The KDE GUI shows this info on the config page). To display the addresses of printer ports in your system try: cat /proc/ioports | grep parport*
  5. If the address is non-standard you will need to use the -lpt=0x??? option. Note that the dos ports lpt1-3 are the linux ports lp0-2. PPLin accepts either
  6. Test it. Without the programmer attached, try pplin --verify. If you get a message that /dev/port permission is denied, you have a permissions problem. If the message says the hardware is not connected, then the port is working OK

As we write straight to /dev/port, there is no protection or interlocking. PPLIN will write straight through the printer drivers, and vice versa. Its up to you to prevent clashes over the port. This is important for a multi users system.

Currently (v1.09) the linux version will not read DOS (CRLF) files. If you get a warning message like "Not a hex code", then you need to convert the file to unix line terminators using DOS2UNIX. try dos2unix -n infile.hex outfile.hex .

back to contents Home


KPicProg is a simple GUI front end. I recommend that you use it to get going, and get an idea of pplin's capabilities. However you will save your self a whole lot of time by making shell scripts to program specific devices/projects directly

Screen Shot of KPicProg


Launch it from the console. All output will be displayed on the console, so you need to be able to see it!

If you want to launch it from an icon or short cut, then you want to give it a terminal to show its output on. Try: konsole -T Pic Programmer -e kpicprog

It uses the Kaptain console scripting engine. You need the kaptain package (V0.6 on) and it will use konqueror to display html help pages.

To develp the kpicprog script use the -V --test options to just display the command lines rather than executeing them. eg kpicprog -V --test

You will probably want to change the script to set the default values you want to use, or make custom versions of it for specific projects.

In particular watch the Block CP option. This masks out the CP bits. The intention is to prevent them being set when using the windowed Eprom (-JW) parts. Because these bits are buried (non-eraseable), inadvertantly setting the CP bit effectively destroys the part. If you aren't going to use -JW parts, then you can remove this option from the script

full size screen shot of kpicprog

back to contents Home

Linux PIC Tools

C Compiler: B.Lo.C... coming soon

Linux Assembler: GPASM is several times faster than Microchips excrably slow MPASM. Very compatible with MPASM, except for a couple of silent bugs.

Other Linux PIC Tools GNUPIC

back to contents Home

Contact Us

back to contents Home