Модифициране на захранващият трансформатор / Modifying the power transformer
[05042025БГ] Както става ясно от заглавието на този раздел, следва да модифицираме трансформатора за да отговаря напълно на нашите нужди. Напомням отново, че всички снимки на този сайт могат да бъдат видени в голям формат - достатъчно е да щракнете с десният бутон на мишката върху тях и да изберете “Open image in new tab” или каквото е там наименованието на това меню според езиковата версия на браузъра ви. Модифицирането на трансформатора се състои в добавянето на две допълнителни намотки, всяка от които е по 35 намотки - ПРОВОДНИКА Е ЗАКУПЕН ОТ AliExpress естествено, ако линка който съм прикрепил спре да работи търсите с някой от следните изрази в интернет - “10m Teflon Wire UL10064 26AWG 32AWG 34AWG Micro Litz Wire Solder High Conductivity Mounting Wire PTFE Compensation Cable” - размерността му е 10m/28AWG. 10 метра са напълно достатъчни. Ах, да - всъщност трябва да имаме и трансформатор върху който да навием този проводник. Аз съм го КУПУВАЛ ОТ ТУК. Това май е единственото дето не е купувано от AliExpress. С оглед на цената за транспорт е по изгодно да се закупи от местен доставчик. Разбира се, че за много от вас Comet Electronics едва ли ще е ценово оптималният избор, за това ако сте от Европа, производителят на трансформатора (Indel) има дистрибуция в почти всички страни от ЕС. На втората снимка специално съм акцентирал върху табелката с техническите параметри на трансформатора - при невъзможност да си закупите точно такъв, разполагате с достатъчно информация за подбор на алтернатива. Ако използвате алтернативен трансформатор, а това задължително ще ви се наложи при мрежови захранвания различни от 230VAC то тогава ще е необходимо сами да изчислите броя на намотките на двете допълнителни вторични намотки. Това става примерно така, навиваме 10 навивки от тънък проводник върху ядрото на трансформатора, при подадено захранващо напрежение в първичната намотка измерваме напрежението във вторичната (навитата от нас) намотка, примерно резултатът е 8,2VAC, това означава, че имаме 0,82VAC за навивка (измереното напрежение разделено на броя навити от нас навивки). И ако примерно искаме 7,5V то тогава 7,5/0,82 е 9,14 навивки на волт, закръгляме го на 9. На първата снимка схематично във синьо е символа на трансформатора преди модификацията му, с червено са дадени допълнителните две намотки добавени от нас. Дадени са и някои параметри (токове и напрежения) които могат да бъдат измерени след модификацията на трансформатора - за да сме уверени че всичко сме направили правилно. Ако след всички обяснения все още не сте сигурни, че сте ме разбрали до край, направете “консултация” със една от снимките представени по горе на този сайт, на нея се виждат допълнителните намотки навити с червен и зелен проводник (снимката е направена на етап прототипиране и за това проводниците са просто каквито са ми попаднали под ръка, за ваш късмет са в два различни цвята и това надявам се подобрява визуализацията на двете допълнителни намотки). След толкова обяснения може би е време и да свършим малко реална работа. И неочаквано, вместо да започнем с навиването на допълнителните намотки довършваме нещо по механичната работа върху кутията - монтажа на силовият транзистор. На първата снимка след схематично изобразеният символ на трансформатора се вижда:
- Как сме закрепили трансформатора в кутията
- Как сме закрепили силовата платка в тази кутия
- Как сме огънали изводите на мощният изходен транзистор, подготвили сме го за запояване и сме отбелязали центъра на монтажният му отвор върху кутията (която по съвместителство е и охлаждащ радиатор за същият този транзистор)
На втората снимка е представен изглед от друга позиция на същите тези операции и може да се види табелката с фабричните данни на трансформатора. Следва разглобяване на конструкцията от трансформатор, долна половина на кутията и силова платка. Сега е най удобният момент да пробием отвора за болта фиксиращ транзистора към долната половина на кутията. На третата снимка е отразена подготовката на трансформатора за извършване на “свещенодействието” - навиване на допълнителни намотки и за това са ни необходими:
- Трансформатор
- Термошлаух
- Парченца от силиконовата изолация на проводник. Това червеничкото на снимката. Не е задължително да го ползвате, но ако все пак решите - поставете го там където началото и края на направената от вас намотка се събират и влизат заедно в термошлауха
- Някакво подобие на совалка, направена е от част от кредитна карта, идеята е да облекчи процеса по навиване.
- Проводника, 10 метра, 28AWG с който ще навием 2 допълнителни намотки от по 35 навивки всяка
На последната снимка е представен резултата от “свещенодействието”, трансформатора е монтиран обратно в долната половина от кутията, монтирани са съответно предният и задният панели. Първичната намотка на трансформатора през главният прекъсвач е свързана към куплунга за мрежовият кабел:
Когато нещата сме ги докарали като на последната снимка може да направим съответните електрически измервания. Резултатите от тях съм ги отразил още на първата снимка от раздела, там където трансформатора е представен схематично. С това приключваме вторият етап от направата на захранването, обещавам - по вече никакво пилене, пробиване и напасване - от тук до края само електроника и програмиране (ако записването на бинарен файл в Flash паметта на микроконтролер може да се нарече програмиране).
ЗАБЕЛЕЖКА: 17mA консумация във първичната намотка са измерени без товар в изхода на устройството, но със присъединени основни компоненти - силова, управляваща и интерфейсни платки. Измерването е безконтактно с токови ампер клещи - CM2100B - режим 2 A AC.

NOTE: 17mA consumption in the primary winding is measured without load at the device output, but with the main components connected - power, control and interface boards. The measurement is non-contact with current clamps - CM2100B - 2 A AC mode.




[05042025EN] As is clear from the title of this section, we should modify the transformer to fully meet our needs. I remind you again that all the photos on this site can be viewed in large format - just right-click on them and select “Open image in new tab” or whatever the name of this menu is according to the language version of your browser. Modifying the transformer consists of adding two additional coils, each of which has 35 coils - THE WIRE WAS PURCHASED FROM AliExpress of course, if the link I attached stops working, search for one of the following terms on the Internet - “10m Teflon Wire UL10064 26AWG 32AWG 34AWG Micro Litz Wire Solder High Conductivity Mounting Wire PTFE Compensation Cable” - its dimensions are 10m/28AWG. 10 meters are quite enough. Oh, yes - in fact, we also need a transformer on which to wind this wire. I BOUGHT IT FROM HERE. This is probably the only one that was not bought from AliExpress. Given the cost of transportation, it is more profitable to buy it from a local supplier. Of course, for many of you Comet Electronics will hardly be the optimal choice in terms of price, so if you are from Europe, the manufacturer of the transformer (Indel) has distribution in almost all EU countries. In the second photo, I have specifically emphasized the plate with the technical parameters of the transformer - if you are unable to purchase exactly the same one, you have enough information to select an alternative. If you use an alternative transformer, and this will definitely be necessary for mains power supplies other than 230VAC, then you will need to calculate the number of windings of the two additional secondary windings yourself. This is done for example like this, we wind 10 turns of thin wire on the transformer core, with the supply voltage applied to the primary winding we measure the voltage in the secondary (wound by us) winding, for example the result is 8.2VAC, this means that we have 0.82VAC per winding (the measured voltage divided by the number of windings wound by us). And if for example we want 7.5V then 7.5/0.82 is 9.14 windings per volt, we round it to 9. In the first picture schematically in blue is the symbol of the transformer before its modification, in red are the additional two windings added by us. Some parameters (currents and voltages) are also given that can be measured after the modification of the transformer - to be sure that we have done everything correctly. If after all the explanations you are still not sure that you have fully understood me, do a "consultation" with one of the pictures presented above on this site, it shows the additional coils wound with red and green wire (the picture was taken at the prototyping stage and that is why the wires are just what I had on hand, luckily for you they are in two different colors and this hopefully improves the visualization of the two additional coils). After so many explanations maybe it is time to do some real work. And unexpectedly, instead of starting with the winding of the additional coils we finish some mechanical work on the box - the installation of the power transistor. In the first photo, after the schematically depicted symbol of the transformer, we see:
- How we fixed the transformer in the box
- How we fixed the power board in this box
- How we bent the terminals of the output transistor, prepared it for soldering and marked the center of its mounting hole on the box (which is also a cooling radiator for this same transistor)
The second photo shows a view from another position of the same operations and you can see the nameplate with the factory data of the transformer. Next comes the disassembly of the structure of the transformer, the lower half of the box and the power board. Now is the most convenient time to drill the hole for the bolt fixing the transistor to the lower half of the box. The third photo shows the preparation of the transformer for performing the “sacred act” - winding additional coils, and for this we need:
- Transformer
- Thermal hose
- Pieces of silicone insulation on a wire. This is the red one in the picture. You don't have to use it, but if you still decide - place it where the beginning and end of the winding you made meet and enter together into the thermohose
- Something like a shuttle, made from part of a credit card, the idea is to ease the winding process.
- The wire, 10 meters, 28AWG with which we will wind 2 additional windings of 35 turns each
The last picture shows the result of the "sacred action", the transformer is mounted back in the lower half of the box, the front and rear panels are mounted respectively. The primary winding of the transformer through the main switch is connected to the connector for the mains cable:
When we have everything as in the last picture, we can make the relevant electrical measurements. I have reflected the results of these in the first picture of the section, where the transformer is schematically presented. With this we finish the second stage of making the power supply, I promise - no more filing, drilling and fitting - from here to the end only electronics and programming (if writing a binary file to the Flash memory of a microcontroller can be called programming).
Сглобяване и модифициране на силовата платка / Assembling and modifying the power board

[09042025БГ] Ето, че най накрая започваме и с електрониката. За начало като спортистите ще загреем с нещо по леко - силовата платка. По леко защото компонентите са с големи размери, прощават прегряване при запояване, разстоянията между контактните площадки на платката също са големи. Вече сте разбрали, че това е готов набор който се купува от ..... ами откъдето е най евтино. Търсим в интернет нещо като “ DC REGULATED LINEAR POWER SUPPLY 0-30V AND 0-3A" и от получените резултати избираме това което ценово ни устройва най много. Вече написах, че схемата е на около 50 години, за първи път е публикувана в списание PRACTICAL ELECTRONICS 10/1978, от страница 40 започва описанието на това което е базата за нашата силова платка. През годините нещата са адаптирани към актуалната за момента елементна база и накрая във времената на всеобщият интернет пра правнуците на обичащите да строят стени (колко много думи, а можех да напиша простичкото “китайците”) ни го продават като готов набор за самостоятелно сглобяване. Реално освен платката ще използваме и максимална част от компонентите които ще получим с набора - при цена от 4$-6$ с доставката ( аз моите 3 набора съм ги купувал в този диапазон, не е никак лошо) - само цената по доставката на отделно взет компонент от локален магазин чрез куриер може да ни струва по вече. Естествено ще трябва да почакаме - доставките от AliExpress са бавни. За разлика от кутията където цените са се
повишили, то при този набор цените са се запазили и даже може и да се понижат. Явно първата партида от набори за сглобяване е свършила, и на пазара е пусната втора - различават се единствено по ориентацията на линейният стабилизатор 7824. При втората е изнесен към ръба на платката - идеята вероятно е да може да бъде закрепен за общ радиатор със силовият транзистор. Нас това въобще не ни пречи, самата платка можеше да бъде доста по добре опроводена , но както се казва за толкова пари - толкова. На снимките се вижда как изглежда този набор обявен в интернет магазин за продажба. На някои от снимките е старата версия на платката на някои новата, както се казва открийте “7-те” разлики. Замяната на биполярните операционни усилвател с такива с полеви транзистори от една страна ни дава свободата при подбора на периферните резистори, но от друга страна е увеличила температурният дрифт на устройството като цяло. Бих могъл да отделя време и да проуча въпроса за замяната им с такива които са проектирани да работят в постоянно токов линеен режим, но това по мое мнение ще оскъпи неоправдано устройство проектирано за изработка в домашни условия. Е така или иначе ще ги монтираме тези операционни усилватели върху цокли, винаги имате опцията да си подберете нещо по добро, само моля ви внимавайте, залитайки в тази посока сте на крачка от
това да станете “аудиофили” и започнете проучване дали съм използвал проводници от безкислородна мед.
[09042025EN] Here we finally start with the electronics. To start, like athletes, we will warm up with something easier - the power board. Easier because the components are large, they forgive overheating when soldering, the distances between the contact pads on the board are also large. You have already understood that this is a ready-made set that is purchased from ..... but where is it cheapest? We search the Internet for something like "DC REGULATED LINEAR POWER SUPPLY 0-30V AND 0-3A" and from the results we choose what suits us the most in terms of price. I have already written that the circuit is about 50 years old, it was first published in the magazine PRACTICAL ELECTRONICS 10/1978, on page 40 the description of what is the basis for our power board begins. Over the years, things have been adapted to the current component base and finally, in the times of the universal Internet, the great-grandchildren of those who love to build walls (how many words, but I could have written the simple "Chinese") sell it to us as a ready-made kit for self-assembly. In reality, in addition to the board, we will also use a maximum of the components that we will receive with the kit - at a price of $ 4-6 with shipping (I bought my 3 kits in this range, it's not bad at all) - only the cost of shipping a separate component from a local store via courier may cost us more. Naturally, we will have to wait - deliveries from AliExpress are slow. Unlike the box where prices have increased, with this kit the prices have remained the same and may even decrease. Apparently the first batch of assembly kits has run out, and a second one has been released on the market - they differ only in the orientation of the 7824 linear stabilizer. In the second one, it is brought out to the edge of the board - the idea is probably to be able to attach it to a common radiator with the power transistor. This does not bother us at all, the board itself could have been wired much better, but as they say for so much money - so much. The pictures show what this set advertised for sale in an online store looks like. Some of the pictures show the old version of the board, some the new one, as they say, discover the “7” differences. Replacing the bipolar operational amplifiers with ones with field effect transistors on the one hand gives us freedom in selecting the peripheral resistors, but on the other hand it has increased the temperature drift of the device as a whole. I could take the time to look into replacing them with ones designed to operate in a DC linear mode, but that would, in my opinion, unnecessarily increase the cost of a device designed for home-made use. Anyway, we will mount these op-amps on sockets, you always have the option to choose something better, just be careful, by stumbling in this direction you are one step away from becoming an “audiophile” and start investigating whether I used oxygen-free copper wires.
[09042025БГ] Когато разполагате с набора за самостоятелно сглобяване е много важно отново да прецените силите и желанията си, все още имате възможност да изберете лесният вариант - да си направите захранване в класическият вариант (надявам се, че сте последвали първоначалният ми съвет, първо да прочетете всичко от край до край и тогава да действате - тоест лицевият панел на кутията не е пробит). Аз няма да се спирам в подробности как работи самата платка на набора в класическото изпълнение. Вече ви посочих корена на дървото, освен него много добра информация как работят нещата и как да ги сглобите в класическият вариант, може да получите :
Разбира се има много още места на които да намерите информация, аз просто посочих първите две които си спомних и са достатъчно стойностни.
За тези от вас които все пак са решили да направят варианта с цифрово управление от микроконтролер и индикация на течнокристален дисплей - продължаваме напред. Следва модифицирана принципна електрическа схема. Модификацията се състои в това , че не монтираме всички електронни компоненти, някои от тях ги заменяме с подобни, но с по различни параметри, не режем, не пробиваме и не променяме трасировката на печатната платка. Със съответните цветове на схемата съм отбелязал:
- Зелено - компоненти които съвпадат с компонентите на оригиналният проект
- Червено - компоненти с различни параметри спрямо тези в оригиналният проект
- Синьо - възлови потенциали към които ще свържем цифровата платка за контрол и индикация на устройството
[09042025EN] When you have the kit for self-assembly, it is very important to re-evaluate your strengths and desires, you still have the opportunity to choose the easy option - to make a power supply in the classic version (I hope you followed my initial advice, first read everything from end to end and then act - that is, the front panel of the case is not pierced). I will not go into details about how the board of the kit itself works in the classic version. I have already shown you the root of the tree, besides it, you can get very good information about how things work and how to assemble them in the classic version:
Of course, there are many more places where you can find information, I just indicated the first two that I remembered and are quite valuable.
For those of you who still decided to make the version with digital control from a microcontroller and indication on a liquid crystal display - we move on. The following is a modified basic electrical diagram. The modification consists in the fact that we do not install all the electronic components, some of them we replace with similar ones, but with different parameters, we do not cut, do not drill and do not change the layout of the printed circuit board. With the corresponding colors of the diagram I have marked:
- Green - components that match the components of the original project
- Red - components with different parameters compared to those in the original project
- Blue - nodal potentials to which we will connect the digital board for control and indication of the device

[16042025БГ] И така, изпълнявайки стъпка по стъпка принципната електрическа схема сглобяваме силовата платка. Поредността на действие е следната - започваме със запояването на най ниските по височина електронни компоненти и продължаваме със следващите. На първата снимка, като най ниски вече са запоени резисторите с мощност четвърт ват и диодите 1N4148. Изключение са R11 и R14, техните номинали са различни от тези на оригиналното устройство, местата на които ще бъдат запоени са оградени с черен флумастер. R11 е със стойност 6,8к и го запояваме на ограденото място с надпис 27К. Аналогично за R14 използваме стойност 1к и мястото за запояване е обозначено като 1К5. След като наситим печатната платка с всички елементи от схемата получаваме резултат като на следващите две снимки. На първата платката е снимана от страна елементи и с флумастер са обозначени контактните площадки към които ще присъединим спомагателното захранване което осигурява отрицателното напрежение от 3,3В необходимо за работа на операционните усилватели около нула волтовият потенциал. И на двете снимки със зелени стрелки са обозначени контактните площадки и съответните потенциали към които ще бъдат запоени кабелите свързващи тази платка с платката за управление и индикация. Моят съвет е да предвидите монтажа на операционните усилватели посредством цокли. Причините за това са, първо тези операционни усилватели (TL081) работят на горната граница на работният си обхват по напрежение - така е и в оригиналното устройство, второ - доколко ще получите оригинални такива с набора който ще поръчате е доста съмнително - за това ще стане дума по нататък.



[16042025EN] So, following the step-by-step schematic diagram, we assemble the power board. The sequence of actions is as follows - we start by soldering the lowest electronic components and continue with the next ones. In the first photo, the quarter-watt resistors and the 1N4148 diodes are already soldered as the lowest ones. The exceptions are R11 and R14, their nominal values are different from those of the original device, the places where they will be soldered are circled with a black felt-tip pen. R11 has a value of 6.8k and we solder it to the circled place with the inscription 27K. Similarly, for R14 we use a value of 1k and the soldering place is marked as 1K5. After saturating the printed circuit board with all the elements of the circuit, we get a result like in the next two photos. In the first picture, the board is photographed from the components side and with a felt-tip pen the contact pads to which we will connect the auxiliary power supply that provides the negative voltage of 3.3V necessary for the operation of the operational amplifiers around the zero volt potential are marked. In both pictures, the contact pads and the corresponding potentials to which the cables connecting this board to the control and indication board will be soldered are marked with green arrows. My advice is to plan the installation of the operational amplifiers using sockets. The reasons for this are, firstly, these operational amplifiers (TL081) operate at the upper limit of their operating voltage range - this is also the case in the original device, secondly - the extent to which you will receive original ones with the set you will order is quite doubtful - this will be discussed later.
[23042025БГ] Следващата по ред технологична операция е изработването и присъединяването на така нареченият в електрическата схема “Module, self- made on a piece of prototype board providing –3,3V” . Използваме парче от прототипна платка с растер 2.54мм между отворите. От снимката можете да видите броя на необходимите площадки (размера на платката). На първата снимка от днешната публикация е представена принципната електрическа схема на тази спомагателна платка. На втората и третата снимка е показана готова платка с изгледи отгоре и отдолу. С тези от вас които ще решат, че това не е най елегантното решение (нали бих могъл специално да проектирам платка с помощта на CAD система, да я поръчам или да я изработя специално в домашни условия) съм напълно съгласен, но това което съм направил е най бързият и евтин начин, при това достатъчно ефективен - все пак се опитваме да минимизираме цената без компромис с параметрите. Така изработената платка присъединяваме към основната силова платка в точките отбелязани със флумастер които ви показах по рано. Захранваме я с една от спомагателните намотки които вече сме навили на силовият трансформатор.



[23042025EN] The next technological operation in order is the manufacture and connection of the so-called in the electrical diagram “Module, self-made on a piece of prototype board providing –3.3V”. We use a piece of prototype board with a 2.54mm pitch between the holes. From the photo you can see the number of required pads (the size of the board). The first photo in today's post presents the basic electrical diagram of this auxiliary board. The second and third photos show a finished board with top and bottom views. I completely agree with those of you who will decide that this is not the most elegant solution (I could have specially designed a board using a CAD system, ordered it or made it specially at home), but what I have done is the fastest and cheapest way, and quite effective - after all, we are trying to minimize the price without compromising on the parameters. We connect the thus made board to the main power board at the points marked with a felt-tip pen that I showed you earlier. We power it with one of the auxiliary windings that we have already wound on the power transformer.
[24042025БГ] Вероятно мнозина от вас четейки инструкциите за изработване на спомагателният източник на -3.3V са се запитали: “Защо трябва да правя всичко това като е достатъчно в оригиналната схема да заменя ценеровият диод от 5.1V с такъв на 3.3V и всичко ще е наред”. Първоначално и аз постъпих така и тогава открих нещо интересно - измереното изходно напрежение след дискретизацията от вграденият в микроконтролера ADC варира в порядък 100-200 mV. С увеличаване на товара в изхода на устройството тази вариация нараства, а без товар изчезва (попада в рамките на точността на преобразуване на която е способен вграденият ADC). Това е явен признак, че големият електролитен кондензатор (С1 на схемата) не се справя достатъчно добре. Увеличаването на капацитета от 3300µF както е предвидено в китайският вариант до 10000µF подобрява нещата, но не ги елиминира напълно. Тогава просто разпояваме този кондензатор и с осцилоскоп анализираме това което виждаме. Сега доста време след като съм намерил решение на проблема ми се наложи да повторя всичко това за да мога да го публикувам тук. Освен платката която правя в момента на друга по стара сглобявам варианта с капацитивният генератор на отрицателно напрежение. И двете платки са без изглаждащ кондензатор след диодният изправител. С осцилоскоп визуализираме това което излиза върху този кондензатор. Резултата е представен на първата снимка от днешната публикация. С жълто е осцилограмата на платката при която е варианта - допълнително захранване плюс линеен стабилизатор - виждаме класическа осцилограма на мостов диоден изправител без изглаждащ кондензатор в изхода. Със синьо е осцилограмата на варианта с капацитивен генератор на отрицателно напрежение. Поради импулсният характер на преходните процеси (заряд, разряд на кондензаторите в генератора) върху изглаждащият кондензатор се получават неравномерни импулси. За да сме съвсем уверени в резултата, с осцилоскопа този сигнал го разлагаме в ред на Фурие, това е представено на втората снимка от днешната публикация. И така там виждаме вместо очакваният един хармоник на 100Hz, два хармоника - един на 100Hz и втори на 150Hz. На практика през всеки един полу период амплитудата върху филтриращият кондензатор се удвоява. Аз прецених, че смесването на класическа линейна схема (изправител, регулатори по ток и напрежение) и импулсна схема (генератор на отрицателно напрежение) е неподходящо за мен и така стигнах до варианта с допълнителната платка осигуряваща отрицателно напрежение и работеща също в линеен режим. Преценката е ваша, ако не ви се прави допълнителен генератор на отрицателно напрежение, не го правете, използвайте импулсната схема, но бъдете готови за това, че напрежението в изхода на устройството ще е с шумове - т.е. ще загубите основното предимство на линейните захранвания спрямо импулсните такива. Друга причина да използвате предложеното от мен решение е надеждността - представете си какво ще се случи на операционните усилватели ако ценеровият диод на 3.3V в импулсният генератор пробие. Това ще го доразясня в следващата публикация която ще нарека “Приказка за трите малки китайски дракончета” 😊

[24042025БГ] Probably many of you, reading the instructions for making the auxiliary -3.3V source, have asked yourself: “Why do I have to do all this when it is enough in the original circuit to replace the 5.1V Zener diode with a 3.3V one and everything will be fine”. Initially, I did the same and then I discovered something interesting - the measured output voltage after the sampling by the microcontroller's built-in ADC varies in the order of 100-200 mV. With increasing load on the device's output, this variation increases, and without load it disappears (it falls within the conversion accuracy that the built-in ADC is capable of). This is a clear sign that the large electrolytic capacitor (C1 in the circuit) is not doing well enough. Increasing the capacitance from 3300µF as provided in the Chinese version to 10000µF improves things, but does not eliminate them completely. Then we simply unsolder this capacitor and analyze what we see with an oscilloscope. Now, quite some time after I found a solution to the problem, I had to repeat all this so that I could publish it here. In addition to the board that I am currently making on another older one, I am assembling the version with the capacitive negative voltage generator. Both boards are without a smoothing capacitor after the diode rectifier. With an oscilloscope, we visualize what comes out on this capacitor. The result is presented in the first photo of today's publication. In yellow is the oscillogram of the board with the option - additional power supply plus linear stabilizer - we see a classic oscillogram of a bridge diode rectifier without a smoothing capacitor at the output. In blue is the oscillogram of the version with a capacitive negative voltage generator. Due to the pulse nature of the transients (charging, discharging of the capacitors in the generator), uneven pulses are obtained on the smoothing capacitor. To be absolutely sure of the result, we decompose this signal into a Fourier series with the oscilloscope, this is presented in the second photo from today's publication. And so there we see instead of the expected one harmonic at 100Hz, two harmonics - one at 100Hz and the second at 150Hz. In practice, during each half-period, the amplitude on the filtering capacitor doubles. I decided that mixing a classic linear circuit (rectifier, current and voltage regulators) and a pulse circuit (negative voltage generator) was unsuitable for me, and so I came to the option with the additional board providing negative voltage and also operating in linear mode. The judgment is yours, if you do not want to make an additional negative voltage generator, do not do it, use the pulse circuit, but be prepared for the fact that the voltage at the output of the device will be noisy - i.e. you will lose the main advantage of linear power supplies over pulse ones. Another reason to use the solution I proposed is reliability - imagine what will happen to the operational amplifiers if the 3.3V Zener diode in the pulse generator breaks down. I will explain this in more detail in the next post, which I will call “The Tale of the Three Little Chinese Dragons” 😊
[25042025БГ] “Приказка за трите малки китайски дракончета” - опит в иносказателна форма да разкажа за проблемите с окомплектовката на наборите за сглобяване поръчвани на AliExpress. Вече вероятно сте разбрали, че съм поръчал и сглобил повече от един набор. Всъщност съм поръчал три набора отделно един от друг. На първият правих разни опити и уточнявах параметрите на устройството. С вторият направих първото окончателно завършено устройство, а третият в момента сглобявам като завършено устройство и описвам всяка стъпка тук на този сайт. Та така:
- Дракон: Вместо ценерови диоди на 5.1V в първият набор бяха сложени диоди тип 1N4148. Това не би трябвало да е проблем защото ние така или иначе не ги ползваме. Аз първоначално от първият набор сглобих изцяло устройство по оригиналната схема (без управление от микроконтролер) и резултатът беше плачевен. Стандартният диод за разлика от ценеровият остава запушен и в изхода на капацитивният генератор на отрицателно напрежение получаваме около -18V. Това напрежение сумирано с тридесетте волта които имаме от силовият изправител ни дава около 48V върху операционните усилватели, а това е много повече от 36V които те могат да понесат. Като резултат операционните усилватели просто изгарят.
- Дракон: Само операционните усилватели от първият набор бяха TL081. От вторият набор бяха маркирани като TL081, а от третият са просто с изтрита маркировка. Как се разбира, че не са оригинални - ами като въртите тримера RV1 офсета в изхода на устройството не се променя. Тези от вас които четат внимателно вече сигурно се питат - как така си разбрал, че операционните усилватели от първият набор са истински, нали ги изгори още с първият дракон. Отговорът е прост, единият операционен усилвател не изгаря защото не е свързан към отрицателното напрежение (този който в оригинала генерира опорно напрежение от 10.2V удвоявайки напрежението на другият ценер). Нали правим максимално евтино устройство и за никъде не бързаме? Това веднага ни навежда на мисълта да си поръчаме операционни усилватели от AliExpress, там ги продават на пачки от по десет броя за по малко от долар с доставката. Аз направих така на два пъти и познайте - и на двете партиди офсета не се регулираше т.е. премаркирани чипове от друг модел. Е, накрая си купих нормални чипове от локален магазин. За това беше и съвета ми в началото на този раздел да предвидите монтаж на тези чипове посредством цокли, а в края на раздела ще опиша подробно методиката на разпознаване съобразно текущият прогрес на изработване на захранването.
- Дракон: Кондензатора от 10µF/50V в изхода се взриви. Да в буквалното значение на думата, още на първото устройство след първите му няколко часа работа докато правих разните му там тестове и експерименти. Докато го монтирах още на платката бях удивен от размера му, обичайните кондензатори с тези параметри са една идея по големи. За това го измерих, беше си истински 10µF. След като станах свидетел на “големият взрив и зараждането на нова галактика” единственият извод който можах да направя е, че вероятно става въпрос за кондензатор с по малко работно напрежение ( от там и малкият му физически размер). Вероятно по време на производството са объркали маркировката и вместо 10 или 16V са нанесли 50V, а после някой ги е взел от сметището на фабриката и ги продава на дребно. Тези дни четох доста интересна статия по въпроса за въглеродните резистори които боядисвайки ги в синьо китайските другари ни пробутват за металослойни - за нашият проект това не е от значение, но на който му е интересно как да ги разпознава (подсказвам - по температурният им коефициент) може да потърси и прочете в интернет.
[25042025EN] “A Tale of the Three Little Chinese Dragons” - an attempt in a figurative form to tell about the problems with the assembly of assembly kits ordered on AliExpress. You have probably already understood that I have ordered and assembled more than one set. In fact, I have ordered three sets separately from each other. On the first one, I did various experiments and specified the parameters of the device. With the second one, I made the first finally completed device, and the third one is currently being assembled as a completed device and I describe each step here on this site. So:
- Dragon: Instead of 5.1V Zener diodes, 1N4148 type diodes were installed in the first set. This should not be a problem because we do not use them anyway. Initially, I assembled a device entirely from the first set according to the original scheme (without microcontroller control) and the result was deplorable. The standard diode, unlike the Zener diode, remains blocked and at the output of the capacitive negative voltage generator we get about -18V. This voltage, summed with the thirty volts that we have from the power rectifier, gives us about 48V on the operational amplifiers, and this is much more than the 36V that they can withstand. As a result, the operational amplifiers simply burn out.
- Dragon: Only the operational amplifiers from the first set were TL081. From the second set they were marked as TL081, and from the third they simply have an erased marking. How do you know that they are not original - well, when you turn the RV1 trimmer, the offset at the output of the device does not change. Those of you who read carefully are probably already asking yourself - how did you know that the operational amplifiers from the first set were real, didn't you burn them out with the first dragon. The answer is simple, one operational amplifier does not burn out because it is not connected to the negative voltage (the one that in the original generates a reference voltage of 10.2V, doubling the voltage of the other Zener). We are making the cheapest device possible, right? This immediately leads us to the idea of ordering operational amplifiers from AliExpress, where they sell them in packs of ten for less than a dollar with shipping. I did this twice and guess what - in both batches the offset was not adjustable, i.e. re-marked chips from a different model. Well, in the end I bought normal chips from a local store. That was my advice at the beginning of this section to provide for the installation of these chips using sockets, and at the end of the section I will describe in detail the recognition method according to the current progress of the power supply.
- Dragon: The 10µF/50V capacitor in the output exploded. Yes, in the literal sense of the word, right on the first device after its first few hours of operation while I was doing various tests and experiments on it. While I was mounting it on the board, I was amazed by its size, the usual capacitors with these parameters are a bit larger. That's why I measured it, it was a real 10µF. After witnessing the "big bang and the birth of a new galaxy" the only conclusion I could make is that it is probably a capacitor with a lower operating voltage (hence its small physical size). Probably during production they messed up the marking and instead of 10 or 16V they put 50V, and then someone took them from the factory dump and sells them retail. These days I was reading a rather interesting article on the issue of carbon resistors, which by painting them blue, the Chinese comrades are pushing us to consider metal-film resistors - this is not relevant for our project, but anyone who is interested in how to recognize them (I suggest - by their temperature coefficient) can search and read on the internet.
[26042025БГ] На снимката към днешната ми публикация се вижда как би трябвало да изглежда устройството ако сте спазвали указанията ми до тук. Като краен резултат имаме алуминиева кутия в която е монтиран силовият трансформатор и силовата платка. Обърнете внимание, че мощният транзистор също е монтиран. Той е електрически изолиран от кутията (аз съм използвал “керамични” термо трансферни подложки от алуминиев оксид, вие използвайте по своя преценка, но по възможност с най малко топлинно съпротивление - идеята е да пренесем максимално възможно количество топлина от силовият транзистор към алуминиевата кутия). Когато нещата изглеждат както на снимката т.е. на трансформатора може да се подаде мрежово напрежение посредством силовият прекъсвач и от своя страна той да захрани силовата платка (не забравяме да поставим предпазител в предвиденото място на конектора за входящият силов кабел) то можем да проведем следните тестове:
- Без да сме монтирали операционните усилватели на предвидените места измерваме захранващото напрежение което се подава към тях (изводи 4 и 7 на цокъла). Резултата трябва да е около 34 – 35 волта.
- При изключено захранване, поставяме операционен усилвател в цокъла за U2 . Несвързаният извод на R8 го свързваме към масата на платката - на снимката аз това съм го направил с “тестов кабел” (тъмно синият проводник с двете бели щипки в краищата му). За целите на теста може просто за запоите проводник ако не разполагате с такъв “специализиран” кабел. Присъединявате мултиметър в изхода на платката и посредством RV2 нулирате офсетното напрежение в изхода. Ако операционният усилвател е истински TL081 това ще се получи, ако не е то няма да има резултат. Така можете да проверите и трите операционни усилвателя които сте придобили с набора.
Разскачваме или разпояваме (според това как сми го направили)“тестовият” проводник който сме използвали за установяване автентичността на TL081 и монтираме същите в предвидените цокли. С това поредният етап от изработката на устройството е завършен и преминаваме към следващият.

[26042025EN] The photo in my post today shows what the device should look like if you have followed my instructions so far. As a final result, we have an aluminum box in which the power transformer and the power board are mounted. Note that the power transistor is also mounted. It is electrically insulated from the box (I used “ceramic” thermal transfer pads made of aluminum oxide, you use at your discretion, but if possible with the least thermal resistance - the idea is to transfer the maximum possible amount of heat from the power transistor to the aluminum box). When things look like in the photo, i.e. the transformer can be supplied with mains voltage via the power switch and in turn it can power the power board (do not forget to place a fuse in the intended place of the connector for the incoming power cable), then we can conduct the following tests:
- Without having mounted the operational amplifiers in the intended places, we measure the supply voltage that is supplied to them (pins 4 and 7 of the socket). The result should be about 34 – 35 volts.
- With the power off, we place an operational amplifier in the socket for U2. We connect the unconnected output of R8 to the ground of the board - in the photo I did this with a “test cable” (the dark blue wire with the two white clips at its ends). For the purposes of the test, you can simply solder a wire if you do not have such a “specialized” cable. Connect a multimeter to the output of the board and use RV2 to reset the offset voltage at the output. If the operational amplifier is a real TL081, this will work, if not, it will not work. This way you can check all three operational amplifiers that you acquired with the set.
We disconnect or unsolder (depending on how we did it) the “test” wire that we used to establish the authenticity of the TL081 and install them in the provided sockets. With this, another stage of the device's construction is complete and we move on to the next.
Сглобяване, програмиране и настройка на платката за индикация и управление / Assembling, programming and setting up the display and control board
[10052025БГ] Започваме изработването на най сложната в технологично отношение част на устройството - платката за индикация и управление. Мисля, че това е най трудната част от проекта поради следните причини:
- Запояване на 48 изводен SMD компонент - ще се опитам да опиша максимално подробно технологията която използвам и е приложима в домашни условия без допълнителни инвестиции в технологични консумативи или оборудване
- Програмиране, а по точно зареждането на програма в същият този 48 изводен компонент - всъщност става въпрос за зареждането на фърмуер в микроконтролер
Към днешната публикация прилагам екранни снимки от 3D програмата която съм използвал за създаването на чертежа по който сме изработили отворите в лицевият панел. Всъщност всички файлове които съм използвал при 3D проектирането на устройството съм ви ги предоставил още в началото на тази интернет страница. От едната страна на платката са монтирани 1,77” LCD на което се осъществява визуализацията и енкодера с който контролираме устройството. На другата страна на платката са всички останали електронни компоненти, включително и микроконтролера. Всичко това посредством гайката на енкодера и 4 болта М2,5х20 закрепваме за лицевият панел. Получава се своеобразен “сандвич” от три слоя - лицев панел, енкодер и LCD, платка.


[10052025EN] We are starting the development of the most technologically complex part of the device - the display and control board. I think this is the most difficult part of the project for the following reasons:
- Soldering a 48-pin SMD component - I will try to describe in as much detail as possible the technology that I use and is applicable at home without additional investments in technological consumables or equipment
- Programming, or more precisely loading a program into this same 48-pin component - in fact, it is about loading firmware into a microcontroller
To today's publication I am attaching screenshots from the 3D program that I used to create the drawing according to which we made the holes in the front panel. In fact, I have provided you with all the files that I used in the 3D design of the device at the beginning of this website. On one side of the board, a 1.77” LCD is mounted, which is used for visualization and the encoder with which we control the device. On the other side of the board, all the other electronic components are located, including the microcontroller. All this is attached to the front panel using the encoder nut and 4 M2.5x20 bolts. A kind of “sandwich” of three layers is obtained - front panel, encoder and LCD, board.
[10052025БГ] Понастоящем, за проектирането на печатни платка почти винаги се използва компютър със съответната CAD програма. Първият етап е създаване на принципна електрическа схема. На картинката към публикацията е представена тази принципна схема. След съответните процедури по разполагане на компонентите и свързването им в така наречената PCB част на CAD системата ще получим изходните файлове за производство - тях ще използваме при поръчката на производител на печатни платки. Поради малкият размер и наситеността с компоненти не смятам за удачно изработването на платката в домашни условия. В наши дни цените и сроковете на тази услуга са изключително достъпни т.е. по малко от 10$ за 5 броя включвайки пощенските разходи, но първо е редно да опишем функционалните възли и тяхното предназначение от които е съставена тази платка
- Мостов изправител D1-D4 и линеен стабилизатор на 3,3V (U1) - осигуряват стабилизирано захранване за цялата платка
- Усилвател на напрежението което получаваме върху токовият резистор R7(монтиран на силовата платка) в основата на който е операционният усилвател U2. Бих могъл да използвам специализиран постояннотоков усилвател, но все пак сме получили с набора на силовата платка три операционни усилвателя и един ни е останал свободен.
- Делител на напрежение R17, R20 - в изхода на устройството можем да получим примерно 30V, а на аналоговият вход на микроконтролера са допустими не повече от 3,3V.
- Микроконтролер U3 - това е мозъкът на цялото устройство, към два от аналоговите му входове подаваме процесните стойности за тока и напрежението в изхода на устройството, а заданията за тези стойности изработваме посредством резисторите свързани по схема R-2R към същият този микроконтролер.
- Чрез енкодера SW1, също свързан към U3 осъществяваме управлението на устройството
- Индикацията е реализирана на LCD1 свързан към микроконтролера посредством SPI интерфейс
- Платката се свързва съм останалата част от устройството посредством следните конектори: J1 - на него подаваме променливо напрежение от втората спомагателна намотка на силовият трансформатор, J2 - служи за свързване на съответните сигнали към силовата платка, J3 - е необходим само за зареждането на фърмуер в U3 посредством програматор. J4 – на него са изведени съответните сигнали на двата I2C интерфейса - посредством тях две или повече устройства могат да се свържат последователно като от едно от тях да бъдат управлявани останалите или да осъществим управление с персонален компютър.
Принципна схема и монтажен чертеж на електронните компоненти в PDF формат.

[10052025EN] Currently, a computer with the appropriate CAD program is almost always used for the design of printed circuit boards. The first stage is the creation of a schematic diagram. The picture accompanying the publication presents this schematic diagram. After the relevant procedures for placing the components and connecting them in the so-called PCB part of the CAD system, we will receive the output files for production - we will use them when ordering from a printed circuit board manufacturer. Due to the small size and the saturation with components, I do not consider it appropriate to manufacture the board at home. Nowadays, the prices and terms of this service are extremely affordable, i.e. less than $10 for 5 pieces including postage, but first it is appropriate to describe the functional units and their purpose of which this board is composed
- Bridge rectifier D1-D4 and linear stabilizer 3.3V (U1) - provide stabilized power supply for the entire board
- A voltage amplifier that we get on the current resistor R7 (mounted on the power board) at the base of which is the operational amplifier U2. I could use a specialized DC amplifier, but still we received three operational amplifiers with the power board set and one was left free.
- Voltage divider R17, R20 - at the output of the device we can get, for example, 30V, and at the analog input of the microcontroller no more than 3.3V are permissible.
- Microcontroller U3 - this is the brain of the entire device, to two of its analog inputs we supply the process values for the current and voltage at the output of the device, and the assignments for these values are made using the resistors connected in the R-2R scheme to the same microcontroller.
- Through the encoder SW1, also connected to U3, we control the device
- The indication is implemented on LCD1 connected to the microcontroller via SPI interface
- The board is connected to the rest of the device via the following connectors: J1 - we supply alternating voltage from the second auxiliary winding of the power transformer to it, J2 - serves to connect the corresponding signals to the power board, J3 - is only needed for loading firmware into U3 using a programmer. J4 - the corresponding signals of the two I2C interfaces are output to it - through them two or more devices can be connected in series, with one of them controlling the others or we can control them with a personal computer.
The schematic diagram and assembly drawing of the electronic components in PDF format.

[11052025БГ] На снимката вляво е показана не монтирана (без електронни елементи) печатна платка - изгледи отгоре и отдолу. Започвайки днешната публикация влязох на САЙТА КЪДЕТО ГИ ПОРЪЧВАМ за да проверя за актуална цена - и тя е 3,50 долара с доставка до България за 5 броя. Всички настройки в страницата за поръчки си ги оставяме по подразбиране и единствено качваме ГЕРБЕР ФАЙЛОВЕТЕ ЗА ПОРЪЧКА НА ПЛАТКАТА. Прилагам също и ЕКРАННА СНИМКА на завършена и готова за плащане поръчка. Разбира се не е задължително приложените “Гербер файлове” да ги поръчате на същото място, винаги можете да изберете друг производител който ви устройва по вече. Под “Гербер файлове” се разбира де факто универсален стандарт за генериране на изходни файлове от CAD система за проектиране на печатни платки. Реално в наши дни има множество такива CAD системи и за да могат производителите на печатни платки да приемат поръчки за платки проектирани с това множество от CAD системи се е наложил този стандарт.
[11052025EN] The photo on the left shows an unassembled (without electronic elements) printed circuit board - top and bottom views. Starting today's post, I went to THE SITE WHERE I ORDER THEM to check for the current price - and it is $3.50 with delivery to Bulgaria for 5 pieces. We leave all the settings on the order page by default and only upload the GERBER FILES FOR ORDERING THE BOARD. I also attach a SCREENSHOT of a completed and ready-to-pay order. Of course, it is not mandatory to order the attached “Gerber files” at the same place, you can always choose another manufacturer that suits you better. “Gerber files” are understood as a de facto universal standard for generating output files from a CAD system for designing printed circuit boards. In reality, there are many such CAD systems these days, and in order for printed circuit board manufacturers to accept orders for boards designed with this multitude of CAD systems, this standard has been imposed.
[12052025БГ] След като разполагаме с платка за контрол и управление следва да я наситим с компоненти. Започваме с най сложният за монтаж - микроконтролера. Той е в корпус LQFP-48 т.е. по 12 извода на всяка от страните му. Когато започвах разработката на устройството все още не беше отшумяла кризата от COVID 19. Много от електронните компоненти бяха трудни за доставка, а цените им бяха подскочили до небесата. При тези обстоятелства естествен избор беше максимално слаб и непопулярен 32 битов микроконтролер. За популярен имам примерно STM3F103, който благодарение на тази популярност дори в момента не може да се купи на дребно на адекватна цена, а ако го намерите евтин то ще е някакво копие, а не оригинал. Истината е, че 8 битовите микроконтролери плавно остават в миналото, а и при положение, че планирах да работя с естествени величини (числа с плаваща запетая) и графичен интерфейс (160 х 128 течнокристален дисплей) 32 битовият микроконтролер си е точно на мястото. Избора падна на F0 серията от STMicroelectronics. Решаващи фактори се оказаха широката им употреба в промишлеността и безплатната среда за разработка - STM32CubeIDE. Първоначално започнах с микроконтролер STM32F030C8 (64 килобайта флаш памет). След като започнах да управлявам течнокристалният дисплей установих че съм изразходвал повече от 60% от постоянната му памет. Нейн голям консуматор се оказа графичният интерфейс и по точно големите шрифтове. Реших да продължа и когато реализирах основните функции по управление и индикация установих, че вече съм използвал 98% памет. Това не ме притесни особено защото при проектирането на платката бях предвидил възможността за запояване на процесор с по вече памет пък и имах “таен план”. А тайният ми план беше - от най големият шрифт ползвам само символите от 0 до 9 и главните букви A,V и W. С модифициране на драйвера всички останали символи които не се ползват отпадат т.е. не консумират флаш памет. С това успях да намаля по спомени консумацията на памет до 82%. За съжаление се оказа недостатъчно за да реализирам планираният от мен I2C интерфейс. Като резултат имаме напълно работоспособен фърмуер за микроконтролер ST32F030C8. Изходните файлове са публикувани в ТОЗИ РЕПОЗИТОРИИ НА GITHUB. Съвсем умишлено не публикувам тук компилираният бинарен файл (това което можете да заредите като програма в микроконтролера). Причините са две. Първата е, че цената на същият микроконтролер но с 256 килобайта памет е само с половин долар повече (на AliExpress) и втората е, че няма възможност за външен интерфейс както и някои допълнителни екстри (автоматично следене на ток или напрежение в изхода, линеаризация на показанията). Разбира се тези от вас които все пак решат да използват 64 килобитовата версия на микроконтролера винаги могат да получат бинарен файл компилирайки в средата за разработка която упоменах изходните файлове, но запълвайки почти цялата памет се лишават от възможността за външен интерфейс (дори в момента да мислите, че не ви трябва - никой не знае бъдещето), а също така и от възможността да ползват по добри версии на това което съм написал. Като споменах по добри версии просто се надявам около този проект да възникне общност от хардуеристи и софтуеристи които да го направят още по добър. Аз лично съм си планирал други неща и едва ли ще участвам, но за мен ще е голяма радост ако има продължение. Спирам да пиша за варианта с 64 килобита памет за да не се получи объркване.
Микроконтролера който понастоящем използвам е STM32F030CC (256 килобита, от които ползвам около 50%). КУПУВАЛ СЪМ ГО ОТ ТУК. Не е ясно докога връзката към този търговец ще е актуална, но в момента цената му е 2$ с доставката. Ако се чудите как е възможна такава цена, при официална цена от 1.5$ за 10 000 бройки на изхода на фабриката отговора е лесен - това са производствени отпадъци. Микроконтролера е без следи от запояване, но има запис във флаш паметта - явно е остатък от някакво производство и в момента тези остатъци ги разпродават.
[12052025EN] Once we have a control and management board, we should fill it with components. We start with the most complex to assemble - the microcontroller. It is in an LQFP-48 package, i.e. 12 pins on each of its sides. When I started developing the device, the COVID 19 crisis had not yet subsided. Many of the electronic components were difficult to supply, and their prices had skyrocketed. Under these circumstances, a natural choice was a maximally weak and unpopular 32-bit microcontroller. For example, I have the STM3F103 as a popular one, which, thanks to this popularity, cannot even be bought at retail at an adequate price at the moment, and if you find it cheap, it will be some kind of copy, not an original. The truth is that 8-bit microcontrollers are slowly becoming a thing of the past, and given that I planned to work with natural values (floating point numbers) and a graphical interface (160 x 128 LCD), a 32-bit microcontroller is just right. The choice fell on the F0 series from STMicroelectronics. The decisive factors were their widespread use in industry and the free development environment - STM32CubeIDE. Initially, I started with the STM32F030C8 microcontroller (64 kilobytes of flash memory). After I started controlling the LCD, I found that I had used up more than 60% of its permanent memory. Its biggest consumer turned out to be the graphical interface, and specifically the large fonts. I decided to continue, and when I implemented the main control and indication functions, I found that I had already used 98% of the memory. This didn't bother me much because when designing the board I had foreseen the possibility of soldering a processor with more memory and I had a "secret plan". And my secret plan was - from the largest font I use only the characters from 0 to 9 and the capital letters A, V and W. By modifying the driver, all other characters that are not used are removed, i.e. they do not consume flash memory. With this, I managed to reduce the memory consumption by 82%. Unfortunately, it turned out to be insufficient to implement the I2C interface I planned. As a result, we have a fully functional firmware for the ST32F030C8 microcontroller. The source files are published in THIS GITHUB REPOSITORY. I am deliberately not publishing the compiled binary file here (what you can load as a program into the microcontroller). There are two reasons. The first is that the price of the same microcontroller but with 256 kilobytes of memory is only half a dollar more (on AliExpress) and the second is that there is no possibility for an external interface as well as some additional extras (automatic monitoring of current or voltage at the output, linearization of readings). Of course, those of you who still decide to use the 64 kilobit version of the microcontroller can always get a binary file by compiling the source files in the development environment I mentioned, but by filling almost all the memory, you are deprived of the possibility of an external interface (even if you think you don't need it right now - no one knows the future), and also of the possibility of using better versions of what I wrote. Having mentioned better versions, I just hope that a community of hardware and software engineers will arise around this project to make it even better. I personally have other things planned and I am unlikely to participate, but it would be a great joy for me if there is a continuation. I'm stopping writing about the 64 kilobit version to avoid confusion.
The microcontroller I'm currently using is STM32F030CC (256 kilobits, of which I use about 50%). I BOUGHT IT FROM HERE. It's not clear how long the link to this seller will be up to date, but currently its price is $2 with shipping. If you're wondering how such a price is possible, with an official price of $1.5 for 10,000 units at the factory outlet, the answer is simple - these are production waste. The microcontroller has no traces of soldering, but there is a record in the flash memory - it's clearly a leftover from some production and they're currently selling off these leftovers.
[29052025БГ] За пореден път се забавих с публикуването на съдържание в тази страница. “Виновник” за това е празника на славянската писменост - 24 май, е благодарение на него имам възможността да пиша с азбука която за мнозина е най малко странна. Започваме със запояването на микроконтролера към платката за управление. Към текста от днес прилагам номерирани снимки отразяващи хронологично този процес. И така както следва на снимка:
- Са показани двете човки за поялник които ще използвам за запояването му
- Първо нанасям флюс. Вече уточних, че се опитваме да направим нещата максимално евтини - за това вместо да си купуваме флюса си го правим сами. Няколко капки спирт капнати в кутията с твърд колофон вършат чудеса. Изчакваме един ден и получаваме гъст течен вариант на колофонов флюс за запояване. Тези от вас които вече разполагат със специализиран SMD флюс ползват него, но после за да го отмият добре от платката ще трябва да разполагат с изопропилов алкохол, а не с най обикновен закупен от близката аптека.
- Поставяме микроконтролера на мястото му. Не забравяме да проверим, че маркера за първи извод съвпада с този на белият печат на платката.
- С острата човка на поялника на която сме поставили минимално количество припой запояваме един от ъгловите изводи на процесора. Повтаряме това още седем пъти - за оставащите ъглови изводи
- Сега когато всички ъглови изводи са запоени нанасяме отново флюс, така че да покрие всичките 48 извода на контролера.
- Със човката тип “конско копито” организираме така наречената спойка “микро вълна” с която запояваме всички изводи на контролера.
- Това е крайният резултат на запоен и отмит от флюса микроконтролер.
Ето и някои от “тънкостите” които са характерни за процеса - моля технолозите работещи във фабриките за производство на електроника да не четат това. Просто за да си облекчим живота и да постигнем крайният резултат при минимални вложения правим някои компромиси с каноните на изкуството на запояването 😊 . Запояваме с оловен припой - много по пластичен и прилепчив от без оловният му аналог. Аз запоявам при температура 350 градуса по Целзий. Поради “високата” температура която ползвам се стремя времето да бъде максимално кратко. Всъщност се стремя да избягвам директният контакт на човката на поялника с извода на компонента който запоявам, основният температурен стрес поема съответната площадка на печатната платка. На видеофайловете които са приложени вероятно ще забележите, че за да не гоня интегралната схема по платката, аз просто я придържам с пръсти така мога да коригирам евентуалните размествания в позиционирането и настъпили в процеса, а и така съм сигурен, че не я прегрявам. Да, това е свързано с опасността от повреда на чипа със статично електричество, но на мен не ми се е случвало - естествено във индустриална среда, където всяка годна платка има своята немалка цена това е недопустимо. Хронологично съм записал на видео целият този процес, без да редактирам, на някои места ръцете ми треперят (ами не съм запоявал SMD чип повече от година, пък и не съм на 30 години), на някои правя грешки и ги коригирам, но записах нещата така както са за да може тези които ще го правят за първи път да се осмелят ( пък и ми писна да гледам в тубата звани и незвани “джедаи на поялника” колко му разбират и се имат едва ли не за Айнщайн - съдейки по менторските им изрази)
Все пак за тези от вас които не се осмелят или не успеят винаги има план Б. Отивате в най близкият сервиз за ремонт на GSM или персонални компютри и помолвате срещу съответното заплащане да ви ги запоят.







[29052025EN] Once again I have been late with publishing content on this page. The “culprit” for this is the holiday of Slavic writing - May 24, and thanks to it I have the opportunity to write with an alphabet that is at least strange for many. We start by soldering the microcontroller to the control board. I am attaching numbered photos to today's text reflecting this process chronologically. And so as follows in the photo:
- The two soldering iron tips that I will use for soldering it are shown
- First I apply flux. I have already specified that we are trying to make things as cheap as possible - that is why instead of buying flux we make it ourselves. A few drops of alcohol dropped into the box with hard rosin work wonders. We wait a day and get a thick liquid version of rosin flux for soldering. Those of you who already have a specialized SMD flux use it, but then to wash it off the board well, you will need to have isopropyl alcohol, not the most ordinary one purchased from a nearby pharmacy.
- We put the microcontroller in its place. We do not forget to check that the marker for the first pin matches that of the white seal on the board.
- With the sharp tip of the soldering iron on which we have placed a minimum amount of solder, we solder one of the corner pins of the processor. We repeat this seven more times - for the remaining corner pins
- Now that all the corner pins are soldered, we apply flux again so that it covers all 48 pins of the controller.
- With the “horseshoe” tip, we organize the so-called “microwave” solder with which we solder all the pins of the controller.
- This is the final result of a soldered and flux-washed microcontroller.
Here are some of the "subtleties" that are characteristic of the process - I ask technologists working in electronics factories not to read this. Just to make our lives easier and achieve the final result with minimal investment, we make some compromises with the canons of the art of soldering 😊 . We solder with lead solder - much more plastic and adhesive than its lead-free analogue. I solder at a temperature of 350 degrees Celsius. Due to the "high" temperature that I use, I strive to keep the time as short as possible. In fact, I strive to avoid direct contact of the soldering iron tip with the terminal of the component that I am soldering, the main temperature stress is taken by the corresponding area of the printed circuit board. In the video files that are attached, you will probably notice that in order not to chase the integrated circuit along the board, I simply hold it with my fingers so I can correct any possible displacements in positioning that occurred in the process, and I am also sure that I am not overheating it. Yes, this is related to the risk of damaging the chip with static electricity, but it has not happened to me - of course, in an industrial environment, where every suitable board has its own considerable price, this is unacceptable. I have chronologically recorded this entire process on video, without editing, in some places my hands are shaking (I haven't soldered an SMD chip in more than a year, and I'm not 30 years old), in some I make mistakes and correct them, but I recorded things as they are so that those who will do it for the first time can dare (and I'm tired of watching in the tube called and uncalled "soldering iron Jedi" how much they understand it and think they are almost Einstein - judging by their mentor expressions)
However, for those of you who don't dare or don't succeed, there is always a plan B. You go to the nearest GSM or personal computer repair service and ask for the appropriate payment to solder them for you.
[01062025БГ] След като сме запоили микроконтролера правим първият тест за неговата работоспособност - зареждаме го с фърмуер. Това става с помощта на платка наречена програматор. Тя свързва нашата платка с персонален компютър на който е инсталирана програма която ни позволява да запишем фърмуера който сме изтеглили от този сайт или сме генерирали самостоятелно с програмата STM32cubeIDE за която съм писал по горе на тази страница. На първата снимка от днешната публикация се вижда минималният набор от електронни елементи необходими на контролера за функционирането му. Това са филтриращите кондензатори в захранването и линейният стабилизатор на 3,3В. Освен това е необходимо да запоим изводите на конектора J3 и да подадем захранване по голямо от 5 волта на входа на платката. Аз използвам старо зарядно за GSM и USB кабел чийто край от едната страна беше повреден - отрязано е здравото парче и кабелите са запоени към платката - червено/белият и черно/белият проводници на снимката. Без достатъчен капацитет в изхода си линейният стабилизатор U1 не работи коректно - временно съм запоил на мястото на кондензатора С4 такъв със стойност по голяма от 220 микро фарада. Свързваме конектора J3 с програматора. Това става с три проводника, съответните сигнали са GND, SWCLK и SWDIO. За програматор имаме много възможности. Аз използвам оригинално устройство от STMicroelectronics. Има много китайски клонинги на програматори които поддържат интерфейс ST-Link, но последните и най актуални версии на безплатната програма на същата тази фирма не искат да работят с тях. Вариантите да се заобиколи това са много, но усилията спрямо цената на оригинален програматор за мен не си струват - за това и не съм ги положил. Както обещах в началото, на тази страница пиша само проверени и използвани от мен неща. И така, към момента съм ползвал две платки(програматори) за това. Хронологично първата беше STM32VLDISCOVERY, на нея се запознах с 32 битовите микроконтролери въобще като устройства. След това премахвайки двата джъмпера от нея започнах да я ползвам като програматор за външни за нея устройства. Втората платка, това което ползвам активно в момента е STLINK-V3MINIE. По принцип би трябвало да е възможно да се използва всяка една платка от серията NUCLEO на STMicroelectronics защото всяка от тях съдържа ST-Link в себе си. Като идея за по евтино може да проверите по интернет магазините за употребявани стоки и да си я купите от там - много често хората които вече са се научили на тези платки ги продават и продължават с по сериозни неща. И така независимо какво ще ползваме като програматор е необходим файла iSTM32PSU-F030CC.elf (това е така нареченият фърмуер който превръща безполезното парче силиций в нещо което да работи за нас). Изтегляме и инсталираме програмата STM32CubeProg. Свързваме програматора към компютъра с USB кабел, а към нашата платка съответно към конектора J3. На втората снимка от днешната публикация е отразен момента в който всичко това е направено, програматора е намерил цел за програмиране и е съгласен да я програмира ( тоест процесора е оригинален). От менюто Open File зареждаме фърмуера и натискаме бутона Download. Ако всичко е правилно получаваме резултат като на третата снимка. С това приключвам темата с това как се зарежда микроконтролер с приложен фърмуер.

[01062025EN] After we have soldered the microcontroller, we do the first test for its operability - we load it with firmware. This is done using a board called a programmer. It connects our board to a personal computer on which a program is installed that allows us to write the firmware that we have downloaded from this site or generated independently with the STM32cubeIDE program that I wrote about above on this page. The first photo from today's post shows the minimum set of electronic elements necessary for the controller to function. These are the filtering capacitors in the power supply and the 3.3V linear stabilizer. In addition, it is necessary to solder the terminals of the J3 connector and supply a power supply greater than 5 volts to the input of the board. I use an old GSM charger and a USB cable whose end on one side was damaged - the healthy piece was cut off and the cables are soldered to the board - the red/white and black/white wires in the photo. Without sufficient capacity at its output, the linear stabilizer U1 does not work correctly - I have temporarily soldered a capacitor C4 with a value greater than 220 microfarads in place of it. We connect the J3 connector to the programmer. This is done with three wires, the corresponding signals are GND, SWCLK and SWDIO. We have many options for a programmer. I use an original device from STMicroelectronics. There are many Chinese clones of programmers that support the ST-Link interface, but the latest and most current versions of the free program from the same company do not want to work with them. There are many options to get around this, but the effort compared to the price of an original programmer is not worth it for me - that's why I did not make them. As I promised at the beginning, on this page I only write things that I have tested and used. So, so far I have used two boards (programmers) for this. Chronologically, the first was the STM32VLDISCOVERY, on it I got acquainted with 32-bit microcontrollers in general as devices. Then, removing the two jumpers from it, I started using it as a programmer for external devices. The second board, the one I'm actively using at the moment, is STLINK-V3MINIE. In principle, it should be possible to use any board from the NUCLEO series from STMicroelectronics because each of them contains ST-Link in itself. As an idea for cheaper, you can check online stores for used goods and buy it from there - very often people who have already learned about these boards sell them and move on to more serious things. So, regardless of what we will use as a programmer, the file iSTM32PSU-F030CC.elf is needed (this is the so-called firmware that turns a useless piece of silicon into something that works for us). We download and install the STM32CubeProg program. We connect the programmer to the computer with a USB cable, and to our board, respectively, to the J3 connector. The second photo from today's post shows the moment when all this is done, the programmer has found a target for programming and agrees to program it (that is, the processor is original). From the Open File menu, we load the firmware and press the Download button. If everything is correct, we get a result like in the third photo. With this, I conclude the topic on how to load a microcontroller with applied firmware.
[02062025БГ] След като разполагаме с платка с работещ микроконтролер продължаваме насищането и с останалите електронни компоненти. За да ни е по лесно отново спазваме правилото от по ниско към по високо т.е. първо монтираме най ниските по височина компоненти и т.н. (за това и ползваме на предходната стъпка временен електролитен кондензатор) За операционният усилвател предвиждаме монтаж през цокъл. Това което не монтираме все още са течнокристалният дисплей и енкодера. Всички компоненти са с номинали съгласно принципната електрическа схема. В рамките на експеримента за кондензатора C11 използвам такъв със стойност 10 микро фарада. Този кондензатор отговаря за “чистото” захранване на аналоговата част на микроконтролера. По препоръка на производителя стойността му е 1µF и сега ще проверя дали по голямата стойност от 10µF ще повлияе на ADC преобразуването. Дано само не забравя да напиша за ефекта ( положителен или отрицателен) за да не ви се налага и на вас да пробвате 😊. Докато сглобявах платката забелязах, че съм изпуснал един компонент при проектирането и - “бързият” кондензатор със стойност 100nF на входа на линейният стабилизатор, на втората снимка се вижда корекцията. Реално не съм забелязал липсата му да влияе на работата на първото устройство, но както се казва в една от рекламите по местната телевизия - “традицията повелява”. За тези от вас които разполагат с осцилоскоп при желание е възможен следващият тест, тези които нямат осцилоскоп или не им се занимава пропускат до края на днешната публикация. Проблема е следният, доколко са функционални вход - изходите на микроконтролера. Входовете и изходите които отговарят за подсветката, сигналите от енкодера или дисплея ще ги разберем лесно по това, че съответната периферия не работи, но какво се случва с изходите които образуват дискретните DAC преобразуватели? Това са 20 извода от микроконтролера и ако някой от тях не работи или не е запоен добре резултата ще е липса на “стъпки” в изходното напрежение и това се открива доста трудно. За да избегна проблеми в бъдеще в изходният код на програмата съм предвидил генерирането на фърмуер в който е заложена тестова поредица. Във файла main.c имаме следният ред:
//#define DAC_IO_TEST //to test DAC correct soldering
Когато го активираме (премахнем двете наклонени черти в началото на реда) и компилираме получаваме СЪОТВЕТНИЯТ ТЕСТОВ ФЪРМУЕР. А файлове с това разширение вече знаете какво да ги правите - програматора и запис в микроконтролера. Когато платката е сглобена да това ниво, можем да я захраним от втората спомагателна намотка на силовият трансформатор. Присъединяваме тестовите сонди на осцилоскопа към сигналите IDAC и VDAC от конектора J2. Резултата трябва да е като на третата картинка. Наблюдаваме стъпало образни сигнали без пропуски в стъпките. Според настройките във филтрите на измервателният уред и неговото бързодействие е възможно да видите кратки игло образни импулси - това не е дефект, просто бързодействието в изходите на контролера е различно, а и при реална работа изходите се установяват статично.



[02062025БГ] Once we have a board with a working microcontroller, we continue the saturation with the remaining electronic components. To make it easier for us, we again follow the rule from lower to higher, i.e. first we install the lowest height components, etc. (for this we use a temporary electrolytic capacitor in the previous step) For the operational amplifier, we plan to install it through a socket. What we are not installing yet are the liquid crystal display and the encoder. All components are rated according to the main electrical diagram. Within the framework of the experiment for the capacitor C11, I use one with a value of 10 micro farads. This capacitor is responsible for the “clean” power supply of the analog part of the microcontroller. According to the manufacturer's recommendation, its value is 1µF and now I will check whether the larger value - 10µF will affect the ADC conversion. I hope I don't forget to write about the effect (positive or negative) so that you don't have to try it too 😊. While assembling the board, I noticed that I had missed one component in the design - the "fast" capacitor with a value of 100nF at the input of the linear stabilizer, the correction is visible in the second photo. I have not really noticed its absence affecting the operation of the first device, but as one of the commercials on local television says - "tradition dictates". For those of you who have an oscilloscope, the next test is possible if desired, those who do not have an oscilloscope or do not care to skip to the end of today's publication. The problem is the following, how functional are the input - outputs of the microcontroller. The inputs and outputs that are responsible for the backlight, the signals from the encoder or the display, we will easily understand by the fact that the corresponding peripheral does not work, but what happens to the outputs that form the discrete DAC converters? These are 20 pins from the microcontroller and if any of them does not work or is not soldered well, the result will be a lack of "steps" in the output voltage and this is quite difficult to detect. To avoid problems in the future, I have provided for the generation of firmware in the source code of the program, in which a test sequence is embedded. In the main.c file we have the following line:
//#define DAC_IO_TEST //to test DAC correct soldering
When we activate it (remove the two slashes at the beginning of the line) and compile, we get THE CORRESPONDING TEST FIRMWARE. And files with this extension you already know what to do with them - the programmer and writing to the microcontroller. When the board is assembled to this level, we can power it from the second auxiliary winding of the power transformer. We connect the test probes of the oscilloscope to the IDAC and VDAC signals from the J2 connector. The result should be like in the third picture. We observe step-shaped signals without gaps in the steps. Depending on the settings in the filters of the measuring device and its speed, you may see short needle-shaped pulses - this is not a defect, it is just that the speed of the controller outputs is different, and in real operation the outputs are set statically.
[06062025БГ] I Днес след толкова изписани и споделени на този сайт неща установих, че съм пропуснал нещо съществено и то е ОСНОВНИЯТ РЕПОЗИТОРИЙ НА ПРОЕКТА - това е мястото където са изходните файлове чиято компилация ни дава фърмуера който зареждаме в микроконтролера. Надявам се да се намерят желаещи които да го усъвършенстват и направят още по функционален. За днес толкова, вероятно това ще е най кратката публикация в хронологията по документирането на този проект.
[06062025EN] I Today, after so many things written and shared on this site, I realized that I had missed something essential and that is the MAIN PROJECT REPOSITORY - this is the place where the source files are, the compilation of which gives us the firmware that we load into the microcontroller. I hope that there will be those who are willing to improve it and make it even more functional. That's all for today, this will probably be the shortest publication in the chronology of documenting this project.
[10062025БГ] За да завършим платката за индикация и управление са необходими още два компонента - течнокристален дисплей и механичен енкодер. Отново за мен най удачно в ценово отношение е придобиването им на Алиекспрес. С магическият стринг “EC11” в търсачката си намираме подходяща оферта. На първата снимка съм дал възможните варианти за сравнение - в пластмасов и в метален корпус. До сега използвах такива в метален корпус и честно казано не съм доволен от качеството им - доста голям, направо дразнещ аксиален луфт, лоши механични кликове, но работят - което си е комплимент за софтуера който отработва този енкодер. Като споменах софтуер, за тези които имат възможност да компилират фърмуера от изходният код има бонус. С промяна на следните дефиниции във файла “main.c” :
#define TRN_SLOW_NORM 4 //4
#define TRN_NORM_FAST 10 //10
#define NORM_PRESS_TIME 1 // *100 in mS
#define LONG_PRESS_TIME 5 // *100 in mS
са възможни промяна в поведението на енкодера. На следващите две снимки е представен течнокристалният дисплей, за него магическият стринг за търсене е “1.77 LCD”. Аз всичките три или четири дисплея до сега съм ги купувал от ТУК. Естествено тези от вас които желаят могат да си закупят и качествен енкодер от фирмата BOURNS например.



[10062025EN] To complete the board for indication and control, two more components are needed - a liquid crystal display and a mechanical encoder. Again, for me, the most suitable in terms of price is to acquire them on Aliexpress. With the magic string “EC11” in the search engine, we find a suitable offer. In the first photo, I have given the possible options for comparison - in a plastic and in a metal housing. Until now, I have used those in a metal housing and, to be honest, I am not satisfied with their quality - quite a large, downright annoying axial play, bad mechanical clicks, but they work - which is a compliment to the software that processes this encoder. As I mentioned software, for those who have the ability to compile the firmware from the source code, there is a bonus. By changing the following definitions in the file “main.c”:
#define TRN_SLOW_NORM 4 //4
#define TRN_NORM_FAST 10 //10
#define NORM_PRESS_TIME 1 // *100 in mS
#define LONG_PRESS_TIME 5 // *100 in mS
changes in the behavior of the encoder are possible. The next two pictures show the liquid crystal display, for which the magic search string is “1.77 LCD”. I have bought all three or four displays so far from HERE. Of course, those of you who wish can also buy a quality encoder from the company BOURNS, for example.
Последни напътствия относно присъединяването на дисплея към останалата част. Първоначално го запоявах директно с предвидените за това изводи. И тук се прояви нещо специфично за сандвич конструкцията - невъзможност за последващи ремонти и корекции по основната платка. За да компенсирам това постъпвам по следният начин - с отвертка премахвам пластмасовият държач на фабричните изводи, разпоявам изводите един по един, почиствам площадките с вакуум помпа. С останалият ми от спомагателните намотки проводник присъединявам дисплея към основната платка. Резултатът от тези действия е показан на снимката.

Last instructions on connecting the display to the rest of the part. Initially, I soldered it directly to the pins provided for this. And here something specific to the sandwich construction manifested itself - the impossibility of subsequent repairs and adjustments to the main board. To compensate for this, I proceed as follows - with a screwdriver I remove the plastic holder of the factory pins, I unsolder the pins one by one, I clean the pads with a vacuum pump. With the wire left over from the auxiliary windings, I connect the display to the main board. The result of these actions is shown in the photo.
[11062025БГ] Сглобяваме така подготвената заготовка към лицевата част на кутията и продължаваме с присъединяването на така полученият сандвич към останалата част на устройството. Кой потенциал от конектора J2 къде точно е присъединен към силовата платка е показано на илюстративният материал към днешната публикация. За по голяма нагледност съм използвал разноцветни проводници. Освен това в началото на страницата (там където сглобяваме силовата платка) на принципната схема със светлосиньо са указани тези потенциали, а на две от илюстративните снимки със зелени стрелки са показани точките на присъединяване.


[11062025EN] We assemble the thus prepared blank to the front part of the box and continue with the connection of the resulting sandwich to the rest of the device. Which potential from the J2 connector is connected to the power board and where is shown in the illustrative material to today's publication. For greater clarity, I have used multi-colored wires. In addition, at the beginning of the page (where we assemble the power board) on the schematic diagram, these potentials are indicated in light blue, and in two of the illustrative photos, the connection points are shown with green arrows.
[12062025БГ] Сглобяваме всичко в обратен ред. Горната част на кутията все още не бързаме да я монтираме. След като сме сигурни, че сме осигурили добър термичен контакт на силовият транзистор към долната половина на кутията (затегнали сме го с болт и имаме термопроводяща изолационна подложка) можем да направим някои проби. Преди това обаче е редно да свържем изхода на силовата платка към терминалите на лицевият панел. За да си набавим терминали отново се обръщаме към Алиекспрес използвайки магическите думи “JS-910B”. За свързване използваме максималният по сечение проводник който е възможен. Тук няма да прилагам илюстративни снимки, по надолу в публикацията на някоя снимка все ще се появи конкретната реализация на това. За сметка на това прилагам снимки на възможните изображения които може да видите на течнокристалният дисплей. И така по реда на публикуването им:
- Екран за калибриране на устройството. Днес няма да се спирам на него, защото следващата публикация ще посветя изцяло на процеса по “калибриране”. Достатъчно е да знаете, че да достигнете до него трябва при изключено устройство да натиснете и задържите енкодера и тогава да го включите.
- Стартов екран. При подаване на захранване на екрана се появява изображението на делфин, изписват се надписи и всичко това отнема около шест секунди. Виновници за това са следните редове програмен код:
ST7735_DrawImage(0, 0, 160, 128, (uint16_t*) logo_160x128);//draw welcome screen
HAL_Delay(2000);
ST7735_DrawString(0,0,"So Long, and Thanks...",Font_7x10,BRRED,BLACK);
HAL_Delay(2000);
ST7735_DrawString(25,118,"...for all the Fish",Font_7x10,BRRED,BLACK);
HAL_Delay(2000);
А причината за написването им е следният ред в програмата:
/* Perform ADC calibration, after power stabilization delay above */
if (HAL_ADCEx_Calibration_Start(&hadc) != HAL_OK) Error_Handler();
Обяснението е следното - за добра практика се смята при стартирането на микроконтролера да премине процес на вътрешна калибрация съобразно препоръките на производителя, но процеса трябва да се стартира при установено захранване. За това съм преценил, че тези шест секунди са достатъчни да се заредят кондензаторите в устройството и да проведем коректна калибрация. И за това вместо да изкарам икона на пясъчен часовник примерно съм избрал картинка на делфин. Пиша това за да може тези от вас които са на “ТИ” с програмирането да могат да си го променят по свой вкус.
- Основен работен екран. Постарал съм се да направя управлението максимално интуитивно. Всичко е описано в ТОЗИ ФАЙЛ



[12062025EN] We assemble everything in reverse order. We are not in a hurry to install the upper part of the case yet. After we are sure that we have ensured good thermal contact of the power transistor to the lower half of the case (we have tightened it with a bolt and we have a thermally conductive insulating pad) we can do some tests. Before that, however, it is time to connect the output of the power board to the terminals on the front panel. To get terminals, we turn to Aliexpress again using the magic words “JS-910B”. For connection, we use the maximum cross-sectional conductor that is possible. I will not apply illustrative photos here, the specific implementation of this will still appear below in the publication of a photo. On the other hand, I am applying photos of the possible images that you can see on the liquid crystal display. And so in the order of their publication:
- Device calibration screen. I won't dwell on it today, because the next post will be devoted entirely to the "calibration" process. It is enough to know that to reach it, you need to press and hold the encoder when the device is off and then turn it on.
- Startup screen. When power is applied, the image of a dolphin appears on the screen, inscriptions are displayed, and all this takes about six seconds. The culprits for this are the following lines of program code:
ST7735_DrawImage(0, 0, 160, 128, (uint16_t*) logo_160x128);//draw welcome screen
HAL_Delay(2000);
ST7735_DrawString(0,0,"So Long, and Thanks...",Font_7x10,BRRED,BLACK);
HAL_Delay(2000);
ST7735_DrawString(25,118,"...for all the Fish",Font_7x10,BRRED,BLACK);
HAL_Delay(2000);
And the reason for writing them is the following line in the program:
/* Perform ADC calibration, after power stabilization delay above */
if (HAL_ADCEx_Calibration_Start(&hadc) != HAL_OK) Error_Handler();
The explanation is as follows - it is considered good practice to go through an internal calibration process when starting the microcontroller according to the manufacturer's recommendations, but the process must be started with an established power supply. For this reason, I have decided that these six seconds are enough to charge the capacitors in the device and to conduct a correct calibration. And for this reason, instead of drawing an hourglass icon, for example, I have chosen a picture of a dolphin. I am writing this so that those of you who are "YOU" with programming can change it to your liking.
- Main working screen. I have tried to make the control as intuitive as possible. Everything is described in THIS FILE
[14062025БГ] На този етап вече имаме напълно работоспособно устройство - можем да го използваме. Обаче за да можем да го използваме пълноценно следва да го калибрираме т.е. стойностите които виждаме или задаваме през дисплея да съответстват максимално на реалните величини. Микроконтролера който използвам на хардуерно ниво умее да работи само с цели числа, стойностите които имаме да контролираме и управляваме са десетични дроби. Контролера с помощта на софтуерни библиотеки “превежда” числата от реалният свят към своят вътрешен свят и обратно. Това става съответно с умножение, деление, събиране и изваждане на целите числа с дробни такива. За целта се използват дробни константи. От друга страна поради производствените толеранси на електронните компоненти винаги имаме нееднаквост в мащабирането на аналоговите сигнали които подаваме към ADC и DAC компонентите. Та точно отстраняването на тази разнородност наричаме калибрация и най лесно това става с промяната на упоменатите вече дробни константи. На дисплея имаме четири числа във формат “десетична дроб” и това са текущите стойности на тока и напрежението, а също и заданията за тях. Та за тези четири числа имаме и съответно четири константи - Udsp, Idsp, Ustp, Istp, както е показано на екрана “настройки” по горе. Без тези константи на преобразуване числовите величини които обработваме ще са ни напълно непонятни т.е. безполезни. За това в програмата е необходимо за бъдат зададени и това става със следните редове в програмният код:
float scaleU=9.46 , scaleI=1.43; // scaling constants for U,I~9,1/1,48
float scaleUsp=33.40, scaleIsp=218.00; //scaling const. for set points
Числата са теоретично изчислени и вследствие на толерансите на компонентите в електрическите вериги следва да се прецизират. Вече е ясно, че за да влезем в екран настройки включваме устройството при натиснат енкодер. В екрана с кратко натискане на същият този енкодер преминаваме към полето за настройване на последващата константа. Въртенето на енкодера променя стойностите на константите. Полето “EXIT” - излизаме от екрана без да запомняме стойностите, те остават такива каквито сме ги видели когато сме извикали този екран. Полето “SAVE&EXIT” - всички стойности изобразени на екрана се запаметяват във флаш паметта на микроконтролера. За да предизвикате действие в тези две полета трябва да задържите енкодера натиснат за по дълго от половин секунда. Краткото натискане води до преминаване в последващо меню. “Особеност” на този екран се явява това, че при всяко извикване се зареждат настройките които са по подразбиране. Причината да бъде по този начин е, че така консумираме най малко памет, а тази част от програмата беше написана когато още се опитвах да се събера в 64 килобайта на старият модел контролер. Добрата новина е, че можем да подберем всяка от тези стойности по отделно, да запишем най добрата и стойност на хартия, а в края на процеса на калибрация да въведем и четирите стойности и да ги запишем в паметта на микроконтролера. По стъпки нещата се правят така:
- Включваме устройството и отново се уверяваме, че сме настроили офсета от потенциометъра.
- Включваме волтметър в изхода. Сравняваме показанията на дисплея с тези на волтметъра и преценяваме за константата Udsp дали трябва да я увеличаваме или намаляваме. При изключено устройство натискаме и задържаме енкодера. Подаваме захранване и отпускаме енкодера - появява се екрана за калибровка. Задаваме нова стойност за Udsp, запаметяваме я със “SAVE&EXIT”. Повтаряме това докато добием удовлетворяващо ни съвпадение в показанията на дисплея и волтметъра. Записваме константата на хартия за да не се налага да я въвеждаме при следващите стъпки (микроконтролера ще си въвежда сам константата по подразбиране). За точка на калибриране си избираме такова изходно напрежение което се предполага че ще използваме най често в работата си. Аз примерно съм избрал 5 волта. Вие ако искате примерно да калибрирате при 12 волта, за да ви е по лесно задавате 12 волта, при включен изход запаметявате в клетка М0 (това е вече описано в указанията за работа на основният екран). Така при последващите циклични включвания устройството ще е готово да подаде 12 волта в изхода си - т.е. няма да се налага всеки път да ги избирате през енкодера.
- Включваме амперметър през резистивен товар в изхода. Аз използвам 16 ома резистор с подходяща мощност, вие си преценете според нуждите. С подбор на стойността на Idsp достигаме до максимално уеднаквяване на показанията на дисплея и амперметъра. Това, че в този момент константата за напрежение примерно е по подразбиране а не тази която установихме и записахме в предната стъпка не влияе. Записваме на хартия константата за тока. През целият процес на подбор следим светодиода за достигнато токоограничение да не свети.
- Включваме волтметър и нагласяме константата Ustp. Тоест напрежението без товар в изхода на устройството да съвпада с това което е зададено от нас на екрана. Записваме подбраната константа на хартия.
- Отново включваме амперметър през резистор в изхода. Подбираме константата за включване на токоограничението. В процеса на подбор се ориентираме по светването на червеният светодиод за включването на режима на токоограничение. Записваме подбраната константа на хартия.
- Така подбраните и записани на хартия от нас константи записваме и запаметяваме в устройството.
Поздравления - когато направите всичко това ще имате напълно работоспособно устройство което да ползвате. В следващия раздел ще опиша как да добавим интерфейсна платка. С нейна помощ ще можете да управлявате устройството чрез персонален компютър, а също така да свържете две или повече устройства в мрежа. Идеята за мрежата е следната, трябва ви двуполярен източник на 12 волта - две устройства в мрежа, минусът на едното към плюсът на другото и готово. Или няколко отделни устройства свързани към еднотипни товари - отново мрежа и от едно устройство командваме всички останали, или имаме две устройства - всяко от тях идеализирано ни дава 30 волта, но ни е необходим източник от 42 волта - мрежа и на командното устройство задаваме 21 волта - двете заедно дават 42. Време е да приключвам този раздел и вместо заключение ще публикувам таблица на която ся видни изчислените константи и получените в процеса на настройка на двете (към настоящият момент) устройства изработени от мен:
| Udsp | Idsp | Ustp | Istp |
Default | 9.460 | 1.430 | 33.400 | 218.000 |
Device 1 | 9.488 | 1.422 | 33.994 | 213.501 |
Device 2 | 9.461 | 1.568 | 34.000 | 208.000 |
[14062025EN] At this stage, we already have a fully functional device - we can use it. However, in order to be able to use it fully, we should calibrate it, i.e. the values that we see or set through the display should correspond as much as possible to the real values. The microcontroller that I use at the hardware level can only work with integers, the values that we have to control and manage are decimal fractions. The controller, with the help of software libraries, “translates” the numbers from the real world to its internal world and vice versa. This is done by multiplying, dividing, adding and subtracting integers with fractional ones. Fractional constants are used for this purpose. On the other hand, due to the manufacturing tolerances of the electronic components, we always have inequality in the scaling of the analog signals that we feed to the ADC and DAC components. So, it is precisely the removal of this heterogeneity that we call calibration and the easiest way to do this is by changing the already mentioned fractional constants. On the display we have four numbers in “decimal” format and these are the current values of the current and voltage, as well as the settings for them. So for these four numbers we have four constants - Udsp, Idsp, Ustp, Istp, as shown on the “settings” screen above. Without these conversion constants, the numerical values we process will be completely incomprehensible to us, i.e. useless. For this, they need to be set in the program and this is done with the following lines in the program code:
float scaleU=9.46 , scaleI=1.43; // scaling constants for U,I~9,1/1,48
float scaleUsp=33.40, scaleIsp=218.00; //scaling const. for set points
The numbers are theoretically calculated and due to the tolerances of the components in the electrical circuits they should be refined. It is now clear that to enter the settings screen, we turn on the device while pressing the encoder. In the screen, by briefly pressing the same encoder, we go to the field for setting the next constant. Rotating the encoder changes the values of the constants. The “EXIT” field - we exit the screen without saving the values, they remain as we saw them when we called this screen. The “SAVE&EXIT” field - all values displayed on the screen are saved in the flash memory of the microcontroller. To cause an action in these two fields, you must hold the encoder pressed for more than half a second. A short press leads to a transition to the next menu. The “special feature” of this screen is that the default settings are loaded with each call. The reason for it being this way is that this way we consume the least memory, and this part of the program was written when I was still trying to fit into the 64 kilobytes of the old controller model. The good news is that we can select each of these values separately, write down the best value on paper, and at the end of the calibration process, enter all four values and save them in the microcontroller's memory. The steps are as follows:
- Turn on the device and make sure again that we have set the offset from the potentiometer.
- Turn on a voltmeter at the output. Compare the display readings with those of the voltmeter and judge for the constant Udsp whether we need to increase or decrease it. With the device turned off, press and hold the encoder. Apply power and release the encoder - the calibration screen appears. Set a new value for Udsp, save it with “SAVE&EXIT”. Repeat this until we get a satisfactory match between the display and the voltmeter readings. We write down the constant on paper so that we do not have to enter it in the next steps (the microcontroller will enter the constant by default). For the calibration point, we choose an output voltage that we are supposed to use most often in our work. For example, I have chosen 5 volts. If you want to calibrate at 12 volts, for example, to make it easier for you to set 12 volts, when the output is on, save it in cell M0 (this is already described in the operating instructions on the main screen). Thus, during subsequent cyclic switching on, the device will be ready to supply 12 volts to its output - i.e. you will not have to select them each time via the encoder.
- We turn on the ammeter through a resistive load in the output. I use a 16 ohm resistor with appropriate power, you judge according to your needs. By selecting the value of Idsp, we achieve maximum uniformity of the readings on the display and the ammeter. The fact that at this moment the voltage constant is, for example, by default and not the one we established and recorded in the previous step does not affect. We write down the current constant on paper. Throughout the selection process, we monitor that the LED for the current limit reached does not light up.
- We turn on the voltmeter and set the constant Ustp. That is, the no-load voltage at the output of the device should match what is set by us on the screen. We write down the selected constant on paper.
- We turn on the ampere again through a resistor in the output. We select the constant for turning on the current limit. In the selection process, we are guided by the lighting of the red LED for turning on the current limit mode. We write down the selected constant on paper.
- We record and save the constants selected and written down on paper in the device.
Congratulations - when you do all this, you will have a fully functional device to use. In the next section, I will describe how to add an interface board. With its help, you will be able to control the device via a personal computer, and also connect two or more devices in a network. The idea of the network is as follows, you need a bipolar source of 12 volts - two devices in a network, the minus of one to the plus of the other and that's it. Either several separate devices connected to the same type of loads - again a network and from one device we control all the others, or we have two devices - each of them ideally gives us 30 volts, but we need a source of 42 volts - a network and we set 21 volts on the control device - the two together give 42. It is time to end this section and instead of a conclusion I will publish a table showing the calculated constants and the ones obtained in the process of setting up the two (at the moment) devices made by me:
| Udsp | Idsp | Ustp | Istp |
Default | 9.460 | 1.430 | 33.400 | 218.000 |
Device 1 | 9.488 | 1.422 | 33.994 | 213.501 |
Device 2 | 9.461 | 1.568 | 34.000 | 208.000
|
[16062025БГ] Важни допълнения към раздела в две точки:
- Електролитният кондензатор от 10µF който монтирах вместо този от 1µF не подобрява съществено работата на вградените ADC. Все пак отчетете факта, че е Low ESR - не съм тествал ако е стандартен тип дали намалената му реакция към "бързи" сигнали няма да я влоши
- Новият модел енкодер (този който е в дясно на снимката с енкодерите) в механично поведение изглежда малко по добър от старият модел, но също е далеч от марковите енкодери
[16062025БГ] Important additions to the section in two points:
- The 10µF electrolytic capacitor that I installed instead of the 1µF one does not significantly improve the performance of the built-in ADC. However, take into account the fact that it is Low ESR - I have not tested if it is a standard type whether its reduced response to "fast" signals will not worsen it
- The new encoder model (the one on the right in the picture with the encoders) in mechanical behavior looks a little better than the old model, but it is also far from branded encoders