
If you're interested in DIYing a JDM PIC programmer, you might want to check out this article.
The design of this programmer is really clever. Before USB became widespread, it used a simple circuit with very few components to make the most out of the then-popular serial port. Not only does it bypass the normal serial port definitions for input and output data, but it can also use the data stream to provide working power to the MCU and perform high-voltage programming. Plus, the simple circuit is easy to make, and all the required components are common and easy to get. If that sounds interesting, keep reading.
If you plan to take it apart, the two hardest components to find are probably the two Zener diodes.
The circuit diagram is shown below. You'll need a total of 2 general-purpose transistors, 4 general-purpose diodes, 2 resistors, 2 electrolytic capacitors, and 2 voltage regulator diodes. For the transistors, any NPN type will work—9013, 9014, 8050—all are fine. The diodes are even simpler; if you don't have 1N4148, you can use 1N4007. Resistors and capacitors are easy to source, and for the voltage regulator diodes, one is 5.1V and the other is 8.2V, which are not hard to find.

Next, you can start preparing the materials, as shown in the image below.

The metal serial port plug has a fairly large internal space, so if it can fit all the components, you can integrate the entire circuit inside the plug. With such a simple circuit, you don't need a circuit board; you can just wire it up directly by hand.

You can wrap it like this:


Fit it into the case—the size is just right.

Continue assembling.


Once the circuit is set up, you can test it.

Solder the lead wires. Because this is hand-wired, you need to be careful to avoid shorts between components. Make full use of the component housings to isolate contacts and make sure nothing touches that shouldn't.

Then, embed it into the serial port casing. Line the inside of the metal shell with polyimide tape for insulation.

Cover the other half and tighten the screws. The completed programmer has 5 wires connecting to the MCU: Vcc (working power), Vpp (programming voltage), clock, data, and GND. If the target board already has its own power supply, you can skip connecting Vcc and just leave 4 wires.

You can now test the programmer. Note that because this programmer draws power from the serial port, you must use a native serial port on your computer, preferably from a desktop. USB-to-232 adapters won't work, and some laptop serial ports have too low an output voltage, which also won't work. The chip being programmed is a PIC16F628A, the programming software is IC-PROG 1.06C, and the system is Windows 10. The green battery pack provides working power to the target board, and it works very well.

The whole programming and verification process takes about 30 seconds. Once completed, this solves the problem of not having a PIC programmer.

Finally, you should cover the output plug wires with heat shrink tubing. Then it's done.

Completed.