diff --git a/README.md b/README.md index 3efb44c..3c0430e 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,16 @@ * [Translations](#Translations) -**IMSProg** - **I**2C, **M**icroWire and **S**PI EEPROM/Flash chip **Prog**rammer - is a program to read, write EEPROM chips use the `CH341A programmer` device. +**IMSProg** - **I**2C, **M**icroWire and **S**PI EEPROM/Flash chip +**Prog**rammer - is a program to read, write EEPROM chips use the +`CH341A programmer` device. ![CH341A black](img/ch341_black150.png) ![CH341A green](img/ch341_green150.png) -The IMSProg makes respect to [QHexEdit2](https://github.com/Simsys/qhexedit2) hex editor and [SNANDer programmer](https://github.com/McMCCRU/SNANDer). The format of the chip database is based on the format used in EZP2019, EZP2020, EZP2023, Minpro I, XP866+ programmers. Warning, format is not the same! +The IMSProg makes respect to [QHexEdit2](https://github.com/Simsys/qhexedit2) +hex editor and [SNANDer programmer](https://github.com/McMCCRU/SNANDer). The +format of the chip database is based on the format used in EZP2019, EZP2020, +EZP2023, Minpro I, XP866+ programmers. Warning, format is not the same! IMSProg is a collection of tools: @@ -25,8 +30,9 @@ IMSProg is a collection of tools: 2. IMSProg_editor - chip database editor. -3. IMSProg_database_update - script to update chip database using external web-server. - +3. IMSProg_database_update - script to update chip database using external +web-server. + ![CH341A EEPROM programmer](img/IMSProg_1.png) ![CH341A EEPROM programmer](img/IMSProg.png) @@ -80,115 +86,189 @@ Optionally if you want to use IMSProg_database_update script: `sudo apt-get install zenity wget` -:information_source: Debian < 11 and Ubuntu < 20.04 are not supported, you may unable to have it working on them. +:information_source: Debian < 11 and Ubuntu < 20.04 are not supported, you may +unable to have it working on them. ## How to use: ## Chip programmer ### Connecting -- Insert the chip into the appropriate slot of the CH341A programmer. The `24xxx` and `25xxx` series chips must be inserted directly, according to the markings on the PCB of the CH341A programmer. The `93xxx` series chips must be inserted into the `93xxx adapter` and the adapter into the marking `25xxx` programmer slot. +- Insert the chip into the appropriate slot of the CH341A programmer. The +`24xxx` and `25xxx` series chips must be inserted directly, according to the +markings on the PCB of the CH341A programmer. The `93xxx` series chips must be +inserted into the `93xxx adapter` and the adapter into the marking `25xxx` +programmer slot. ![Adapter](img/93xxx_adapter.png) -- If the chip supply voltage is 1.8 volt he must be inserted in `1.8 volt adapter` and the adapter into needed programmer slot. +- If the chip supply voltage is 1.8 volt he must be inserted in +`1.8 volt adapter` and the adapter into needed programmer slot. ![Adapter](img/1_8_adapter.png) -- Plug the CH341A programmer into the USB socket of your computer and running the `IMSProg`. -- You can plug and unplug the programmer device (CH341A) to the USB port at any time when basic operations (reading, checking, and programming) are not in progress. -- Read more about adapters [here](https://github.com/bigbigmdm/Tools_for_CH341A_programmer?tab=readme-ov-file#Homemade-Chip-adapters). +- Plug the CH341A programmer into the USB socket of your computer and running +the `IMSProg`. +- You can plug and unplug the programmer device (CH341A) to the USB port at +any time when basic operations (reading, checking, and programming) are not in +progress. +- Read more about adapters +[here](https://github.com/bigbigmdm/Tools_for_CH341A_programmer?tab=readme-ov-file#Homemade-Chip-adapters). ### Chip type selecting -Select the type of chip used from the `Type` pop-up menu: `SPI FLASH` when using SPI NOR FLASH chips of the `25xxx` series, `24_EEPROM` when using I2C EEPROM of the `24xxx` series, `93_EEPROM` when using MicroWire EEPROM of the `93xxx` series. -When using `25xxx` series SPI NOR FLASH chips (Menu item `type` -> `SPI_FLASH`), the `Detect` button will be available. When the `Detect` button or ![Detect](img/test64.png) or `` is pressed, the JEDEC information is read from the chip and all parameters of that chip are loaded from the chip database. Any parameter (`size`, `page size`, `block size`, `VCC voltage`, `and 4-bit address length`) can be changed manually. You can manually enter the `Manufacture` and `Name` pop-up menu data - all other parameters will be automatically loaded from the chip database. -When using `24xxx` or `93xxx` or `95xxx` or `25xxx` SPI EEPROM (non NOR FLASH) series chips, it is necessary to manually enter the `Manufacture` and `Name` pop-up menu data - all other parameters will be automatically loaded from the chip database. +Select the type of chip used from the `Type` pop-up menu: `SPI FLASH` when +using SPI NOR FLASH chips of the `25xxx` series, `24_EEPROM` when using I2C +EEPROM of the `24xxx` series, `93_EEPROM` when using MicroWire EEPROM of the +`93xxx` series. +When using `25xxx` series SPI NOR FLASH chips (Menu item `type` -> `SPI_FLASH`), +the `Detect` button will be available. When the `Detect` button or +![Detect](img/test64.png) or `` is pressed, the JEDEC information is +read from the chip and all parameters of that chip are loaded from the chip +database. Any parameter (`size`, `page size`, `block size`, `VCC voltage`, +`and 4-bit address length`) can be changed manually. You can manually enter +the `Manufacture` and `Name` pop-up menu data - all other parameters will be +automatically loaded from the chip database. +When using `24xxx` or `93xxx` or `95xxx` or `25xxx` SPI EEPROM (non NOR FLASH) +series chips, it is necessary to manually enter the `Manufacture` and `Name` +pop-up menu data - all other parameters will be automatically loaded from the +chip database. ### Basic programmer operations -- Pressing `Read` or ![Read](img/read64.png) or `` to read data from the chip into the computer buffer. - -- Pressing ![Write](img/write64.png) or `` to write data from the computer buffer into the chip. +- Pressing `Read` or ![Read](img/read64.png) or `` to read data from +the chip into the computer buffer. + +- Pressing ![Write](img/write64.png) or `` to write data from the +computer buffer into the chip. -- Pressing ![Erase](img/erase64.png) or `` will erase all data in the chip. +- Pressing ![Erase](img/erase64.png) or `` will erase all data in the +chip. -- Pressing the ![Verify](img/verify64.png) or `` button causes the data in the chip and in the computer buffer to be compared. +- Pressing the ![Verify](img/verify64.png) or `` button causes the +data in the chip and in the computer buffer to be compared. The progress bar shows the progress of the read, erase, and verify operations. -- The `Auto` button is used to perform erase, write and verify operations in sequence. If one of these operations is not needed, you can uncheck the checkbox for that operation. +- The `Auto` button is used to perform erase, write and verify operations in +sequence. If one of these operations is not needed, you can uncheck the +checkbox for that operation. -- The ![Stop](img/stop64.png) or `` key is used to force interruption of chip read/write/erase/verify operations. +- The ![Stop](img/stop64.png) or `` key is used to force interruption +of chip read/write/erase/verify operations. - The `i` key show the connection chip to CH341A device image form. -- The `Main menu -> Programmer -> Chip info` or `` item shows the Serial Flash Discoverable Parameter (SFDP) register and the status registers of the SPI NOR flash memory chips. +- The `Main menu -> Programmer -> Chip info` or `` item shows the +Serial Flash Discoverable Parameter (SFDP) register and the status registers +of the SPI NOR flash memory chips. ![SFDP](img/sfdp_unblock_en.png) -If the SPI NOR FLASH chip is detected normally, but is not read (gives the message `Error reading sector 0`), then in the `Chip info` window you can change bits `BP4` and `BP3` to zero and press the `Write registers` button. Then repeat the chip reading operation. +If the SPI NOR FLASH chip is detected normally, but is not read (gives the +message `Error reading sector 0`), then in the `Chip info` window you can +change bits `BP4` and `BP3` to zero and press the `Write registers` button. +Then repeat the chip reading operation. ![SFDP](img/sfdp_unblock_en2.png) -If the SPI NOR FLASH chip is read unreliably (with a different checksum each time) and `Status Register 2` is available in the chip, you can change bits `DRV0` and `DRV1` to zero and press the Write Registers button. This will increase the power of the output stage of the `DO` pin of the chip. Then repeat the chip read operation. +If the SPI NOR FLASH chip is read unreliably (with a different checksum each +time) and `Status Register 2` is available in the chip, you can change bits +`DRV0` and `DRV1` to zero and press the Write Registers button. This will +increase the power of the output stage of the `DO` pin of the chip. Then +repeat the chip read operation. -For `25xxx`, `95xxx` series chips that have only one status register, the `Chip info` form is as follows: +For `25xxx`, `95xxx` series chips that have only one status register, the +`Chip info` form is as follows: ![SFDP](img/sr0_en.png) ### File operations -- The ![Save](img/save64.png) or `` button is used to save the computer buffer to a file. +- The ![Save](img/save64.png) or `` button is used to save the +computer buffer to a file. -- The ![Open](img/open64.png) or `` button is used to save the file in the computer buffer. +- The ![Open](img/open64.png) or `` button is used to save the file in +the computer buffer. -- The ![SavePart](img/saveBlock64.png) or `` button is used to save a part of the computer buffer to a file (the start address and length of the part must be entered). This operation can be used when splitting a binary data image into parts. +- The ![SavePart](img/saveBlock64.png) or `` button is used to +save a part of the computer buffer to a file (the start address and length of +the part must be entered). This operation can be used when splitting a binary +data image into parts. -- The ![LoadPart](img/loadBlock64.png) or `` button is used to load a small file to a certain address in the buffer. The data fragment in the buffer will be replaced with new data from the file. +- The ![LoadPart](img/loadBlock64.png) or `` button is used to +load a small file to a certain address in the buffer. The data fragment in the +buffer will be replaced with new data from the file. -- The ![Edit](img/chipEdit64.png) or `` button is used to invoke the chip database editor. +- The ![Edit](img/chipEdit64.png) or `` button is used to invoke the +chip database editor. -- The menu item `File / Import from Intel HEX` is used to save the Intel HEX file in the computer buffer. +- The menu item `File / Import from Intel HEX` is used to save the Intel HEX +file in the computer buffer. -- The menu item `File / Export to Intel HEX` is used to save the computer buffer to a file in Intel HEX format. +- The menu item `File / Export to Intel HEX` is used to save the computer buffer +to a file in Intel HEX format. ### Buffer (Hex editor) operations -The hexadecimal chip editor (right side of the screen) is used to display and modify buffer data. +The hexadecimal chip editor (right side of the screen) is used to display and +modify buffer data. -It contains the following controls: ![Undo](img/undo.png) undo, ![Redo](img/redo64.png) redo, and the ![Search](img/hexsearch64.png) search/replace. The `[Ctrl+A]` key used to update the CRC24 checksum. The `[Ctrl+G]` key used to to move the cursor to the entered address. +It contains the following controls: ![Undo](img/undo.png) undo, +![Redo](img/redo64.png) redo, and the ![Search](img/hexsearch64.png) +search/replace. The `[Ctrl+A]` key used to update the CRC24 checksum. The +`[Ctrl+G]` key used to to move the cursor to the entered address. ## Chip database editor ![Chip editor](img/chip_editor_eng.png) -Chip base editor - IMSProg_editor is a stand-alone program that can be launched from the `Development` menu or from the IMSProg program by clicking on ![Edit](img/chipEdit64.png). +Chip base editor - IMSProg_editor is a stand-alone program that can be launched +from the `Development` menu or from the IMSProg program by clicking on +![Edit](img/chipEdit64.png). -All operations in the editor become available only after loading a chip base file with .Dat extension. +All operations in the editor become available only after loading a chip base +file with .Dat extension. Menu `File`. -- `Open` or `[Ctrl+O]` or ![open](IMSProg_editor/img/open.png) allows you to load the data file. -- `Save` or `[Ctrl+S]` or ![save](IMSProg_editor/img/save.png) saves the chip parameter table to a database file. -- `Exit` or `[Ctrl+X]` or ![exit](IMSProg_editor/img/exit.png) - exits the editor. -- `Export to CSV format` or `[Ctrl+X]` or ![export](IMSProg_editor/img/tocsv.png) allows to unload data about chips in CSV format for further processing by spreadsheet software - LibreOffice Calc, OpenOffice Calc, Google Tables, etc. -- `Import from CSV file` or `[Ctrl+Shift+X]` or ![import](IMSProg_editor/img/import.png) - loads a table in CSV format and adds data from it to the existing data in the table. +- `Open` or `[Ctrl+O]` or ![open](IMSProg_editor/img/open.png) allows you to +load the data file. +- `Save` or `[Ctrl+S]` or ![save](IMSProg_editor/img/save.png) saves the chip +parameter table to a database file. +- `Exit` or `[Ctrl+X]` or ![exit](IMSProg_editor/img/exit.png) - exits the +editor. +- `Export to CSV format` or `[Ctrl+X]` or ![export](IMSProg_editor/img/tocsv.png) +allows to unload data about chips in CSV format for further processing by +spreadsheet software - LibreOffice Calc, OpenOffice Calc, Google Tables, etc. +- `Import from CSV file` or `[Ctrl+Shift+X]` or +![import](IMSProg_editor/img/import.png) - loads a table in CSV format and adds +data from it to the existing data in the table. Menu `Edit`. -- `Delete Rows` or `Del` or ![delete](IMSProg_editor/img/del.png) - deletes one or more rows. -- `Add Row` or `Ins` or ![add](IMSProg_editor/img/plus.png) - adds a row below the selected row and copies all data from the selected row to the new row. -- `Move Up` or '[Ctrl+Up]` or ![up](IMSProg_editor/img/undo.png) - moves the selected line up. -- `Move Down' or `[Ctrl+Down]` or ![down](IMSProg_editor/img/redo.png) - moves the selected row down. -- `Import selected rows to CSV format` or ![import](IMSProg_editor/img/import.png) - saves selected rows to CSV file. +- `Delete Rows` or `Del` or ![delete](IMSProg_editor/img/del.png) - deletes one +or more rows. +- `Add Row` or `Ins` or ![add](IMSProg_editor/img/plus.png) - adds a row below +the selected row and copies all data from the selected row to the new row. +- `Move Up` or '[Ctrl+Up]` or ![up](IMSProg_editor/img/undo.png) - moves the +selected line up. +- `Move Down' or `[Ctrl+Down]` or ![down](IMSProg_editor/img/redo.png) - moves +the selected row down. +- `Import selected rows to CSV format` or ![import](IMSProg_editor/img/import.png) +- saves selected rows to CSV file. -The most recent version of the chip database file can be downloaded from this page in both .Dat and .csv formats. +The most recent version of the chip database file can be downloaded from this +page in both .Dat and .csv formats. ## Chip updater - IMSProg_database_update uses the zenity graphical Gnome utility. Once started, it copies the downloaded database to the ~/.local/imsprog folder. The script then displays the number of of chips in the database before and after the upgrade. + IMSProg_database_update uses the zenity graphical Gnome utility. Once started, + it copies the downloaded database to the ~/.local/imsprog folder. The script + then displays the number of of chips in the database before and after the + upgrade. ## List of supported chips ### I2C EEPROM -24C01, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, 24C128, 24C256, 24C512, 24C1024 +24C01, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, 24C128, 24C256, 24C512, +24C1024 ### MicroWire EEPROM 93C46, 93C56, 93C66, 93C76, 93C86 @@ -196,52 +276,82 @@ The most recent version of the chip database file can be downloaded from this pa ### Serial SPI Bus EEPROM - ST -M95010, M95020, M95040, M95080, M95160, M95320, M95640, M95128, M95256, M95512, M95M01, M95M02 +M95010, M95020, M95040, M95080, M95160, M95320, M95640, M95128, M95256, M95512, +M95M01, M95M02 - ATMEL -AT25010, AT25020, AT25040, AT25080, AT25160, AT25320, AT25640, AT25128, AT25256, AT25F512, AT25F1024 +AT25010, AT25020, AT25040, AT25080, AT25160, AT25320, AT25640, AT25128, AT25256, +AT25F512, AT25F1024, AT25F2048, AT25F4096 - MICROCHIP -25AA010, 25AA020, 25AA040, 25AA080, 25AA160, 25AA320, 25AA640, 25AA128, 25AA256, 25AAF512, 25AAF1024, 25LC010, 25LC020, 25LC040, 25LC080, 25LC160, 25LC320, 25LC640, 25LC128, 25LC256, 25LC512, 25LC1024 +25AA010, 25AA020, 25AA040, 25AA080, 25AA160, 25AA320, 25AA640, 25AA128, 25AA256, +25AAF512, 25AAF1024, 25LC010, 25LC020, 25LC040, 25LC080, 25LC160, 25LC320, +25LC640, 25LC128, 25LC256, 25LC512, 25LC1024 - ONSEMI -CAT25C01, CAT25C02, CAT25C04, CAT25C08, CAT25C16, CAT25C32, CAT25C64, CAT25C128, CAT25C256, CAT25C512 +CAT25C01, CAT25C02, CAT25C04, CAT25C08, CAT25C16, CAT25C32, CAT25C64, CAT25C128, +CAT25C256, CAT25C512 + ### SPI NOR Flash - SPANSION -FL016AIF, S25FL016P, S25FL032P, FL064AIF, S25FL064P, S25FL256S, S25FL128P, S25FL129P, S25FL116K, S25FL132K, S25FL164K +FL016AIF, S25FL016P, S25FL032P, FL064AIF, S25FL064P, S25FL256S, S25FL128P, +S25FL129P, S25FL204K, S25FL208K, S25FL116K, S25FL132K, S25FL164K - XTX -XT25F02E, XT25F04D, XT25F08B, XT25F16B, XT25F32F, XT25F64F, XT25F128F, XT25W02E, XT25W04D, XT25Q08D(1.8V), XT25Q16D(1.8V), XT25Q64D(1.8V), XT25F128D(1.8V) +XT25F02E, XT25F04D, XT25F08B, XT25F16B, XT25F32F, XT25F64F, XT25F128F, +XT25F256B, XT25W02E, XT25W04D, XT25Q08D(1.8V), XT25Q16D(1.8V), XT25Q64D(1.8V), +XT25F128D(1.8V) + +- ACE + +ACE25AC512G, ACE25AC100G, ACE25AC200G, ACE25AC400G - EON -EN25B10T, EN25B20T, EN25B40T, EN25B80T -EN25B16T, EN25B32T, EN25B64T, EN25F64, EN25Q40A, EN25Q80B, EN25Q16, EN25Q32C, EN25Q64, EN25Q128, EN25F10A, EN25F20A, EN25F40, EN25F80, EN25F16, EN25F32, EN25S10A(1.8V), EN25S20A(1.8V), EN25S40A(1.8V), EN25S80B(1.8V), EN25S16B(1.8V), EN25S64A(1.8V), EN25QE32A, EN25E10A, EN25E40A, EN25SE16A(1.8V), EN25SE32A(1.8V), EN25T80, EN25QA32B, EN25QA64A, EN25QA128A, EN25QW16A, EN25QW32A, EN25QH16, EN25QH32B, EN25QH64A, EN25QH128A, EN25Q256, EN25QX64A, EN25QX128A, EN25QX256A, EN25QY256A, EN25SX64A(1.8V), EN25SX128A(1.8V) +EN25B10T, EN25B20T, EN25B40T, EN25B80T, EN25B16T, EN25B32T, EN25B64T, EN25P64, +EN25Q40A, EN25Q80B, EN25Q16, EN25Q32C, EN25Q64, EN25Q128, EN25F10A, EN25F20A, +EN25F40, EN25F80, EN25F16, EN25F32, EN25S10A(1.8V), EN25S20A(1.8V), +EN25S40A(1.8V), EN25S80B(1.8V), EN25S16B(1.8V), EN25S64A(1.8V), EN25QE16A, +EN25QE32A, EN25E10A, EN25E40A, EN25SE16A(1.8V), EN25SE32A(1.8V), EN25T80, +EN25T16, EN25QA32B, EN25QA64A, EN25QA128A, EN25QW16A, EN25QW32A, EN25QH16, +EN25QH32B, EN25QH64A, EN25QH128A, EN25Q256, EN25QX64A, EN25QX128A, EN25QX256A, +EN25QY256A, EN25SX64A(1.8V), EN25SX128A(1.8V) - ATMEL -AT26DF161, AT25DF321 +AT25LS321(1.8V), AT25LS128A(1.8V), AT25LS641(1.8V), AT26DF161, AT25DF321, +AT25DF641 - MICRON -M25P10, M25P20, M25P40, M25P80, M25P016, M25P32, M25P64, M25P128, N25Q032A, N25Q064A, MT25QL64AB, N25Q128A, MT25QL128AB, N25Q256A, MT25QL256AB, MT25QL512AB, N25Q032A(1.8V), N25Q064A(1.8V), MT25QU64AB(1.8V), N25Q128A(1.8V), MT25QU128AB(1.8V), MT25QU256AB(1.8V), MT25QU512AB(1.8V) +M25P10, M25P20, M25P40, M25P80, M25P016, M25P32, M25P64, M25P128, N25Q032A, +N25Q064A, MT25QL64AB, N25Q128A, MT25QL128AB, N25Q256A, MT25QL256AB, MT25QL512AB, +N25Q032A(1.8V), N25Q064A(1.8V), MT25QU64AB(1.8V), N25Q128A(1.8V), +MT25QU128AB(1.8V), MT25QU256AB(1.8V), MT25QU512AB(1.8V) - XMC -XM25QH10B, XM25QH20B, XM25QH40B, XM25QH80B, XM25QH16C, XM25QH32B, XM25QH64C, XM25QH128C, XM25QH256C, XM25QH512C, XM25LU64C(1.8V), XM25LU128C(1.8V), XM25QU256C(1.8V), XM25QU512C(1.8V), XM25QW16C, XM25QW32C, XM25QW64C, XM25QW128C, XM25QW256C, XM25QW512C, XM25QU41B(1.8V), XM25QU80B(1.8V), XM25QU16C(1.8V), XM25LU32C(1.8V), XM25QH32A, XM25QH64A, XM25QH128A +XM25QH10B, XM25QH20B, XM25QH40B, XM25QH80B, XM25QH16C, XM25QH32B, XM25QH64C, +XM25QH128C, XM25QH256C, XM25QH512C, XM25LU64C(1.8V), XM25LU128C(1.8V), +XM25QU256C(1.8V), XM25QU512C(1.8V), XM25QW16C, XM25QW32C, XM25QW64C, XM25QW128C, +XM25QW256C, XM25QW512C, XM25QU41B(1.8V), XM25QU80B(1.8V), XM25QU16C(1.8V), +XM25LU32C(1.8V), XM25QH32A, XM25QH64A, XM25QH128A - AMIC -A25L10PU, A25L20PU, A25L40PU, A25L80PU, A25L16PU, A25L10PT, A25L20PT, A25L40PT, A25L80PT, A25L16PT, A25L010, A25L020, A25L040, A25L040, A25L080, A25L016, A25L032, A25LQ080, A25LQ16, A25LQ32, A25LQ64 +AT25L05P, A25L10PU, A25L20PU, A25L40PU, A25L80PU, A25L16PU, A25L10PT, A25L20PT, +A25L40PT, A25L80PT, A25L16PT, A25L010, A25L020, A25L040, A25L040, A25L080, +A25L016, A25L032, A25LQ080, A25LQ16, A25LQ32, A25LQ64 - EXCELSEMI -ES25P10, ES25P20, ES25P40, ES25P80, ES25P16, ES25P32, ES25M40A, ES25M80A, ES25M16A +ES25P10, ES25P20, ES25P40, ES25P80, ES25P16, ES25P32, ES25M40A, ES25M80A, +ES25M16A - DOUQI @@ -249,7 +359,10 @@ DQ25Q64AS - Zbit -ZB25LD10A(1.8V), ZB25LD20A(1.8V), ZB25LD40B(1.8V), ZB25LD80(1.8V), ZB25D10A, ZB25D20A, ZB25D40B, ZB25D80B, ZB25VQ16, ZB25VQ32, ZB25VQ64, ZB25VQ128, ZB25LQ16(1.8V), ZB25LQ32(1.8V), ZB25LQ64(1.8V), ZB25LQ128(1.8V), ZB25VQ20A, ZB25VQ40A, ZB25VQ80A, ZB25VQ16A +ZB25LD10A(1.8V), ZB25LD20A(1.8V), ZB25LD40B(1.8V), ZB25LD80(1.8V), ZB25D10A, +ZB25D20A, ZB25D40B, ZB25D80B, ZB25VQ16, ZB25VQ32, ZB25VQ64, ZB25VQ128, +ZB25LQ16(1.8V), ZB25LQ32(1.8V), ZB25LQ64(1.8V), ZB25LQ128(1.8V), ZB25VQ20A, +ZB25VQ40A, ZB25VQ80A, ZB25VQ16A, ZD25D20, ZD25D40, ZD25D80 - ONSemi @@ -257,15 +370,21 @@ LE25U20AMB, LE25U40CMC - Boya -BY25Q05AW, BY25Q10AW, BY25Q20BL(1.8V), BY25Q40BL(1.8V), BY25Q80AW(1.8V), BY25Q16BL(1.8V), BY25D05AS, BY25D10AS, BY25D20AS, BY25D40AS, BY25Q80BS, BY25Q16BS, BY25Q32BS, BY25Q64AS, BY25Q128AS, BY25Q256ES, BY25Q10AL(1.8V), BY25Q20AL(1.8V), BY25Q40AL(1.8V), BY25Q32AL(1.8V), BY25Q64AL(1.8V), BY25Q128EL(1.8V) +BY25Q05AW, BY25Q10AW, BY25Q20BL(1.8V), BY25Q40BL, BY25Q80AW(1.8V), +BY25Q16BL(1.8V), BY25D05AS, BY25D10AS, BY25D20AS, BY25D40AS, BY25Q80BS, +BY25Q16BS, BY25Q32BS, BY25Q64AS, BY25Q128AS, BY25Q256ES, BY25Q10AL(1.8V), +BY25Q20AL(1.8V), BY25Q40AL(1.8V), BY25Q32AL(1.8V), BY25Q64AL(1.8V), +BY25Q128EL(1.8V) - PFLASH -Pm25LQ512B, Pm25LQ010B, Pm25LQ020B, PM25LQ016, PM25LQ032, PM25LQ064, PM25LQ128, Pm25LQ040B +Pm25LQ512B, Pm25LQ010B, Pm25LD020, Pm25LQ020B, PM25LQ016, PM25LQ032, PM25LQ064, +PM25LQ128, Pm25LV010, Pm25LV020, Pm25LQ040B, Pm25LV040 - Puya -P25Q06H, P25Q40H, P25Q11H, P25Q21H, P25Q10H, P25Q20H, P25Q40H, P25Q80H, P25Q16H, P25Q32H, P25Q64H, P25Q128H +P25Q06H, P25Q40H, PY25Q128HA, PY25Q256HB, PY25Q512HB, P25Q11H, P25Q21H, P25Q10H, +P25Q20H, P25Q80H, P25Q16H, P25Q32H, P25Q64H, P25Q128H - ESMT @@ -273,27 +392,51 @@ F25L004A, F25L008A, F25L016, F25L032, F25L064, F25L16QA, F25L32QA, F25L64QA - ISSI -IS25LQ010, IS25LQ020, IS25LP080D, IS25LP016D, IS25LP032D, IS25LP064D, IS25LP128F, IS25LP256D, IS25LP512D, IS25WP040D(1.8V), IS25WP080D(1.8V), IS25WP016D(1.8V), IS25WP032D(1.8V), IS25WP064D(1.8V), IS25WP128F(1.8V), IS25WP256D(1.8V), IS25WP512D(1.8V) +IS25WQ020(1.8V), IS25WQ040(1.8V), IS25WQ080(1.8V), IS25LQ010, IS25LQ020, +IS25LP040E, IS25LP080D, IS25LP016D, IS25LP032D, IS25LP064D, IS25LP128F, +IS25LP256D, IS25LP512D, IS25WP512E(1.8V), IS25WP010E(1.8V), IS25WP020E(1.8V), +IS25WP040D(1.8V), IS25WP080D(1.8V), IS25WP016D(1.8V), IS25WP032D(1.8V), +IS25WP064D(1.8V), IS25WP128F(1.8V), IS25WP256D(1.8V), IS25WP512D(1.8V) - Fudan -FM25W04, FM25W16, FM25W32, FM25W64, FM25W128, FM25Q04, FM25Q08, FM25Q16, FS25Q32, FS25Q64, FS25Q128 +FM25W02, FM25W04, FM25W16, FM25W32, FM25W64, FM25W128, FM25F005, FM25F01B, +FM25F02A, FM25F04A, FM25Q04, FM25Q08, FM25Q16, FS25Q32, FS25Q64, FS25Q128 - Zetta -ZD25Q64B, ZD25LQ128(1.8V), ZD25LQ64(1.8V), ZD25WD20B, ZD25WD40B, ZD25Q80C, ZD25Q16B, ZD25Q32C +ZD25Q64B, ZD25LQ128(1.8V), ZD25LQ64(1.8V), ZD25WD20B, ZD25WD40B, ZD25Q80C, +ZD25Q16B, ZD25Q32C - PCT -PCT25VF016B, PCT25VF032B, PCT25VF064C, PCT25VF020B, PCT25VF040B, PCT25VF080B, PCT26VF016, PCT26VF032, PCT25VF010A +PCT25VF016B, PCT25VF032B, PCT25VF064C, PCT25VF020B, PCT25VF040B, PCT25VF080B, +PCT26VF016, PCT26VF032, PCT25VF010A - MXIC -MX25L8005M, MX25L1605D, MX25L3205D, MX25L6405D, MX25L12805D, MX25L25635E, MX25L51245G, MX25U5121E(1.8V), MX25U1001E(1.8V), MX25U2035F(1.8V), MX25U4035F(1.8V), MX25U80356(1.8V), MX25U1632F(1.8V), MX25U3232F(1.8V), MX25U6432F(1.8V), MX25U12832F(1.8V), MX25U25643G(1.8V), MX25U51245G(1.8V), MX25R2035F, MX25R4035F, MX25R8035F, MX25R1635F, MX25R3235F, MX25R6435F +MX25L512E, MX25L1006E, MX25L2005, MX25L4005A, MX25L8005M, MX25L1605D, +MX25L3205D, MX25L6405D, MX25L12805D, MX25L25635E, MX25L51245G, MX25L5121E, +MX25L1021E, MX25L1633E, MX25L1635E, MX25U5121E(1.8V), MX25U1001E(1.8V), +MX25U2035F(1.8V), MX25U4035F(1.8V), MX25U80356(1.8V), MX25U1632F(1.8V), +MX25U3232F(1.8V), MX25U6432F(1.8V), MX25U12832F(1.8V), MX25U25643G(1.8V), +MX25U51245G(1.8V), MX25L1655D, MX25L6455E, MX25L12855E, MX25L25655E, MX25R1035F, +MX25R2035F, MX25R4035F, MX25R8035F, MX25R1635F, MX25R3235F, MX25R6435F, +MX25L3225D, MX25L3255D - GigaDevice -GD25F40, GD25F80, GD25D40, GD25D80, GD25D05C, GD25D10C, GD25Q20C, GD25Q40C, GD25Q80C, GD25Q16C, GD25Q32, GD25Q64CSIG, GD25Q128CSIG, GD25Q256CSIG, GD25LD05C(1.8V), GD25LD10C(1.8V), GD25LD20C(1.8V), GD25LD40C(1.8V), GD25LQ80C(1.8V), GD25LQ16C(1.8V), GD25LQ32E(1.8V), GD25LQ64E(1.8V), GD25LQ128(1.8V), GD25LQ256D(1.8V), GD25WD05C, GD25WD10C, GD25WD20E, GD25WD40E, GD25WD80C, GD25WQ20E, GD25WQ40E, GD25WQ80E, GD25WQ16E, GD25WQ32E, GD25WQ64E, GD25WQ128E, GD25WB256E, GD25LB512ME(1.8V), YC25Q128 +GD25F40, GD25F80, GD25D40, GD25D80, GD25D05C, GD25D10C, GD25Q20C, GD25Q40C, +GD25Q80C, GD25Q16C, GD25Q32, GD25Q64CSIG, GD25Q128CSIG, GD25Q256CSIG, GD25VQ21B, +GD25VQ40C, GD25VQ80C, GD25VQ16C, GD25LD05C(1.8V), GD25LD10C(1.8V), +GD25LD20C(1.8V), GD25LD40C(1.8V), GD25LQ80C, GD25LQ16C, GD25LQ32E, +GD25LQ64E(1.8V), GD25LQ128(1.8V), GD25LQ256D(1.8V), GD25WD05C, GD25WD10C, +GD25WD20E, GD25WD40E, GD25WD80C, GD25WQ20E, GD25WQ40E, GD25WQ80E, GD25WQ16E, +GD25WQ32E, GD25WQ64E, GD25WQ128E, GD25WB256E, GD25LB512ME(1.8V), YC25Q128 + +- Nantronix + +N25S80, N25S32 - PARAGON @@ -301,14 +444,20 @@ PN25F08, PN25F16, PN25F32, PN25F64, PN25F128 - WINBOND -W25P80, W25P16, W25P32, W25X05, W25X10, W25X20, W25X40, W25X80, W25X16, W25X32VS, W25X64, W25Q20CL, W25Q40BV, W25Q80BL, W25Q16DV, W25Q32BV, W25Q64BV, W25Q128BV, W25Q256FV, W25Q20BW(1.8V), W25Q80, W25Q10EW(1.8V), W25Q20EW(1.8V), W25Q40EW(1.8V), W25Q80EW(1.8V), W25Q16JW(1.8V), W25Q32FW(1.8V), W25Q64DW(1.8V), W25Q128FW(1.8V), W25Q256JW(1.8V), W25M512JW(1.8V), W25Q512JV, W25M512JV, W25Q32JW(1.8V) +W25P80, W25P16, W25P32, W25P64, W25X05, W25X10, W25X20, W25X40, W25X80, W25X16, +W25X32VS, W25X64, W25Q05CL, W25Q10Cl, W25Q20CL, W25Q40BV, W25Q80BL, W25Q16DV, +W25Q32BV, W25Q64BV, W25Q128BV, W25Q256FV, W25Q20BW(1.8V), W25Q80, +W25Q10EW(1.8V), W25Q20EW(1.8V), W25Q40EW(1.8V), W25Q80EW(1.8V), W25Q16JW(1.8V), +W25Q32FW(1.8V), W25Q64DW(1.8V), W25Q128FW(1.8V), W25Q256JW(1.8V), +W25M512JW(1.8V), W25Q512JV, W25M512JV, W25Q32JW(1.8V) - Fidelix -FM25Q04A, FM25Q08A, FM25Q16A, FM25Q32A, FM25Q64A, FM25Q128A, FM25M04A(1.8V), FM25M08A(1.8V) -FM25M16A(1.8V), FM25M32B(1.8V), FM25M64A(1.8V) +FM25Q04A, FM25Q08A, FM25Q16A, FM25Q32A, FM25Q64A, FM25Q128A, FM25M04A(1.8V), +FM25M08A(1.8V), FM25M16A(1.8V), FM25M32A(1.8V), FM25M64A(1.8V), FM25M4AA(1.8V) -The latest version of the chip database can be found [here](https://antenna-dvb-t2.ru/dl_all/IMSProg.Dat). +The latest version of the chip database can be found +[here](https://antenna-dvb-t2.ru/dl_all/IMSProg.Dat). You can download it and copy it to the ~/.local/imsprog folder: `cp IMSProg.Dat ~/.local/imsprog` @@ -316,20 +465,23 @@ You can download it and copy it to the ~/.local/imsprog folder: [![Watch the video](img/IMSProg_1_0_24.mp4)](img/IMSProg_1_0_24.mp4) ## Packages -- There is a work in progress for add IMSProg to official `Debian` (and derivatives repositories) - - For some Ubuntu versions you can use this PPA by adding `ppa:bigmdm/imsprog` to your system's Software Sources. +- There is a work in progress for add IMSProg to official `Debian` (and +derivatives repositories) + + For some Ubuntu versions you can use this PPA by adding `ppa:bigmdm/imsprog` + to your system's Software Sources. ``` sudo add-apt-repository ppa:bigmdm/imsprog sudo apt update ``` - Is also possible manually build deb package using `debian/latest` branch. + Is also possible manually build deb package using `debian/latest` branch. Packaging status -- The `RPM package` by [Red Soft](https://redos.red-soft.ru/) can be downloaded [here](http://repo.red-soft.ru/redos/7.3/x86_64/updates/imsprog-1.3.1-1.el7.x86_64.rpm) +- The `RPM package` by [Red Soft](https://redos.red-soft.ru/) can be downloaded +[here](http://repo.red-soft.ru/redos/7.3/x86_64/updates/imsprog-1.3.1-1.el7.x86_64.rpm) - The `RPM package` by [ALT Linux](https://packages.altlinux.org/en/sisyphus/srpms/IMSProg/) - The `RPM package` by [ROSA Linux](https://mirror.rosalinux.ru/rosa/rosa2021.1/repository/x86_64/contrib/release/IMSProg-1.3.1-1-rosa2021.1.x86_64.rpm) - The `ARCH AUR repository` by [kjkent](https://github.com/kjkent) is [here](https://aur.archlinux.org/packages/imsprog) @@ -339,37 +491,37 @@ sudo apt update ``` IMSProg _files_ _folder_ -=================================================================================== -IMSProg /usr/bin -IMSProg_editor /usr/bin -IMSProg_programmer/other/IMSProg_database_update /usr/bin - -IMSProg_programmer/database/IMSProg.Dat /usr/share/imsprog - ~/.local/share/imsprog - -IMSProg_programmer/other/99-CH341.rules /lib/udev/rules.d - -IMSProg_programmer/other/index.html /usr/share//doc/imsprog/html - -IMSProg_programmer/language/chipProgrammer_ru_RU.qm /usr/share/imsprog -IMSProg_programmer/language/chipProgrammer_es_ES.qm /usr/share/imsprog -IMSProg_programmer/language/chipProgrammer_de_DE.qm /usr/share/imsprog -IMSProg_programmer/language/chipProgrammer_zH_CN.qm /usr/share/imsprog -IMSProg_programmer/language/chipProgrammer_uk_UA.qm /usr/share/imsprog -IMSProg_programmer/language/chipProgrammer_hu_HU.qm /usr/share/imsprog -IMSProg_programmer/language/chipProgrammer_pt_BR.qm /usr/share/imsprog - -IMSProg_editor/language/chipEditor_ru_RU.qm /usr/share/imsprog -IMSProg_editor/language/chipEditor_de_DE.qm /usr/share/imsprog -IMSProg_editor/language/chipEditor_es_ES.qm /usr/share/imsprog -IMSProg_editor/language/chipEditor_zh_CN.qm /usr/share/imsprog -IMSProg_editor/language/chipEditor_uk_UA.qm /usr/share/imsprog -IMSProg_editor/language/chipEditor_hu_HU.qm /usr/share/imsprog -IMSProg_editor/language/chipEditor_pt_BR.qm /usr/share/imsprog - -IMSProg_programmer/other/IMSProg.desktop /usr/share/applications -IMSProg_programmer/other/IMSProg_editor.desktop /usr/share/applications -IMSProg_programmer/other/IMSProg_database_update.desktop /usr/share/applications +================================================================================ +IMSProg /usr/bin +IMSProg_editor /usr/bin +IMSProg_programmer/other/IMSProg_database_update /usr/bin + +IMSProg_programmer/database/IMSProg.Dat /usr/share/imsprog + ~/.local/share/imsprog + +IMSProg_programmer/other/99-CH341.rules /lib/udev/rules.d + +IMSProg_programmer/other/index.html /usr/share//doc/imsprog/html + +IMSProg_programmer/language/chipProgrammer_ru_RU.qm /usr/share/imsprog +IMSProg_programmer/language/chipProgrammer_es_ES.qm /usr/share/imsprog +IMSProg_programmer/language/chipProgrammer_de_DE.qm /usr/share/imsprog +IMSProg_programmer/language/chipProgrammer_zH_CN.qm /usr/share/imsprog +IMSProg_programmer/language/chipProgrammer_uk_UA.qm /usr/share/imsprog +IMSProg_programmer/language/chipProgrammer_hu_HU.qm /usr/share/imsprog +IMSProg_programmer/language/chipProgrammer_pt_BR.qm /usr/share/imsprog + +IMSProg_editor/language/chipEditor_ru_RU.qm /usr/share/imsprog +IMSProg_editor/language/chipEditor_de_DE.qm /usr/share/imsprog +IMSProg_editor/language/chipEditor_es_ES.qm /usr/share/imsprog +IMSProg_editor/language/chipEditor_zh_CN.qm /usr/share/imsprog +IMSProg_editor/language/chipEditor_uk_UA.qm /usr/share/imsprog +IMSProg_editor/language/chipEditor_hu_HU.qm /usr/share/imsprog +IMSProg_editor/language/chipEditor_pt_BR.qm /usr/share/imsprog + +IMSProg_programmer/other/IMSProg.desktop /usr/share/applications +IMSProg_programmer/other/IMSProg_editor.desktop /usr/share/applications +IMSProg_programmer/other/IMSProg_database_update.desktop /usr/share/applications IMSProg_editor/other/IMSProg_editor.1.gz /usr/share/man/man1 IMSProg_programmer/other/IMSProg.1.gz /usr/share/man/man1 @@ -444,8 +596,10 @@ The end record is 0x44 (68) zero bytes. ## Licensing Copyright (C) 2023 - 2024 Mikhail Medvedev. -This project use [GPL-3+ License](https://www.gnu.org/licenses/gpl-3.0.html), some parts taken from project [SNANDer](https://github.com/McMCCRU/SNANDer/commits?author=McMCCRU) -are [GPL-2+](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) and from [QHexEdit2](https://github.com/Simsys/qhexedit2) is [LGPL-2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html). +This project use [GPL-3+ License](https://www.gnu.org/licenses/gpl-3.0.html), +some parts taken from project [SNANDer](https://github.com/McMCCRU/SNANDer/commits?author=McMCCRU) +are [GPL-2+](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) and from +[QHexEdit2](https://github.com/Simsys/qhexedit2) is [LGPL-2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html). ## Translations