Um PICs programmieren zu können, benötigt man irgendeine Form von Brenner, abhängig davon welche Ansprüche stellt, hat man nach einer google Recherche eine gute Handvoll Bauvorschläge zur Verfügung.
Wenn man nur gelegentlich einen PIC programmiert und man sich auf die 8-18 poligen Varianten beschränkt, dann reicht ein einfacher Brenner mit serieller Schnittstelle und ohne externe Spannungsversorgung meiner Meinung nach aus. Weil ich mich diesem Abenteuer natürlich nur unter Linux stelle, benötigte ich eine Hardware, die auch von den Linux Brennerprogrammen auch unterstützt wird. Ich habe mich für den RCD Programmer entschieden, weil er eine Modifikation des bekannten JDM-Programmers ist. Ausserdem existiert beim Entwickler Feng3 eine ausführliche Typenübersicht und eine genaue Beschreibung der Hardware und des Aufbaus. Unter deutschen Bastlern ist die Variante der JDM POrogrammer übrigens besser unter dem Begriff Ludipipo bekannt. Ludipipo ist aber IMHO nur für die 18pol. 16F84 und 16F627/8/9 verwendbar, weil ich sowieso eine Platine ätzen wollte, um mein Belichtungsgerät auszuprobieren, fiel die Wahl auf das flexiblere und vor allem sehr gut dokumentierte RCD Projekt. Im erweiterten Teil ist die genauere Beschreibung der Hard- und Software zu finden.
Doch zunächst noch ein paar Worte zum RCD-Programmer. Wie man auf dem gescannten Bild erkennen kann, habe ich im Brenner eine 18pol Präzisionsfassung verwendet. Damit die Pins des Pics nicht vorzeitig abbrechen, habe ich den Pic fest in eine weiter 18pol Präzisionsfassung gesteckt. Die Pins dieser Fassungen passen sehr gut in die runden Aufnahmen der Fassungen und sind sehr stabil, so das auch häufigeres wechseln ohne verbogene Pins möglich ist. Ein Variante wäre die Verwendung einer 20- oder 22pol. Fassung für den Pic, dann hat man immer einen Griff 
Eigentlich baut man so etwas ja mit einer ZIF Fassung (Zero In Force) also einem Nullkraftsockel, leider sind die Dinger für den Gelegenheitsbrenner einfach zu teuer. 18Polige Exemplare sind ausserdem fast überhaupt nicht zu bekommen. Gefunden habe ich sie allerdings dennoch, aber für ca. 13.- € . Nun habe ich vor kurzem bei pollin Fassungen entdeckt, die man sehr gut dafür benutzen kann. Momentan bieten die nämlich die Textool Fassungen in verschiedenen Ausführungen sehr preiswert an. Die 24 pol. schmale Variante kostet nur 2,95 EUR (Best.Nr. : 400 101)
Deshalb habe ich mir gleich ein paar bestellt, die werden ja nicht schlecht. Eventuell bastele ich mir noch einen grösseren Brenner, für den ich dann die schmale 40 Pol. Version verwenden kann.
Software: Ich verwende zum Programmieren pikdev, das ist eine komfortable IDE, die praktisch - zur Zeit zumindestens - keine Wünsche offen lässt
und eine integrierte Brennersoftware hat, die völlig frei in der Harder ist. Als besonders angenehm empfand ich die optionale Generierung von Daten auf einem Pin, dadurch kann man einwandfrei die richtige serielle Schnittstelle identifizieren, ohne auf Experimente und Glück angewiesen zu sein.
Durch pikdev bin ich übrigens auf ein sehr nützliches tool namens pikloops aufmerksam geworden, das durch die IDE aufrufbar ist. Damit kann man sehr einfach genaue Verzögerungsschleifen generieren lassen und braucht nicht selber mit den Takten und Mikrosekunden hantieren. Download u.a. über die Homepage von pikdev.
Die zweite empfehlenswerte Software ist das Commandline Tool picprog. Es steht u.a. als Debian Paket bereit. Aber Achtung! auf der Homepage von picprog ist ebenfalls ein Vorschlag für einen Programmer vorhanden. Denkt nicht, weil der vom Entwickler der Software veröffentlicht wurde, muss das ein ganz tolles Teil sein. Der Entwickler warnt übrigens selbst davor, aber ich konnte ja nicht hören, beim Nachbauen fiel mir erst auf, das er keinen Bestückungsplan dabei hat und das Layout und der Schaltplan nicht ganz identisch sind, also lieber den von Feng3 bauen, der funktioniert und ist auch viel besser dokumentiert.
Beide Utillities können übrigens die eingesteckten Pic identifizieren und werden aktiv weiter entwickelt. Als Assembler habe ich mich jür den defacto Standard gputils, die natürlich ebenso u.a. als Debianpaket verfügbar sind, entscheiden.