Nejběžnějším řešením je program zkompilovat do formátu .hex a tento soubor vypálit do paměti procesoru programátorem PICkit. K tomu určený programovací modul je PICPROGUSB02A. Který je kompatibilní s originálním programátorem Microchip Pickit2.
Procesorový modul se propojuje s programátorem přes programovací kablík s 5ti vodiči. Je vhodné jej vylepšit protažením a zkroucením drátu skrz prázdnou dutinku (Konektor se jednak lépe vyndavá a zároveň to i prodlužuje životnost vodičů).
Instalace vcetne vyvojoveho prostredí je popsána zde
http://hackaday.com/2010/11/03/how-to-program-pics-using-linux/
Výhodou kompatibility modulu PICPROGUSB02A s programátorem PicKit2 je, že k němu jsou dostupné i drivery pro linux. Je jednak k dispozici přeložený balík z repozitáře pro debian like systémy (jako třeba Ubuntu).
V tomto repositáři ale není balík pro 64bit systémy. Je proto vhodnější si jej samostatně přeložit. Tento postup je ověřen v Ubuntu 13.04
Naistalujeme potřebné nástroje
sudo apt-get install git gcc g++ make libusb-dev
stáhneme a přeložíme zdrojové kódy pk2cmd
git clone https://github.com/jda/pk2cmd.git cd pk2cmd make linux
Pokud vzniknou nějaké chyby, tak je to pravděpodobně způsobeno chybějícími balíky v systému. Jinak můžeme binární soubory naistalovat do systému.
sudo make install
V případě, že máme PICPROGUSB02A připojený k počítači a procesoru, můžeme vyzkoušet správnou komunikaci.
$ pk2cmd -P Auto-Detect: Found part PIC16F887. Operation Succeeded
čtení programu z paměti procesoru provedeme přikazem
pk2cmd -PPIC16Fxx -GF/home/my_user/my_program.hex
Zápis
pk2cmd -PPIC16Fxxx -M -Y -W -F./main.hex
Zápis a spuštění (uvolnění MCLR) bez ověření zápisu
pk2cmd -PPIC16Fxxx -R -M -W -F./main.hex
Ověření
pk2cmd -PPIC16Fxxx -Y -Fmy_program.hex
Napájet zařízení lze i z programátoru pomocí
pk2cmd -PPIC16Fxxx -A3.3 -T