Instalacija PICkit 2 programatora na Debian Linux
Sadržaj
PICkit 2 je stari, ali i dalje vrlo koristan programator za Microchipove PIC mikrokontrolere. Microchip za Linux nudi alat naredbenog retka pk2cmd samo kao izvorni kod, pa ga treba izgraditi ručno. Postupak je provjeren na Debianu 13 (Trixie, gcc 14), a radi i na Debianu 10–12 te na distribucijama izvedenima iz Debiana (Ubuntu, Mint, Raspberry Pi OS).

Foto: MichaelFrey, Wikimedia Commons, licenca CC BY-SA 3.0; zakrenuto za 90°.
Osvježena verzija
Ovo je ažurirana verzija tutorijala koji sam objavio u siječnju 2021. za Debian 10. Korak s dodavanjem i386 arhitekture izbačen je jer više nije potreban: pk2cmd se izgradi kao izvorni 64-bitni program.
Potrebni paketi
Za izgradnju trebaju prevoditelj i razvojne datoteke za libusb 0.1:
sudo apt update
sudo apt install build-essential libusb-dev wget
Preuzimanje izvornog koda
Izvorni kod pk2cmd v1.20 nalazi se na Microchipovim stranicama:
wget https://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1.20LinuxMacSource.tar.gz
tar xzvf pk2cmdv1.20LinuxMacSource.tar.gz
cd pk2cmdv1.20LinuxMacSource
Savjet
Microchip ovaj paket više ne održava. Dobro je spremiti kopiju arhive za slučaj da link jednog dana nestane.
Izgradnja i instalacija
make linux
sudo make install
Tijekom izgradnje pojavit će se niz upozorenja (-Wstringop-truncation, unused variable). Ona su bezopasna i ne utječu na rad programa.
make install kopira program u /usr/local/bin/pk2cmd, a datoteku s popisom podržanih čipova u /usr/share/pk2/PK2DeviceFile.dat.
Postavljanje PATH-a
pk2cmd traži datoteku PK2DeviceFile.dat u direktorijima navedenima u varijabli PATH, pa joj treba dodati /usr/share/pk2:
echo 'export PATH="$PATH:/usr/share/pk2"' >> ~/.bashrc
source ~/.bashrc
Ponovno pokretanje računala nije potrebno. Dovoljno je source ~/.bashrc ili otvoriti novi terminal.
Napomena
Umjesto mijenjanja PATH-a, putanja do datoteke može se zadati i pri svakom pokretanju opcijom -B, npr. pk2cmd -B/usr/share/pk2 -?v.
Pristup USB-u bez roota (preporučeno)
make install postavlja pk2cmd kao setuid root program (chmod u+s), kako bi mogao pristupiti USB-u bez sudo. Čišće rješenje je udev pravilo koje prijavljenom korisniku daje pristup samo PICkitu 2 (USB ID 04d8:0033):
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="0033", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/70-pickit2.rules
sudo udevadm control --reload-rules
sudo chmod u-s /usr/local/bin/pk2cmd
Nakon toga odspoji i ponovno spoji programator.
Provjera
pk2cmd -?v
Bez spojenog programatora ispis izgleda ovako:
Executable Version: 1.20.00
Device File Version: 1.55.00
OS Firmware Version: PICkit 2 not found
Operation Succeeded
Sa spojenim programatorom umjesto “PICkit 2 not found” piše verzija firmwarea, npr. 2.32.00. Je li ga sustav prepoznao, možeš provjeriti i s lsusb | grep 04d8.
Primjeri korištenja
Automatsko prepoznavanje spojenog čipa:
pk2cmd -P
Brisanje, programiranje i provjera HEX datoteke (naziv čipa piše se odmah iza -P, bez razmaka):
pk2cmd -PPIC16F628A -E
pk2cmd -PPIC16F628A -F program.hex -M
pk2cmd -PPIC16F628A -F program.hex -Y
Opcija -T napaja ciljni sklop iz programatora, a -? ispisuje sve opcije.
Podrška za čipove
Datoteka s čipovima (v1.55) je iz 2009. godine, pa noviji PIC mikrokontroleri nisu podržani. Za njih treba noviji programator (PICkit 4/5, MPLAB Snap) i MPLAB IPE.
Uklanjanje
sudo rm /usr/local/bin/pk2cmd
sudo rm -r /usr/share/pk2
sudo rm -f /etc/udev/rules.d/70-pickit2.rules
Na kraju iz ~/.bashrc obriši redak export PATH="$PATH:/usr/share/pk2".