One Hacker’s fix for the ebay K150 PIC Programmer
10/02/2017
You may have seen these dirt cheap K150 programmers for PIC microcontrollers for sale on ebay.
These are modified copies of the K150 programmers by Peter Crowcroft. http://www.kitsrus.com.
Quite a few years ago I purchased one of these and a few PIC chips to learn how to program and use that line of microcontrollers.
I started out programming Atmel AVR chips because at that time, all you needed to build a programmer was a cable that was wired to your PC’s printer port. Printer ports and Serial (COM) ports disappeared from most PCs long ago.
For quite some time things were fine. Then Windows XP went away…..
The problem you see is that on these clones, the FTDI USB-Serial converter chip was replaced by a cheaper PL2303 chip by Prolific Inc. I seems the Prolific wasn’t happy about unauthorized copies of it’s chips being sold so they added code to their drivers to detect the illegal devices causing the driver to fail to load.
With each new version of Windows it became more and more difficult to find a driver that would run correctly.
Then Windows 10 came along and it was nearly impossible.
One day I was scanning the schematic for the Peter Crowcroft version of the programmer (I was unable to find a schematic for the clone versions) and I noticed that only 3 signals came from the FTDI/Prolific chip.
RTD, TXD and DTR and all I needed to do was to supply a TTL level serial signal to the PIC 16F628A chip that is the heart of the K150 and I could bypass the troublesome Prolific PL2303 altogether.
Although I could have cut a few runs on the board and attached some leads I decided to build a daughter board that would plug into the socket for the PIC 16F628A.
Here’s some details of what I built.
The modification is built around another cheap ebay purchase.
These USB to Serial adapters use the CP2102 converter chip and I’ve never had a problem with drivers for them.
You can pick these up for under $2 (NOTE: this is it 6 pin version providing the DTR signal)
Here’s the little board I built with a socket to hold the PIC 16F628A and a couple of other additional parts to
make it a little more convenient.
Here’s the programmer with the PIC 16F628A removed. I’ve added some electrical tape to prevent shorts.
My programmer happened to come with the PIC 16F628A in a socket. You may have to un-solder yours.
Here’s the finished hack with the board installed and the converter plugged in.
The extra connector at the end supplied access to the serial RX and TX pins so I can use them to also talk to my target.
The other pins provide a few extra +5V and GND connections for the target device. (Usually on a breadboard)
The little jumper (PGM - RUN), switches the RXD signal between the programmer and the target connector.
11/2025 UPDATE:
I was recently contacted by someone interested in this modification and wanted more details.
I was happy to supply more detailed photos and an updated schematic.
If you take note of the original posting date of this project, you'll notice that it's been a LONG time since
I worked with this programmer or PIC microprocessors themselves.
But this person's queries renewed my interest a bit.
The first thing I discovered was that the (older) IDE I used would now throw an error. It took me some time
to figure out that it was installed when my PC was running 32bit windows and it's now running 64bit windows.
So I downloaded the latest version of MPLAB X and started to convert my projects and code to it.
The next thing I discovered was some unusual behavior when testing them. It seemed when I inputted specific
characters, the target would reset for no apparent reason. At first I (of course) suspected my code but
eventually I ruled that out. The problem was a shortcut I took in the design of the daughterboard where
I decided it was OK to leave the TXD signal lines connected to both the programmer chip and the target chip
at the same time (RXD needed to be switched via a jumper). Apparently, when specific characters were presented to the programmer, it caused it to trigger a reset of the target device as if to prepare it for programming.
So now, I have a couple of switches replacing the single jumper that switch BOTH RXD & TXD signals.
Another discovery makes this entire project mostly unnecessary.
At one point I decided to to check online to see if the programmer's software had been updated.
It has not. But I came across a video that explained how to eliminate the problem with the driver for the
Prolific USP-Serial converter. It seems that an older Vista version of the driver works correctly on
Windows 10 without error. (I tested this on my Windows 11 laptop and it works there too).
So now the need to bypass that chip is unnecessary. I will, however, keep using the modified version
because it allows me to share a single USB serial port between the programmer and the target device.
I've updated the schematic and added a new photo of the updated board.
Here's a link to the video I came across which has a download link for the Vista driver that works.
Here’s a modified version of the original schematic detailing the connections.
* my modifications are shown inside the red dotted lines.
I was unable to get the DTR signal to properly reset the programmer via the old software but the reset button works fine. The software may complain about not resetting but you can just ignore the error and it will work fine.