• Creation workflow

    Mikhail Belkin01/29/2026 at 13:36 0 comments

    At first i written a programmator for two flash IC's in order to switch off cartridge control function on the printer. As a way for connecting device with PC I choose the virtual COM port through USB instead of just libusb. Because we do not need a driver installation even on windows in this case. At the same time, there is no so much difference between transmitting data throught the USB bulk endpoint in USB-COM abstracion and without it. Another advantage of the first attempt was HEX viewer, which was able to open large files.

    Later I learned an ARM SWD interface and ADI debug module by ARM official pdf's for a long time. At the end I was able to access to the registers of my STM32. And I was so much glad to write the flash page and read signature register through my register access functions. And i dropped the project at this point.

    Then I was need a key in order to get home. In the case of key, there was a datasheet for original key, which helped to write key reader. But for writing still there isn't any documentation. Because keys for Russian home entrance doors made by Chinese nonames for left-handed resellers. So, you can buy rewritable version of DS1990 key, but there isn't any information about its protocol. I copied three versions of protocol from the github, some of they are works in the half of cases.

    Subsequently I was sad, that BlackMagick project made the universal programmator first.

    This strengthened my idea of increasing the quantity of types of supported IC's. I read about way of flashing NRF51 and filled the appropriate registers. And written the support of unique parody of STM8 SWIM interface, used in CH32V003 RISCV chinese microcontrollers. All of this except the key and two flash IC's is still waiting for adding to the PC interface, written in QT.

    Today I need to upload a firmware into my transistortester clone. So, I added the Atmega support. At hat moment the interface is refactored for easier addition of new IC's. 

    And at programmator side I came up with the usbfunction library. This library help to just simply call the functon on the microcontroller through the USB on the interface side. This function also increase the speed of adding of new types of microcontrollers.

    For today, I need to try and debug my Atmega module of programmer. Then I have to finish the full AVR list.