1. PIC PROGRAMMER

I hope that my article will help some radio amateurs cross the threshold from digital technology to microcontrollers. There are a lot of programmers on the Internet and amateur radio magazines: from the simplest to the very twisted ones. Mine is not very complex, but reliable.

The first version of the programmer is designed for programming 18 and 28 "pin" PIC controllers. The programmer is based on a diagram from Radio magazine No. 10 for 2007. But the selection of the C7 capacitor, experiments with different versions of ICprog, PonyProg, WinPic and read-write speeds did not give the desired result: successful programming was obtained every other time. And this continued until the + 5V power supply of the programmable microcircuit was made separately, and not after the 12-volt stabilizer. It turned out such a scheme.

Fearing failures, I drew the signet so that the board was inserted directly into the Com-port, which is not very easy because of all kinds of "laces" and a small distance to the case. It turned out to be an irregularly shaped signet, but it is inserted into the COM port normally and programs without errors.

Over time, I made an extension cord about 1 meter long. Now the programmer lies next to the monitor and is connected to the COM port. Works fine: PIC16F84A, PIC16F628A, PIC16F873A microcontrollers have been programmed many times.

Please note: the Max chip and the LEDs are installed on the side of the printed conductors. Sockets - ZIF-28, one of them is used for 18-pin PIC. The panels are labeled with the first legs and the numbers "18" and "28". A 220 15 volt, 4 watt transformer is installed in the adapter plug housing. You need to plug into the outlet after installing the microcontroller in the socket. NPN transistors low-power high-frequency (300 MHz) in the to-92 package.

I temporarily did not install the XP connector, and then it turned out that it was not particularly needed. I had to somehow program the soldered MK, so I inserted the wires directly into the ZIF and fixed it. The reprogramming was successful.

I work with ICprog and WinPic-800 programs.

In IC-prog 1.05D following settings programmer:

  • Programmer – JDM Programmer
  • Port -Com1
  • Direct access to ports.
  • Invert: input, output and clock (tick).

In WinPic-800 –v.3.64f, everything is identical, but you still need to set the “bird” to use MCLR.

On the Internet, you can freely and free of charge download these programs. But to make life easier, I will try to attach everything necessary. I just remembered: how many “useless things” I myself downloaded from the Internet, and how much time I spent dismantling all this.

  • PCB programmer
  • WinPic-800 program ( )
  • IC-Prog() program
  • Article on IC-Prog.

2. PROGRAMMER-2 FOR PIC CONTROLLERS

Over time, it became necessary to program 14 and 40 "pin" peaks. I decided to make a programmer for the entire average family of PICs. The scheme is the same, only two panels were added. All this is housed in a case from a former multimeter.

On February 13, 2014, a correction was made to the printed circuit board: from the 5th pin of the RS232 connector, the track goes to the minus power supply (and on the previous one, to the 6th pin of the MAX microcircuit). New signet in "programer2-2".

You can save one KREN-ku. Those. connect the entire circuit from one 5-volt stabilizer. Do not install VR3 and C9, but put a jumper (indicated by a dotted line in the diagram). But I have not drunk Krenka yet. Repeatedly programmed PIC16F676, 628A, 84A and 873A. But haven't tried 877 yet.

Some capacitors are installed on the side of the printed conductors. The rolls are located in a horizontal position. In order not to lay conductors, I installed C7 - 2pcs and R12 - 3pcs.

Very important: the housing of the RS232 connector must be connected to the minus power supply.

The power supply (15 V) and programs are the same as in the first version.

List of radio elements

Designation Type of Denomination Quantity NoteScoreMy notepad
Scheme 1
DD1 RS-232 Interface IC

MAX232E

1 MAX232CPE To notepad
VT1-VT4 bipolar transistor

2N3904

4 TO-92 To notepad
VDS1 Diode bridge

DB157

1 To notepad
VD1 rectifier diode

1N4148

1 To notepad
VR1, VR3 Linear Regulator

L7805AB

1 To notepad
VR2 Linear Regulator

KA78R12C

1 To notepad
C1 470uF 35V1 To notepad
C2, C3, C5, C6 electrolytic capacitor10uF 50V4 To notepad
C4, C8 electrolytic capacitor470uF 16V2 To notepad
C7 electrolytic capacitor1uF 25V1 To notepad
C11 Capacitor0.1 mF1 To notepad
R1, R7 Resistor

10 kOhm

2 To notepad
R2 Resistor

470 ohm

1 To notepad
R3, R5, R11 Resistor

4.7 kOhm

3 To notepad
R4, R10 Resistor

2 kOhm

2 To notepad
R6, R8, R9 Resistor

1 kOhm

3 To notepad
R12 Resistor

240 ohm

1 To notepad
HL1 Light-emitting diode 1 Red To notepad
HL2 Light-emitting diode 1 Green To notepad
Scheme 2
DD1 RS-232 Interface IC

MAX232E

1 MAX232CPE To notepad
VT1-VT4 bipolar transistor

2N3904

4 TO-92 To notepad
VDS1 Diode bridge

DB157

1 To notepad
VD1 rectifier diode

1N4148

1 To notepad
VR1, VR3 Linear Regulator

L7805AB

2 To notepad
VR2 Linear Regulator

KA78R12C

1 To notepad
C1, C2, C4, C5 Capacitor10uF 50V4 To notepad
C3 electrolytic capacitor470uF 35V1 To notepad
C6, C9 electrolytic capacitor470uF 16V2 To notepad
C7.1-C7.3 Capacitor0.1uF3

Once I decided to assemble a simple LC meter on pic16f628a and of course it had to be flashed with something. I used to have a computer with a physical com port, but now I only have usb and a pci-lpt-2com board at my disposal. To begin with, I assembled a simple JDM programmer, but as it turned out, it did not want to work with either the pci-lpt-com board or the usb-com adapter (low voltage of RS-232 signals). Then I rushed to look for usb pic programmers, but there, as it turned out, everything was limited to using expensive pic18f2550 / 4550, which I naturally didn’t have, and it’s a pity to use such expensive MKs if I very rarely do something at peaks (I prefer Avr- s, it’s not a problem to flash them, they are much cheaper, and it seems to me that it’s easier to write programs on them). After digging for a long time on the Internet in one of the many articles about the EXTRA-PIC programmer and its various options, one of the authors wrote that extrapic works with any com ports and even a usb-com adapter.

The scheme of this programmer uses a max232 logic level converter.

I thought if using usb adapter, then it would be very stupid to do two times conversion of usb levels to usart TTL, TTL to RS232, RS232 back to TTL, if you can just take the TTL signals of the RS232 port from the usb-usart converter chip.

And so he did. I took the CH340G chip (which has all 8 com-port signals) and connected it instead of max232. And that's what happened.

In my circuit there is a jumper jp1, which is not in the extra peak, I put it because I did not know how the TX output would behave at the TTL level, so I made it possible to invert it on the remaining free NAND element and did not lose, as it turned out, directly the TX pin is a logical one, and therefore there is 12 volts at the VPP pin when turned on, and nothing will happen during programming (although you can invert TX programmatically).

After assembling the board, it's time for testing. And then came the main disappointment. The programmer was determined immediately (with the ic-prog program) and earned, but very slowly! Basically, it's to be expected. Then in the com port settings I set top speed(128 kilobauds) began testing all found programs for JDM. As a result, PicPgm turned out to be the fastest. My pic16f628a was fully flashed (hex, eeprom and config) plus verification somewhere around 4-6 minutes (moreover, reading is slower than writing). IcProg also works, but slower. There were no programming errors. I also tried to flash eeprom 24c08, the result is the same - everything is sewing, but very slowly.

Conclusions: the programmer is quite simple, it does not have expensive parts (CH340 - $0.3-0.5, k1533la3 can be found among radio junk), it works on any computer, laptop (and you can even use windows 8/10 tablets). Cons: It's very slow. He also requires external power for the VPP signal. As a result, as it seemed to me, for infrequent flashing of peaks, this is an easy to repeat and inexpensive option for those who do not have an ancient computer with the necessary ports at hand.

Here is a photo of the finished device:

As the song says, "I blinded him from what was." The set of parts is the most diverse: both smd and DIP.

For those who dare to repeat the scheme, almost any one (ft232, pl2303, cp2101, etc.) is suitable as a usb-uart converter, instead of k1533la3, k555 is suitable, I think even k155 series or foreign analogue 74als00 will probably even work with logical NOT elements like k1533ln1. I am enclosing my printed circuit board, but the wiring there for the elements that were available, everyone can redraw for themselves.

List of radio elements

Designation Type of Denomination Quantity NoteScoreMy notepad
IC1 ChipCH340G1 To notepad
IC2 ChipK1533LA31 To notepad
VR1 Linear Regulator

LM7812

1 To notepad
VR2 Linear Regulator

LM7805

1 To notepad
VT1 bipolar transistor

KT502E

1 To notepad
VT2 bipolar transistor

KT3102E

1 To notepad
VD1-VD3 rectifier diode

1N4148

2 To notepad
C1, C2, C5-C7 Capacitor100 nF5 To notepad
C3, C4 Capacitor22 pF2 To notepad
HL1-HL4 Light-emitting diodeAny4 To notepad
R1, R3, R4 Resistor

1 kOhm

3

So, it's time to study microcontrollers, and then program them, and I also wanted to assemble devices on them, the circuits of which are now on the Internet, well, just the sea. Well, we found a circuit, bought a controller, downloaded the firmware .... and what to flash with what ??? And here the question arises for a radio amateur who is starting to master microcontrollers - the choice of a programmer! I would like to find the best option, in terms of versatility - simplicity of the circuit - reliability. "Branded" programmers and their analogues were immediately excluded due to a rather complex circuit that includes the same microcontrollers that need to be programmed. That is, it turns out a "vicious circle": in order to make a programmer, a programmer is needed. So the search and experiments began! In the beginning, the choice fell on the PIC JDM. This programmer works from the com port and is powered from there. Has been tried this option, confidently programmed 4 out of 10 controllers, with a separate power supply, the situation improved, but not by much, on some computers he refused to do anything at all, and it does not provide protection from the "fool". Next, the Pony-Prog programmer was studied. In principle, almost the same as JDM. The Pony-prog programmer is very a simple circuit, powered by a computer com port, in connection with which, on forums, on the Internet, very often there are questions about failures when programming one or another microcontroller. As a result, the choice was made on the "Extra-PIC" model. I looked at the diagram - very simple, competently! At the input is a MAX 232 that converts RS-232 serial port signals into signals suitable for use in digital circuits with TTL or CMOS levels, does not overload the computer COM port by current, as it uses the RS232 operating standard, does not pose a danger to the COM port. Here is the first plus!
Works with any COM-ports, both standard (±12v; ±10v) and non-standard COM-ports of some models of modern laptops with low voltage signal lines, up to ±5v - another plus! Supported by common programs IC-PROG, PonyProg, WinPic 800 (WinPic800) and others - the third plus!
And it's all powered by its own power source!
It was decided - we must collect! So in the magazine Radio 2007 No. 8, a modified version of this programmer was found. It allowed programming microcontrollers in two modes.
There are two ways to put PICmicro microcontrollers into programming mode:
1. With the supply voltage Vcc turned on, raise the voltage Vpp (on the -MCLR pin) from zero to 12V
2. With Vcc off, raise Vpp from zero to 12V, then turn on Vcc
The first mode is mainly for devices of early development, it imposes restrictions on the configuration of the -MCLR pin, which in this case can only serve as an input for the initial setup signal, and in many microcontrollers it is possible to turn this pin into a regular line of one of the ports. This is another plus of this programmer. Its diagram is shown below:

Larger
Everything was assembled on a breadboard and tested. Everything works fine and stable, no glitches were noticed!
A signet for this programmer was drawn.
depositfiles.com/files/mk49uejin
everything was assembled in an open case, the photo of which is below.




The connecting cable was made independently from a segment of an eight-core cable and standard Komovsky connectors, no zero-modem connectors will work here, I warn you right away! The assembly of the cable should be taken carefully, immediately get rid of the headache in the future. The length of the cable should be no more than one and a half meters.
Cable photo


So, the programmer is assembled, the cable too, it's time to check all this economy for operability, search for glitches and errors.
First of all, install the IC-prog program, which can be downloaded from the developer's website www.ic-prog.com. Unpack the program into a separate directory. The resulting directory should contain three files:
icprog.exe - programmer shell file.
icprog.sys - driver required for operation under Windows NT, 2000, XP. This file must always be in the program directory.
icprog.chm - Help file.
Installed, now it would be necessary to configure it.
For this:
1.(Only for Windows XP): Right click click on the icprog.exe file. Properties >> Compatibility tab >> Check the box next to "Run this program in compatibility mode for:" >> select "Windows 2000".
2.Run the icprog.exe file. Select "Settings" >> "Options" >> "Language" tab >> set the language to "Russian" and click "Ok".
Agree with the statement "You need to restart IC-Prog now" (click "Ok"). The programmer shell will restart.
Settings" >> "Programmer

1.Check the settings, select the COM port you are using, click "Ok".
2.Next, “Settings” >> “Options” >> select the “General” tab >> check the box for “On. NT/2000/XP driver" >> Click "Ok" >> if the driver has not been installed on your system before, in the appeared window "Confirm" click "Ok". The driver will install and the programmer shell will restart.
Note:
For very fast computers it may be necessary to increase the I/O Latency setting. Increasing this parameter increases the reliability of programming, however, the time spent on programming the microcircuit also increases.
3. "Settings" >> "Options" >> select the "I2C" tab >> check the boxes: "Enable MCLR as VCC" and "Enable block recording". Click "Ok".
4. "Settings" >> "Options" >> select the tab "Programming" >> uncheck the item: "Check after programming" and check the box "Check during programming". Click OK.
Here it is set up!
Now we would like to test the programmer in place with IC-prog. And here everything is simple:
Next, in the IC-PROG program, in the menu, run: Settings >> Programmer Test

Before executing each item of the testing methodology, do not forget to set all the "fields" to their original position (all the "ticks" are unchecked), as shown in the figure above.
1.Set the "tick" in the field "On. Data Out”, at the same time, a “tick” should appear in the “Data Input” field, and a log level should be set on the contact (DATA) of the X2 connector. "1" (at least +3.0 volts). Now, close the contact (DATA) and the contact (GND) of the X2 connector between each other, while the mark in the “Data Input” field should disappear while the contacts are closed.
2.When setting the "tick" in the field "On. Clocking ”, on the contact (CLOCK) of the X2 connector, the log level must be set. "one". (not less than +3.0 volts).
3.When setting the "tick" in the field "On. Reset (MCLR) ”, on the contact (VPP) of the X3 connector, the level should be set to +13.0 ... +14.0 volts, and the D4 LED (usually red) should light up. If the mode switch is set to position 1, the HL3 LED will light up
If during testing, any signal does not pass, you should carefully check the entire path of this signal, including the cable connecting to the computer's COM port.
Testing the data channel of the EXTRAPIC programmer:
1. 13 output of the DA1 chip: voltage from -5 to -12 volts. When setting the "tick": from +5 to +12 volts.
2. 12 output of the Da1 chip: voltage +5 volts. When checking the box: 0 volts.
3. 6 output chip DD1: voltage 0 volts. When setting the "tick": +5 volts.
3. 1 and 2 output chip DD1: voltage 0 volts. When setting the "tick": +5 volts.
4. 3 output chip DD1: voltage +5 volts. When checking the box: 0 volts.
5. 14 output of the DA1 chip: voltage from -5 to -12 volts. When setting the "tick": from +5 to +12 volts.
If all testing was successful, then the programmer is ready for operation.
To connect the microcontroller to the programmer, you can use suitable sockets or make an adapter based on a ZIF socket (with zero pressing force), for example, as here radiokot.ru/circuit/digital/pcmod/18/.
Now a few words about ICSP - In-Circuit Programming
PIC controllers.
When using ICSP on the device board, it is necessary to provide for the possibility of connecting a programmer. When programming using ICSP, 5 signal lines must be connected to the programmer:
1. GND (VSS) - common wire.
2. VDD (VCC) - plus supply voltage
3. MCLR" (VPP) - microcontroller reset input / programming voltage input
4. RB7 (DATA) - bidirectional data bus in programming mode
5. RB6 (CLOCK) Clock input in programming mode
The remaining pins of the microcontroller are not used in the in-circuit programming mode.
An option for connecting ICSP to the PIC16F84 microcontroller in a DIP18 package:

1. Line MCLR" is decoupled from the device circuit by jumper J2, which opens in the in-circuit programming (ICSP) mode, transferring the MCLR output to the exclusive control of the programmer.
2. The VDD line in ICSP programming mode is disconnected from the device circuit by jumper J1. This is necessary to avoid current consumption from the VDD line by the device circuit.
3. Line RB7 (bidirectional data bus in programming mode) is isolated by current from the device circuit with resistor R1 with a nominal value of at least 1 kOhm. In this regard, the maximum inflowing / draining current provided by this line will be limited by resistor R1. If it is necessary to provide maximum current, the resistor R1 must be replaced (as in the case of VDD) with a jumper.
4. Line RB6 (PIC synchronization input in programming mode), as well as RB7, is isolated in current from the device circuit by resistor R2, with a nominal value of at least 1 kOhm. Therefore, the maximum sinking/sinking current provided by this line will be limited by resistor R2. If it is necessary to provide maximum current, the resistor R2 must be replaced (as in the case of VDD) with a jumper.
Location of ICSP pins for PIC controllers:


This diagram is for reference only, it is better to clarify the programming conclusions from the datasheet on the microcontroller.
Now consider the firmware of the microcontroller in the IC-prog program. We will consider the construction example from here rgb73.mylivepage.ru/wiki/1952/579
Here is the device diagram


here is the firmware
Flashing the PIC12F629 controller. This microcontroller uses the osccal constant for its work - it is a hexadecimal calibration value of the internal oscillator of the MK, with which the MK reports the time when executing its programs, which is recorded in the last peak data cell. We connect this microcontroller to the programmer.
The screenshot below shows the sequence of actions in the IC-prog program in red numbers.


1. Select the type of microcontroller
2. Press the "Read chip" button
In the Code window, the very last cell will be our constant for this controller. Each controller has its own constant ! Do not erase it, write it down on a piece of paper and stick it on the chip!
We go further


3. Press the "Open file ..." button, select our firmware. In the window program code firmware code will appear.
4. We go down to the end of the code, right-click on the last cell and select "edit area" in the menu, enter the value of the constant that you wrote down in the "Hexadecimal" field, click "OK".
5. Click "program the chip".
The programming process will start, if everything went well, the program will display a corresponding notification.
We take out the chip from the programmer and insert it into the assembled layout. We turn on the power. We press the start button. Hooray works! Here is a video of the flasher in action
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
Got it sorted out. But what if we have a file source code in asm assembler, but we need a hex firmware file? A compiler is needed here. and it is - this is Mplab, in this program you can both write firmware and compile. Here is the compiler window


Install MPlab
We find the MPASMWIN.exe program in the installed Mplab, usually located in the folder - Microchip - MPASM Suite - MPASMWIN.exe
Let's launch it. In the (4) Browse window we find our (1) .asm source code, in the (5) Processor window we select our microcontroller, click Assemble and your firmware will appear in the same folder where you specified the source code. HEX That's it!
I hope this article will help beginners in mastering PIC controllers! Good luck!

It just so happened that I started my acquaintance with microcontrollers with AVR. PIC microcontrollers for the time being, for the time being - bypassed. But, nevertheless, they also have unique, interesting to repeat, designs! But these microcontrollers also need to be flashed. I am writing this article mainly for myself. In order not to forget the technology, how to flash a PIC microcontroller without problems and senseless loss of time.

How to Program PIC Microcontrollers or Simple JDM Programmer

For the first circuit - I tried for a long time and hard to make a PIC programmer according to the circuits found on the Internet - nothing happened. It's a shame, but I had to turn to a friend to flash the MK. But this is not the point - to constantly run around acquaintances! The same friend also advised a simple scheme that works from the COM port. But even when I put it together, it still didn't work. After all, it’s not enough to assemble a programmer - you also need to set up a program for it, which we will flash. And this is exactly what I didn't get. A whole cloud of instructions on the Internet, and few of them helped me ...

Then, I managed to flash one microcontroller. But since I was flashing it under conditions of a severe lack of time, I didn’t think to save at least a link to the instruction. And after all, I did not find it later. Therefore, I repeat - I am writing an article in order to have my own instructions.

So, a programmer for PIC microcontrollers. Simple though not 5 wires as for AVR microcontrollers which I still use today. Here is the diagram:

Here printed circuit board ().

The COM connector is soldered with pins directly to the pads (the main thing is not to get confused with the numbering). The second row of pins is connected to the board with small jumpers (I said very incomprehensibly, yeah). I'll try to give a photo ... even though it's scary (I don't have a normal camera right now).
The most vicious thing is that for PIC microcontrollers, 12 volts are needed for firmware. And better not 12, but a little more. Let's say 13. Or 13.5 (by the way, experts - correct me in the comments if I'm wrong. Please.). 12 volts can still be obtained somewhere. Where is 13? I just got out of the situation - I took a freshly charged lithium-polymer battery, which had 12.6 volts. Well, or even a four-cell battery, with its 16 volts (I flashed one PIC this way - no problem).

But I digress again. So - instructions for firmware PIC microcontrollers. We are looking for the WinPIC800 program (unfortunately, the simple and popular icprog did not work for me) and configure it as shown in the screenshot.

After that, open the firmware file, connect the microcontroller and flash it.

The proposed programmer is based on a publication from the Radio magazine No. 2, 2004, “Programming modern PIC16, PIC12 on PonyProg”. This is my first programmer that I used to flash PIC chips at home. The programmer is a simplified version of the JDM programmer, the original circuit has an RS-232 to TTL converter in the form of a MAX232 chip, it is more versatile, but you can’t assemble it “on your knee”. This scheme has no active ingredient, does not contain scarce parts and is very simple, can be assembled without the use of a printed circuit board.

Rice. one: circuit diagram programmer.

Description of the scheme
The scheme of the programmer is shown in fig. 1. Resistors in the circuits CLK (clocking), DATA (information), Upp (programming voltage) serve to limit the flowing current. PIC controllers are protected from breakdown by built-in zener diodes, so some compatibility of TTL and RS-232 logic is obtained. In the presented circuit, there are diodes VD1, VD2, which “take away” positive voltage from COM port relative to pin 5 and transfer it to the power supply of the controller, due to which in some cases it is possible to get rid of an additional power source.

Establishment
In practice, it does not always happen that this programmer will work without adjustment, from the 1st time, because. the operation of this scheme is highly dependent on the parameters of the COM port. However, I have, on two maternal Gigabyte boards 8IPE1000 and WinFast under XP everything worked right away. If you are too lazy to deal with a non-working, more complex programmer circuit, then you should try to assemble this one. Here are some things that might affect:

The newer mat. board, the developers pay less attention to these ports, because these ports have long become obsolete. You can get rid of this by purchasing a USB-COM adapter, although again, the purchased device may not be suitable. The required parameters are: variable voltage must change at least -10V to +10V (log. 0 and 1) relative to the 5th pin of the connector. The output current must be at least such that when a 2.7 kΩ resistor is connected between the 5th pin and the pin under test, the voltage does not drop below 10V (I have not seen such boards myself). Also, the port must correctly determine the voltages coming from the controller, at a voltage level close to 0V, but not more than 2V, zero is detected, and, accordingly, at above 2V, one is detected.

Also problems can arise from the software.
This is especially true for LINUX OS, because due to the presence of emulators like wine, VirtualBox ports may not work correctly, and a lot of features are required from them. I will touch on these issues in more detail in another article.

Knowing these features, let's start building.
For this, it is highly desirable to have the ICProg 1.05D program.
In the program menu, you must first select in the settings resp. port (COM1. COM2), select JDM programmer. Then open the "Hardware Check" window, in the "Settings" menu. In this menu, you need to check the boxes in turn and measure the voltage at the contacts of the connected connector with a voltmeter. If the voltage parameters do not correspond to the norm, then unfortunately, this may be the cause of inoperability, then you will have to assemble a circuit with an RS-232 TTL converter. Having checked all the checkboxes, you need to make sure that a supply voltage of about 5V is formed on the zener diode. If the voltages are normal and there are no installation errors, then everything should work. We put the controller in the socket, open the firmware, program it. Checkboxes like "Invert data out" do not need to be enabled (all are unchecked). Also, do not forget that some batches of controllers may not have quite standard parameters, and they cannot be flashed, in such cases with this programmer you can only try to reduce the supply voltage from 5V to 3-4V by connecting the corresponding. zener diode, look at the controller for erroneous activation of the LVP mode (low voltage programming), how to prevent, you can read on the Internet for a specific type of controller. You can probably increase the programming voltage of a problem controller only by complicating the circuit by introducing an amplifier stage with a common emitter, powered from an additional power source.

Now more about the problem with the power supply of the device. The programmer was tested with ICProg programs and console picprog under Linux, it should work with anyone that supports JDM if you connect an additional power source (it is connected through a 1kΩ resistor to the zener diode, diodes with resistors in this case can be completely excluded). The fact is that the programmer control algorithms for individual software are different, the ICProg program is the most unpretentious. It was noticed that in Windows OS this program on an unused contact 2 raised the right voltage power supply, the same program under the emulator in Linux on another mat. The board was no longer able to do this, however, a way out was found by taking power from the programming voltage. In general, with ICProg, I think you can use this programmer without additional power. With other software, this is unlikely to be guaranteed, for example, "native" from Ubuntu repositories picprog without power simply does not detect the programmer, displaying the message "JDM hardware not found". It probably either receives some data without applying the programming voltage, or does it too quickly, so that the filter capacitor has not yet had time to charge.