
After wanting to re-vamp some work on the Thorian Home Automtion, needed to get my (probably fake) PICkit3 working, but in Linux. since I'd always used it in Windows in the past, it was either going to be easy - or not !
Quick solution, run Windows in a VM.
Ironically it appeared fine in Linux: 04d8:900a Microchip Technology, Inc. PICkit3
but Windows only saw it as an unknown USB device.
The setup:
Windows 7 VM
Microchip PICkit3 Programmer app
MPLAB/IPE drivers
VirtualBox USB 1.1 / 2.0 passthrough
manual driver install
VirtualBox passthrough remained unreliable.
Next step, try in Linux.
I eventually found pk2cmd, which supports PICkit2/PICkit3.
Below is brief instructions on installation. Skip this if you wish as I have a compiled version below.
Repository:
https://github.com/jaka-fi/pk2cmd
Build steps
git clone https://github.com/jaka-fi/pk2cmd.git
cd pk2cmd/pk2cmd
make linux
If needed:
sudo apt install build-essential libusb-1.0-0-dev
make linux
Test PICkit3
I had a 16LF88 connected and ready to try:
sudo ./pk2cmd -PPIC16F88 -I
Expected result:
Device ID = 0760
Revision = 0008
Device Name = PIC16F88
Operation Succeeded
Program a HEX file
From the pk2cmd folder:
Example:
sudo ./pk2cmd -PPIC16F88 -F/Dallas16.HEX -M
As with Windows, its possible to program a device and keep it powered up
sudo ./pk2cmd -PPIC16F88 -A3.0 -F/mnt/stuff/ThorianFM/Dallas16.HEX -M -T -R
Where:
-A3.0 = target voltage
-M = program
-T = leave target powered
-R = release MCLR/reset
Portable GUI wrapper
I created a small Python/Tkinter Gui to make this easier.
The programmer can pretty much run standalone with just these files (including my Gui)
pk2cmd
pk2cmd_gui.py
PK2DeviceFile.dat
PK3OSV023202.hex
PK3BLV011405.hex
run_pic_programmer.sh
Notes
If copied to another machine, the executable bit may be lost:
chmod +x pk2cmd
Python is needed and Tkinter may be needed:
sudo apt install python3-tk
Final result
PICkit3 now works directly under Linux, no Windows VM required. It can detect, program, verify, and power the device, in this case, PIC16LF88.

I used **PK2CMD minus** by jaka-fi to drive the PICkit3 from Linux. Because the project has its own restrictive licence, I have not mirrored the software here. Please download it from the official project page:
https://github.com/jaka-fi/pk2cmd
I have included the gui which I wrote myself here.
It will need jaka-fi's pk2cmd software also.
← Back to Projects