usb_pickit 1.5 for Mac OS X and Linux

for use with the:

PICkit™ 1 Flash Starter Kit

Here is the PICkit™ 1 Flash Starter Kit from Microchip. If you find the PIC processors useful, and you want to experiment with them, but do so at a low cost, you might find this $35 kit to be just the ticket.

But, if you prefer using Mac OS X or Linux, your options with the PICkit have been somewhat limited.

This site contains my contributions to the usb_pickit software originally written by Orion Sky Lawlor and later modified by Mark Rages.

(Hover over any link on this page for more info.)

As with many tools used in the Electrical Engineering world, the PICkit 1 was primarily developed for use on Windows machines. If you are like me, you find that having to use Windows for Electrical Engineering or for anything can be very frustrating. I grew up managing networks of UNIX machines and frankly, UNIX is a lot more stable and has a lot more behind-the-scenes power, the kind of thing that is very appealing to an Engineer and Programmer. However, faced with tight budgets, marketing timelines, etc. most companies only develop their solutions for one platform, Windows. That is changing now that Macs are gaining more and more market share, and especially with the new MacTel Macs, but the change is still at a glacial pace.

Anyway, I realized that if I was going to get a device programmer working for what I wanted to do with the Mac, I was probably going to have to do some of the work myself. A Google search produced this fine application called usb_pickit by Orion Sky Lawlor. And fortunately for Orion and for all of us, Microchip included the source code for their application, the code for the USB 16C745 PIC firmware, schematics and a lot of other goodies with this PICkit. It is as much of an Application Note as it is a device programmer. There are a lot of great tips and ideas in this box, so it is an incredible value for $35. Just recently, Microchip released the PICkit 2 programmer. While that programmer is also inexpensive, it is not as cheap as the PICkit 1, and there may be many that find that the PICkit 1 addresses their needs, especially with the code I have added.

So, here is usb_pickit version 1.5. I have added many features and support for all of the devices that are programmable with the 1.70 Windows version of the software. This is still a command line version of the programmer based on Orion's original work. This will have to suffice until I have time to write a Cocoa version of the programmer, which I might do for the PICkit 2 instead.

The feature list:

Lots of device support. In addition to the devices that Mark Rages added, I have added several more. usb_pickit now supports the following chips:

Programming Adapters:

The PICkit 1 works great with 8, 14 and 20 pin devices. One simply needs to Top Justify the part in the Socket. Even the 20 pin devices have their programming pins near the top, so although several of the pins hang out over the bottom of the 14 pin socket, they still program just fine. Microchip appears to have standardized configurations as much as possible on newer devices. For older 18 pin devices, or much larger 28 pin or 40 pin devices, you will need to buy or make an adapter. The adapters are quite simple to make. Here are some photos of the 18 Pin Adapter 18 Pin Adapter (Back) I made with a 14 Pin DIP IDC header, a little bit of ribbon cable, a LIF socket from a surplus store, some hot glue and a piece of plastic. If you build your own, keep the wires short and if you are interested in programming the 627A, 628A or 648A, note that these devices have a LVP Low Voltage Programming mode and an extra /PGM signal on pin 10. You should tie this pin to the VSS pin in your adapter, or you will get erratic results. The PICkit 1 uses HVP, High Voltage Programming, so there is no need for this mode, and it is best disabled by tying it low. Note: Always check the pinouts in the datasheet if you are unsure!

Tested Devices:

I've personally tested the usb_pickit 1.5 software with all of the following devices, and I cross-checked the same devices using the Windows Classic 1.70 version of the software. Everything worked well.

If you'd like me to test other devices, I would be glad to do so if you want to send me a device. Email me if you are interested.


Here is the software. In the tar file, you get the source code, the README.txt file which contains the ChangeLog and other notes for installation, a description of the firmware PROTOCOL.txt, Orion Sky Lawlor's License.txt, (which I will adopt for my portions of the code) and the precompiled binaries for Mac OS X and Linux. I compiled the Linux version using Trustix, but it should work under other Linux versions as well. Read the notes on compilation, and in particular USB interrupt support. If you are using a Mac, you need to turn this off to get it to compile correctly. Also if you are interested in making modifications, for the Mac, you should go here to get a Mac OS X friendly version of the libusb which you will need to compile the code. Or go here for the SourceForge version of libusb for any of the Linux distributions.

usb_pickit 1.5 JEB tar file <-- Click the link to download the software.


Orion Sky Lawlor's usb_pickit page

Mark Rages' usb_pickit page

Microchip's PICkit™ 1 Flash Starter Kit page

Microchip App Note TB079 for Programming Adapter pinouts

HSC Supply, a really great surplus store in Silicon Valley

HI-TECH Software, PICC-Lite compiler, free C compiler for PICs

Jeff Post's page, PK2 for the PICkit 2 programmer

Eric Brunstad's Mac OS X GUI additions to usb_pickit

Andrew Rahn's modifications to usb_pickit

Xiaofan Chen's Win 32 to patch for usb_pickit 1.5


My name is Jeff Boly. I wrote the additions to the 1.5 version of the above software. I don't guarantee that the software is bug free, but I will be happy to fix the bugs if you point any out to me. I don't have much time resource to help any one out with general PIC questions, but you can email me if you have usb_pickit questions. I hope this software is helpful. Email me at jboly **at** teammojo ***dot*** org

Last modified: 01/17/2006