Schemes and materials. Updating the programmer firmware

Just as a theater begins with a hanger, so programming microcontrollers begins with choosing a good programmer. Since I’m starting to master the company’s microcontrollers ATMEL, then I had to thoroughly familiarize myself with what the manufacturers offer. They offer a lot of interesting and tasty things, only at exorbitant prices. For example, a scarf with one twenty-legged microcontroller with a pair of resistors and diodes as a harness costs like an “airplane”. Therefore, the question of self-assembly of the programmer arose. After a long study of the developments of experienced radio amateurs, it was decided to assemble a well-proven programmer USBASP , the brain of which is a microcontrollerAtmega8 (there are also firmware options for atmega88 and atmega48). The minimal wiring of the microcontroller allows you to assemble a fairly miniature programmer that you can always take with you, like a flash drive.

Once it was decided to assemble a miniature programmer, I redrew the circuit for the Atmega8 microcontroller in the housing TQFP32(the pinout of the microcontroller is different from the pinout in the DIP package):

Jumper J1 is used if it is necessary to flash a microcontroller with a clock frequency below 1.5 MHz. By the way, this jumper can be eliminated altogether by placing the 25th leg of the MK on the ground. Then the programmer will always operate at a reduced frequency. Personally, I noticed that programming at a reduced speed takes a fraction of a second longer, and therefore now I don’t pull the jumper, but constantly sew with it.
Zener diodes D1 and D2 are used to match the levels between the programmer and the USB bus; it will work without them, but not on all computers.
The blue LED indicates that the circuit is ready to be programmed; the red LED lights up during programming. The programming contacts are located on the IDC-06 connector, the pinout complies with the ATMEL standard for a 6-pin ISP connector:


This connector contains contacts for powering programmable devices; here it is taken directly from the computer’s USB port, so you need to be careful and avoid short circuits. The same connector is also used for programming the control microcontroller; to do this, just connect the Reset pins on the connector and on the microcontroller (see the red dotted line in the diagram). In the author's circuit, this is done with a jumper, but I did not clutter the board and removed it. For a single firmware, a simple wire jumper will suffice. The board turned out to be double-sided, measuring 45x18 mm.


The programming connector and a jumper to reduce the speed of the programmer are located at the end of the device, this is very convenient


Firmware of the control microcontroller

So, after assembling the device, the most important thing left is to flash the control microcontroller. Friends who still have computers with an LPT port are well suited for these purposes :)The simplest five-wire programmer for AVR
The microcontroller can be flashed from the programming connector by connecting the Reset pins of the microcontroller (29 leg) and the connector. Firmware exists for Atmega48, Atmega8 and Atmega88 models. It is advisable to use one of the last two stones, since support for the Atmega48 version has been discontinued and the latest firmware version dates back to 2009. And versions for the 8th and 88th stones are constantly updated, and the author seems to be planning to add an in-circuit debugger to the functionality. We get the firmware from the German page. To upload the control program to the microcontroller, I used the PonyProg program. When programming, it is necessary to set the crystal to work from an external clock source at 12 MHz. Screenshot of the program with fuse jumper settings in PonyProg:


After flashing the firmware, the LED connected to leg 23 of the microcontroller should light up. This will be a sure sign that the programmer has been successfully programmed and is ready for use.

Driver installation

The installation was carried out on a machine with Windows 7 and no problems arose. When you connect to your computer for the first time, a message will appear indicating that a new device has been detected, prompting you to install a driver. Select installation from the specified location:


Select the folder where the firewood is located and click Next


A window will instantly appear with a warning that the driver being installed does not have a digital signature for small soft ones:


We ignore the warning and continue the installation, after a short pause a window will appear informing us that the driver installation operation has been successfully completed


That's it, the programmer is now ready for use.

Khazama AVR Programmer

To work with the programmer, I chose the Khazama AVR Programmer flasher. A wonderful program with a minimalistic interface.


It works with all popular AVR microcontrollers, allows you to flash flash and eeprom, view the contents of memory, erase the chip, and also change the configuration of fuse bits. In general, a completely standard set. The fuse setting is carried out by selecting the clock source from the drop-down list, thus the likelihood of locking the crystal by mistake is sharply reduced. Fuses can also be changed by placing checkboxes in the lower field, but you cannot place checkboxes on a non-existent configuration, and this is also a big plus in terms of security.


Fuses are written to the MK memory, as you might guess, by pressing the Write All button. The Save button saves the current configuration, and the Load button returns the saved one. True, I could not come up with a practical use for these buttons. The Default button is designed to record the standard fuse configuration, the one with which microcontrollers come from the factory (usually 1 MHz from the internal RC).
In general, during all the time I have been using this programmer, it has shown itself to be the best in terms of stability and speed of operation. It worked without problems both on an ancient desktop PC and on a new laptop.

Download PCB filein SprintLayout you can follow this link

What first steps should a radio amateur take if he decides to assemble a circuit on a microcontroller? Naturally, a control program is needed - “firmware”, as well as a programmer.

And if there are no problems with the first point - the finished “firmware” is usually uploaded by the authors of the circuits, then with the programmer things are more complicated.

The price of ready-made USB programmers is quite high and the best solution would be to assemble it yourself. Here is a diagram of the proposed device (pictures are clickable).

Main part.

MK installation panel.

The original diagram was taken from the LabKit.ru website with the permission of the author, for which many thanks to him. This is a so-called clone of the proprietary PICkit2 programmer. Since the device version is a “lightweight” copy of the proprietary PICkit2, the author called his development PICkit-2 Lite, which emphasizes the ease of assembly of such a device for beginner radio amateurs.

What can a programmer do? Using the programmer, you can flash most readily available and popular PIC series MCUs (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A, etc.), as well as 24LC series EEPROM memory chips. In addition, the programmer can operate in USB-UART converter mode and has some of the functions of a logic analyzer. A particularly important function that the programmer has is the calculation of the calibration constant of the built-in RC generator of some MCUs (for example, such as PIC12F629 and PIC12F675).

Necessary changes.

There are some changes in the circuit that are necessary so that using the PICkit-2 Lite programmer it is possible to write/erase/read data from EEPROM memory chips of the 24Cxx series.

From the changes that were made to the scheme. Added connection from pin 6 of DD1 (RA4) to pin 21 of the ZIF panel. The AUX pin is used exclusively for working with 24LC EEPROM memory chips (24C04, 24WC08 and analogues). It transmits data, which is why it is marked with the word “Data” on the programming panel diagram. When programming microcontrollers, the AUX pin is usually not used, although it is needed when programming MKs in LVP mode.

A 2 kOhm pull-up resistor has also been added, which is connected between the SDA and Vcc pins of the memory chips.

I have already made all these modifications on the printed circuit board, after assembling the PICkit-2 Lite according to the author’s original diagram.

24Cxx memory chips (24C08, etc.) are widely used in household radio equipment, and sometimes they have to be flashed, for example, when repairing CRT TVs. They use 24Cxx memory to store settings.

LCD TVs use a different type of memory (Flash memory). I have already talked about how to flash the memory of an LCD TV. If anyone is interested, take a look.

Due to the need to work with 24Cxx series microcircuits, I had to “finish” the programmer. I did not etch a new printed circuit board, I simply added the necessary elements on the printed circuit board. This is what happened.

The core of the device is a microcontroller PIC18F2550-I/SP.

This is the only chip in the device. MK PIC18F2550 needs to be “flashed”. This simple operation causes confusion for many, as the so-called “chicken and egg” problem arises. I’ll tell you how I solved it a little later.

List of parts for assembling the programmer. In the mobile version, drag the table to the left (swipe left-right) to see all its columns.

Name Designation Rating/Parameters Brand or item type
For the main part of the programmer
Microcontroller DD1 8-bit microcontroller PIC18F2550-I/SP
Bipolar transistors VT1, VT2, VT3 KT3102
VT4 KT361
Diode VD1 KD522, 1N4148
Schottky diode VD2 1N5817
LEDs HL1, HL2 any 3 volt, red And green glow colors
Resistors R1, R2 300 Ohm
R3 22 kOhm
R4 1 kOhm
R5, R6, R12 10 kOhm
R7, R8, R14 100 Ohm
R9, R10, R15, R16 4.7 kOhm
R11 2.7 kOhm
R13 100 kOhm
Capacitors C2 0.1 μ K10-17 (ceramic), imported analogues
C3 0.47 microns
Electrolytic capacitors C1 100uF * 6.3V K50-6, imported analogues
C4 47 uF * 16 V
Inductor (choke) L1 680 µH unified type EC24, CECL or homemade
Quartz resonator ZQ1 20 MHz
USB socket XS1 type USB-BF
Jumper XT1 any type of "jumper"
For microcontroller installation panel (MK)
ZIF panel XS1 any 40-pin ZIF panel
Resistors R1 2 kOhm MLT, MON (power from 0.125 W and above), imported analogues
R2, R3, R4, R5, R6 10 kOhm

Now a little about the details and their purpose.

Green LED HL1 lights up when power is applied to the programmer, and red The HL2 LED emits when data is transferred between the computer and the programmer.

To give the device versatility and reliability, an XS1 type “B” (square) USB socket is used. The computer uses a Type A USB socket. Therefore, it is impossible to mix up the sockets of the connecting cable. This solution also contributes to the reliability of the device. If the cable becomes unusable, it can be easily replaced with a new one without resorting to soldering or installation work.

As a 680 µH inductor L1, it is better to use a ready-made one (for example, types EC24 or CECL). But if you can’t find a finished product, you can make the throttle yourself. To do this, you need to wind 250 - 300 turns of PEL-0.1 wire onto a ferrite core from a CW68 type inductor. It is worth considering that due to the presence of PWM with feedback, there is no need to worry about the accuracy of the inductance rating.

The voltage for high voltage programming (Vpp) from +8.5 to 14 volts is created by the key regulator. It includes elements VT1, VD1, L1, C4, R4, R10, R11. PWM pulses are sent from pin 12 of the PIC18F2550 to the VT1 base. Feedback is provided by the divider R10, R11.

To protect circuit elements from reverse voltage from the programming lines when using a USB programmer in ICSP (In-Circuit Serial Programming) mode, a VD2 diode is used. VD2 is a Schottky diode. It should be selected with a voltage drop at the P-N junction of no more than 0.45 volts. Also, the VD2 diode protects elements from reverse voltage when the programmer is used in USB-UART conversion and logic analyzer mode.

When using the programmer exclusively for programming microcontrollers in the panel (without using ICSP), you can eliminate the VD2 diode completely (this is what I did) and install a jumper instead.

The compactness of the device is made by the universal ZIF panel (Zero Insertion Force - with zero installation effort).

Thanks to it, you can “hardwire” a microcontroller into almost any DIP package.

The diagram "Microcontroller (MK) installation panel" indicates how microcontrollers with different housings must be installed in the panel. When installing the MK, you should pay attention to the fact that the microcontroller in the panel is positioned so that the key on the chip is on the side of the ZIF panel locking lever.

This is how you need to install 18-pin microcontrollers (PIC16F84A, PIC16F628A, etc.).

And here are 8-pin microcontrollers (PIC12F675, PIC12F629, etc.).

If you need to flash a microcontroller in a surface-mount package (SOIC), you can use an adapter or simply solder 5 pins to the microcontroller that are usually required for programming (Vpp, Clock, Data, Vcc, GND).

You can find the finished drawing of the printed circuit board with all the changes at the link at the end of the article. By opening the file in the Sprint Layout 5.0 program, using the “Print” mode, you can not only print a layer with a pattern of printed conductors, but also view the positioning of elements on the printed circuit board. Pay attention to the isolated jumper that connects pin 6 of DD1 and pin 21 of the ZIF panel. You need to print the board drawing in mirror image.

You can make a printed circuit board using the LUT method, as well as a marker for printed circuit boards, using tsaponlak (this is what I did) or the “pencil” method.

Here is a picture of the positioning of elements on a printed circuit board (clickable).

When installing, the first step is to solder jumpers made of tinned copper wire, then install low-profile elements (resistors, capacitors, quartz, ISCP pin connector), then transistors and a programmed MK. The last step is to install the ZIF panel, USB socket and seal the wires in insulation (jumpers).

"Firmware" of the PIC18F2550 microcontroller.

Firmware file - PK2V023200.hex you need to write the PIC18F2550I-SP MK into the memory using any programmer that supports PIC microcontrollers (for example, Extra-PIC). I used the JDM Programmator JONIC PROG and the program WinPic800.

You can upload the firmware to the PIC18F2550 MCU using the same proprietary programmer PICkit2 or its new version PICkit3. Naturally, you can do this with a homemade PICkit-2 Lite, if one of your friends managed to assemble it before you :).

It is also worth knowing that the “firmware” of the PIC18F2550-I/SP microcontroller (file PK2V023200.hex) is written when installing the PICkit 2 Programmer program in a folder along with the files of the program itself. Approximate location of the file PK2V023200.hex - "C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex" . For those who have a 32-bit version of Windows installed on their PC, the location path will be different: "C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex" .

Well, if you couldn’t solve the “chicken and egg” problem using the proposed methods, then you can buy a ready-made PICkit3 programmer on the AliExpress website. It costs much cheaper there. I wrote about how to buy parts and electronic kits on AliExpress.

Updating the programmer firmware.

Progress does not stand still and from time to time Microchip releases updates for its software, including for the PICkit2, PICkit3 programmer. Naturally, we can also update the control program of our homemade PICkit-2 Lite. To do this you will need the PICkit2 Programmer program. What it is and how to use it - a little later. In the meantime, a few words about what needs to be done to update the firmware.

To update the programmer software, you must close jumper XT1 on the programmer when it is disconnected from the computer. Then connect the programmer to the PC and launch PICkit2 Programmer. When XT1 is closed, the mode is activated bootloader to download the new firmware version. Then in PICkit2 Programmer, through the menu “Tools” - “Download PICkit 2 Operation System”, open the previously prepared hex file of the updated firmware. Next, the programmer software update process will occur.

After the update, you need to disconnect the programmer from the PC and remove the XT1 jumper. In normal mode the jumper is open. You can find out the programmer software version through the "Help" - "About" menu in the PICkit2 Programmer program.

This is all about technical issues. And now about the software.

Working with the programmer. PICkit2 Programmer.

To work with the USB programmer, we will need to install the PICkit2 Programmer program on the computer. This special program has a simple interface, is easy to install and does not require special configuration. It is worth noting that you can work with the programmer using the MPLAB IDE development environment, but in order to flash/erase/read the MK, a simple program - PICkit2 Programmer is enough. I recommend.

After installing the PICkit2 Programmer program, connect the assembled USB programmer to the computer. At the same time it will light up green LED (“power”), and the operating system recognizes the device as "PICkit2 Microcontroller Programmer" and install the drivers.

Launch the PICkit2 Programmer program. An inscription should appear in the program window.

If the programmer is not connected, the program window will display a scary message and brief instructions “What to do?” in English.

If the programmer is connected to a computer with an MK installed, the program will detect it when launched and will notify us about it in the PICkit2 Programmer window.

Congratulations! The first step has been taken. And I talked about how to use the PICkit2 Programmer program in a separate article. Next step .

Required files:

    PICkit2 User Manual (Russian) take or.

With the development of computer technology, each time there are fewer and fewer computers equipped with COM and LPT ports. This, in turn, causes difficulties, in particular for radio amateurs, associated with pairing microcontroller programming tools with a personal computer.

This article describes a USB programmer for AVR microcontrollers, which you can assemble yourself. It is built on an Atmega8 microcontroller and is capable of operating from a computer’s USB connector. This programmer is compatible with STK500 v2.

Description of USB programmer

The USB programmer is built on a board made of single-sided foil fiberglass. There are 2 jumpers on the board: one is located under the SPI connector, the second jumper is located near the same connector.

After all the parts are sealed, you need to flash the Atmega8 microcontroller with the firmware given at the end of the article. The fuses that need to be set when programming the Atmega8 microcontroller should look like this:

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

It must be recalled that in some programs the fuse settings are set in the opposite direction to this. For example, in the CodeVisionAVR program you need to check the boxes next to the above mentioned fuses, and in the PonyProg program vice versa.

Programming Atmega8 via LPT port of a computer

The fastest and cheapest way to program Atmega8 is to use an LPT programmer for AVR. A similar diagram is shown below.

The microcontroller is powered by a simple 78L05 voltage regulator. You can use the UniProf program as a programming shell.

When you first turn on the program and when the controller is not connected, by pressing the “LPTpins” button, you need to configure the LPT port pins as follows:

When UniProf starts, it automatically determines the type of microcontroller. We load the Atmega8_USB_prog.hex firmware into the UniProf memory and reject the connection of the EEPROM file.

We set the fuses as follows (for the UniProF program) by pressing the “FUSE” button:

To remember the settings, press all three “Write” buttons. Then by clicking on “Erase” we first clear the memory of the microcontroller being flashed. After this, click on “Prog” and wait for the firmware to complete.

Setting up a USB programmer

After our microcontroller is flashed, it must be installed on the USB programmer board. Next, we connect the programmer to the USB port of the computer, but do not supply power yet.

Port setting:

Terminal setup:

ASCII setting:

Now, after all the procedures have been completed, we supply power to the USB programmer. The HL1 LED should flash 6 times and then stay lit.

To check the connection between the USB programmer and the computer, press the “Enter” key 2 times in the HyperTerminal program. If everything is ok we should see the following picture:

If this is not the case, check the installation again, especially the TxD line.

Next, we enter programmer version 2.10, since without this the programmer will not work with “top-level” programs. To do this, enter “2” and press “Enter”, enter “a” (English) and press “Enter”.

The USB programmer is able to recognize the connection of a programmable microcontroller. This is done in the form of monitoring the “pull-up” of the Reset signal to the power source. This mode is turned on and off as follows:

  • “0”, “Enter” - the mode is disabled.
  • “1”, “Enter” - the mode is enabled.

Programming speed change (1MHz):

  • “0”, “Enter” – maximum speed.
  • “1”, “Enter” – reduced speed.

This completes the preparatory work, now you can try to flash some microcontroller.

(downloads: 1,203)

One day I decided to assemble a simple LC meter for pic16f628a and naturally 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. 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 the use of expensive pic18f2550/4550, which I naturally didn’t have, and it’s a pity to use such expensive MKs if I very rarely do anything at peaks (I prefer av- Yes, flashing them is not a problem, they are much cheaper, and it seems to me that it is easier to write programs on them). After delving for a long time on the Internet in one of the many articles about the EXTRA-PIC programmer and its various variants, one of the authors wrote that extrapic works with any com ports and even a usb-com adapter.

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

I thought that if you use a usb adapter, it would be very stupid to convert the usb to usart TTL, TTL to RS232, RS232 back to TTL levels twice, if you can just take the TTL signals of the RS232 port from the usb-usart converter chip.

So I did. I took the CH340G chip (which has all 8 com port signals) and connected it instead of max232. And this is what happened.

In my circuit there is a jumper jp1, which is not in the extra peak, I installed it because I didn’t 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, as it turned out, it was right there is a logical one at the TX pin, and therefore there is 12 volts at the VPP pin when turned on, but nothing will happen during programming (although you can invert TX in software).

After assembling the board, it was time for testing. And here came the main disappointment. The programmer was identified immediately (with the ic-prog program) and started working, but very slowly! In principle - as expected. Then in the com port settings I set the maximum speed (128 kilobaud) and began testing all the 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 for about 4-6 minutes (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 sews, but very slowly.

Conclusions: the programmer is quite simple, it does not contain expensive parts (CH340 - 0.3-0.5 $, k1533la3 can generally be found among radio junk), works on any computer, laptop (and you can even use tablets on Windows 8/10). Cons: it is very slow. It also requires external power for the VPP signal. As a result, it seemed to me that 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 made him out of what was.” The set of parts is very diverse: both SMD and DIP.

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

List of radioelements

Designation Type Denomination Quantity NoteShopMy 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
September 22, 2011 at 08:11 pm

Miniature USB programmer for AVR microcontrollers

  • Microcontroller programming

Just as a theater begins with a hanger, so programming microcontrollers begins with choosing a good programmer. Since I’m starting to master microcontrollers from ATMEL, I had to thoroughly familiarize myself with what the manufacturers offer. They offer a lot of interesting and tasty things, only at exorbitant prices. For example, a scarf with one twenty-legged microcontroller with a pair of resistors and diodes as a harness costs like an “airplane”. Therefore, the question of self-assembly of the programmer arose. After a long study of the developments of experienced radio amateurs, it was decided to assemble a well-proven USBASP programmer, the brain of which is the Atmega8 microcontroller (there are also firmware options for atmega88 and atmega48). The minimal wiring of the microcontroller allows you to assemble a fairly miniature programmer that you can always take with you, like a flash drive.

The author of this programmer is the German Thomas Fichl, his development page with diagrams, printed circuit board files and drivers.
Once it was decided to assemble a miniature programmer, I redrew the circuit for the Atmega8 microcontroller in the TQFP32 package (the pinout of the microcontroller differs from the pinout in the DIP package):

Jumper J1 is used if it is necessary to flash a microcontroller with a clock frequency below 1.5 MHz. By the way, this jumper can be eliminated altogether by placing the 25th leg of the MK on the ground. Then the programmer will always operate at a reduced frequency. Personally, I noticed that programming at a reduced speed takes a fraction of a second longer, and therefore now I don’t pull the jumper, but constantly sew with it.
Zener diodes D1 and D2 are used to match the levels between the programmer and the USB bus; it will work without them, but not on all computers.
The blue LED indicates that the circuit is ready to be programmed; the red LED lights up during programming. The programming contacts are located on the IDC-06 connector, the pinout complies with the ATMEL standard for a 6-pin ISP connector:

This connector contains contacts for powering programmable devices; here it is taken directly from the computer’s USB port, so you need to be careful and avoid short circuits. The same connector is also used for programming the control microcontroller; to do this, just connect the Reset pins on the connector and on the microcontroller (see the red dotted line in the diagram). In the author's circuit, this is done with a jumper, but I did not clutter the board and removed it. For a single firmware, a simple wire jumper will suffice. The board turned out to be double-sided, measuring 45x18 mm.

The programming connector and a jumper to reduce the speed of the programmer are located at the end of the device, this is very convenient

Firmware of the control microcontroller
So, after assembling the device, the most important thing left is to flash the control microcontroller. Friends who still have computers with an LPT port are well suited for these purposes :) The simplest five-wire programmer for AVR
The microcontroller can be flashed from the programming connector by connecting the Reset pins of the microcontroller (29 leg) and the connector. Firmware exists for Atmega48, Atmega8 and Atmega88 models. It is advisable to use one of the last two stones, since support for the Atmega48 version has been discontinued and the latest firmware version dates back to 2009. And versions for the 8th and 88th stones are constantly updated, and the author seems to be planning to add an in-circuit debugger to the functionality. We get the firmware from the German page. To upload the control program to the microcontroller, I used the PonyProg program. When programming, it is necessary to set the crystal to work from an external clock source at 12 MHz. Screenshot of the program with fuse jumper settings in PonyProg:

After flashing the firmware, the LED connected to leg 23 of the microcontroller should light up. This will be a sure sign that the programmer has been successfully programmed and is ready for use.

Driver installation
The installation was carried out on a machine with Windows 7 and no problems arose. When you connect to your computer for the first time, a message will appear indicating that a new device has been detected, prompting you to install a driver. Select installation from the specified location:

A window will instantly appear with a warning that the driver being installed does not have a digital signature for small soft ones:

We ignore the warning and continue the installation, after a short pause a window will appear informing us that the driver installation operation has been successfully completed

That's it, the programmer is now ready for use.

Khazama AVR Programmer
To work with the programmer, I chose the Khazama AVR Programmer flasher. A wonderful program with a minimalistic interface.

It works with all popular AVR microcontrollers, allows you to flash flash and eeprom, view the contents of memory, erase the chip, and also change the configuration of fuse bits. In general, a completely standard set. The fuse setting is carried out by selecting the clock source from the drop-down list, thus the likelihood of locking the crystal by mistake is sharply reduced. Fuses can also be changed by placing checkboxes in the lower field, but you cannot place checkboxes on a non-existent configuration, and this is also a big plus in terms of security.

Fuses are written to the MK memory, as you might guess, by pressing the Write All button. The Save button saves the current configuration, and the Load button returns the saved one. True, I could not come up with a practical use for these buttons. The Default button is designed to record the standard fuse configuration, the one with which microcontrollers come from the factory (usually 1 MHz from the internal RC).
In general, during all the time I have been using this programmer, it has shown itself to be the best in terms of stability and speed of operation. It worked without problems both on an ancient desktop PC and on a new laptop.

You can download the PCB file in SprintLayout using