Giter VIP home page Giter VIP logo

bigbigmdm / imsprog Goto Github PK

View Code? Open in Web Editor NEW
170.0 7.0 29.0 39.07 MB

IMSProg - software for CH341A-based programmers to work with I2C, SPI and MicroWire EEPROM/Flash chips

Home Page: https://antenna-dvb-t2.ru/IMSProg.php

License: GNU General Public License v3.0

C++ 17.12% QMake 0.39% C 24.60% CMake 0.69% HTML 56.88% Shell 0.32%
chip-programmer prom-writer bios eeprom i2c microwire spi uefi

imsprog's Introduction

IMSProg

IMSProg - I2C, MicroWire and SPI EEPROM/Flash chip Programmer - is a program to read, write EEPROM chips use the CH341A programmer device.

CH341A black CH341A green

The IMSProg makes respect to QHexEdit2 hex editor and SNANDer programmer. 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:

  1. IMSProg - the chip programmer (it's the main part).

  2. IMSProg_editor - chip database editor.

  3. IMSProg_database_update - script to update chip database using external web-server.

CH341A EEPROM programmer

CH341A EEPROM programmer

Compiling programmer

git clone https://github.com/bigbigmdm/IMSProg.git && cd IMSProg
cd IMSProg_programmer
mkdir build
cd build
cmake ..
make -j`nproc`
sudo make install

Compiling editor

cd IMSProg_editor
mkdir build
cd build
cmake ..
make -j`nproc`
sudo make install

These commands are included in the build_all.sh file.

System software requirements

For build are needed:

  • g++ or clang
  • CMake
  • libusb 1.0
  • Qt5
  • Qt5 Qt5LinguistTools
  • pkgconf or pkg-config
  • udev

On Debian and derivatives:

sudo apt-get install cmake g++ libusb-1.0-0-dev qtbase5-dev qttools5-dev pkgconf

On Debian >=13 and Ubuntu >=23.10:

sudo apt-get install systemd-dev

On older:

sudo apt-get install udev

Optionally if you want to use IMSProg_database_update script:

  • zenity
  • wget

sudo apt-get install zenity wget

ℹ️ 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.

Adapter

  • 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

  • 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.

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 or <Ctrl+D> 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 or <Ctrl+R> to read data from the chip into the computer buffer.

  • Pressing Write or <Ctrl+W> to write data from the computer buffer into the chip.

  • Pressing Erase or <Ctrl+E> will erase all data in the chip.

  • Pressing the Verify or <Ctrl+T> 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 Stop or <Ctrl+I> 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 <Ctrl+P> item shows the Serial Flash Discoverable Parameter (SFDP) register and the status registers of the SPI NOR flash memory chips.

SFDP

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

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:

SFDP

File operations

  • The Save or <Ctrl+S> button is used to save the computer buffer to a file.

  • The Open or <Ctrl+O> button is used to save the file in the computer buffer.

  • The SavePart or <Ctrl+Shift-S> 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 or <Ctrl+Shift-S> 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 or <Ctrl+Q> 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 / 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.

It contains the following controls: Undo undo, Redo redo, and the Search 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

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.

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 allows you to load the data file.
  • Save or [Ctrl+S] or save saves the chip parameter table to a database file.
  • Exit or [Ctrl+X] or exit - exits the editor.
  • Export to CSV format or [Ctrl+X] or export 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 - 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 - deletes one or more rows.
  • Add Row or Ins or add - 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 - moves the selected line up.
  • Move Down' or [Ctrl+Down]` or down - moves the selected row down.
  • Import selected rows to CSV format or import
  • 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.

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.

List of supported chips

I2C EEPROM

24C01, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, 24C128, 24C256, 24C512, 24C1024

MicroWire EEPROM

93C46, 93C56, 93C66, 93C76, 93C86

Serial SPI Bus EEPROM

  • ST

M95010, M95020, M95040, M95080, M95160, M95320, M95640, M95128, M95256, M95512, M95M01, M95M02

  • ATMEL

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

  • ONSEMI

CAT25C01, CAT25C02, CAT25C04, CAT25C08, CAT25C16, CAT25C32, CAT25C64, CAT25C128, CAT25C256, CAT25C512

SPI NOR Flash

  • SPANSION

FL016AIF, S25FL016P, S25FL032P, FL064AIF, S25FL064P, S25FL256S, S25FL128P, S25FL129P, S25FL204K, S25FL208K, S25FL116K, S25FL132K, S25FL164K

  • XTX

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, 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

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)

  • 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

  • AMIC

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

  • DOUQI

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, ZD25D20, ZD25D40, ZD25D80

  • ONSemi

LE25U20AMB, LE25U40CMC

  • Boya

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, Pm25LD020, Pm25LQ020B, PM25LQ016, PM25LQ032, PM25LQ064, PM25LQ128, Pm25LV010, Pm25LV020, Pm25LQ040B, Pm25LV040

  • Puya

P25Q06H, P25Q40H, PY25Q128HA, PY25Q256HB, PY25Q512HB, P25Q11H, P25Q21H, P25Q10H, P25Q20H, P25Q80H, P25Q16H, P25Q32H, P25Q64H, P25Q128H

  • ESMT

F25L004A, F25L008A, F25L016, F25L032, F25L064, F25L16QA, F25L32QA, F25L64QA

  • ISSI

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

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

  • PCT

PCT25VF016B, PCT25VF032B, PCT25VF064C, PCT25VF020B, PCT25VF040B, PCT25VF080B, PCT26VF016, PCT26VF032, PCT25VF010A

  • MXIC

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, 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

PN25F08, PN25F16, PN25F32, PN25F64, PN25F128

  • WINBOND

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), FM25M32A(1.8V), FM25M64A(1.8V), FM25M4AA(1.8V)

The latest version of the chip database can be found here. You can download it and copy it to the ~/.local/imsprog folder:

cp IMSProg.Dat ~/.local/imsprog

Watch the video

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.

sudo add-apt-repository ppa:bigmdm/imsprog
sudo apt update

Is also possible manually build deb package using debian/latest branch.

Packaging status

Project structure

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_editor/other/IMSProg_editor.1.gz                    /usr/share/man/man1
IMSProg_programmer/other/IMSProg.1.gz                       /usr/share/man/man1
IMSProg_programmer/other/IMSProg_database_update.1.gz       /usr/share/man/man1

IMSProg_programmer/img/IMSProg64.png                        /usr/share/pixmaps
IMSProg_programmer/img/IMSProg_database_update.png          /usr/share/pixmaps
IMSProg_editor/img/chipEdit64.png                           /usr/share/pixmaps

Chip database format

IMSProg.Dat file structure:

Chip string lenght: 0x44 (68) bytes;

offset	 Size   Value
00 -     2F     ASCII Chip type, Name and Manufacture, 0x00 filling
30        1     NOR FLASH Chip Size code   / 0x00 - other chips
31        1     NOR FLASH Chip ID Code     / 0x00 - other chips
32        1     NOR FLASH Manufacture code / 0x00 - other chips
33              0x00
34        4     Chip Size
35 	
36 	  
37 
38        2     Sector size
39 
3A        1     Binary chip type:
                - 0x00 - SPI NOR FLASH 
                - 0x01 - 24xxx I2C
                - 0x02 - 93xxx MicroWire
                - 0x03 - 25xxx SPI EEPROM
                - 0x04 - 95xxx ST SPI EEPROM
3B        1     Algoritm code number:
                - SPI NOR Flash always 0x00
                - I2C (24xxx) 0x?1 - address size 1 byte 
                - I2C (24xxx) 0x?2 - address size 2 bytes 
                - I2C (24xxx) 0x1? - address mask 1
                - I2C (24xxx) 0x3? - address mask 3
                - I2C (24xxx) 0x7? - address mask 7
                - MicroWire (93xxx) - 0x1? - organisation 16 bit
                - MicroWire (93xxx) - 0x0? - organisation 8 bit
                - MicroWire (93xxx) - 0x?7 - 7 address bit number
                - MicroWire (93xxx) - 0x?9 - 9 address bit number
                - MicroWire (93xxx) - 0x?A - 10 address bit number
                - MicroWire (93xxx) - 0x?B - 11 address bit number
                - 95xxx ST SPI EEPROM - 0x01 - 8 bit address
                - 95xxx ST SPI EEPROM - 0x02 - 16 bit address
                - 25xxx SPI EEPROM  - 0x?0 - 8 bit address
                - 25xxx SPI EEPROM  - 0x?1 - 16 bit address
                - 25xxx SPI EEPROM  - 0x?2 - 24 bit address
                - 25xxx SPI EEPROM  - 0x0? - fill erasing
                - 25xxx SPI EEPROM  - 0x1? - The third bit of the command is used for the high bit of the address
                - 25xxx SPI EEPROM  - 0x2? - erasing with use CHIP  FULL ERASE command
3C        2     Timing parameter:
3D              3000/1000/500/300/200/100 - NOR FLASH, 4000/2000 - 24xxx, 100 - 93xxx
3E        2     SPI NOR Flash 4bit address type:
                - 0x?0 - Not used (3 bit address data)
                - 0x?1 - Used (4 bit address data)
                - 0x01 - Default 4 bit command using
                - 0x11 - Winbond algorithm
                - 0x21 - Spansion algorithm
3F        1     0x00
40        1     SPI NOR FLASH block size in KB (64K = 0x40)
41        1     0x00
42        1     EEPROM pages 0x01 - 0x04
43        1     VCC 00=>3.3V 01=>1.8V 02=>5.0V
The end record is 0x44 (68) zero bytes.

Licensing

Copyright (C) 2023 - 2024 Mikhail Medvedev. This project use GPL-3+ License, some parts taken from project SNANDer are GPL-2+ and from QHexEdit2 is LGPL-2.1.

Translations

Anyone can add or improve a translation by making a pull request. Translations files are located in: IMSProg_programmer/language/ and IMSProg_editor/language/

imsprog's People

Contributors

alexandrecleite avatar andreicherniaev avatar bigbigmdm avatar blackpantheros avatar cedev935 avatar fantu avatar giovanni69 avatar mrv96 avatar tian-hp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

imsprog's Issues

Запись со смещением.

Михаил, приветствую. А есть в интерфейсе возможность записи со смещением т.е. писать фал не с нуля, а скажем с 700000 адреса? Есть необходимость шить в одну микросхему 2 файла. Первый шьется с нуля, а второй со смещением.

Translation part in readme

Description

I think is useful to add a translation part in readme, small example below taking from older commit and adding a small note for contributing to add new language (to be improved):

Translations

Hungarian translation by blackPantherOS,
Italian translation by Marino Pasquale and Giovanni Scafora,
Brasil translation by Alexandre C. Leite,
Ukrainian translation by Sergey Golovko

Anyone can add or improve a translation by making a pull request.
Translations files are located in: IMSProg_programmer/language/ and IMSProg_editor/language/

Usage tips

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

Bios Chip MX25L12835EZNI-10G

Hi,

From this discussion I have this problem:

When I try to flash coreboot.rom file but I get this error when I do the "Erase-Program-Verify":

Error comparing data!
Address: 00000000
Buffer: 5F
Chip: 00

My bios chip is MX25L12835EZNI-10G. Is that supported?

Uninstall script missing?

Hello, newbie here.

How should I uninstall the program? I didn't find any script so I tried with sudo make uninstall but I received the error message make: *** No rule to make target 'uninstall'. Stop..

To install the program I unpacked the tar.gz and run build_all.sh.

Change github About

Description

I suggest new About text from here

I make tags using Wikipedia...

Usage tips

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

Issue with translation

Distribution

Arch Linux

Architecture

64 bit

Kernel version

6.8.7 from Arch Linux

IMSProg version

1.3.6

Bug description

Open dialogSFDP.
The translation is perfect.
If you click on Read or on Write registers, part of the translation reverts to English (see Legend area).
I am sending the two pictures to give you a better idea.

01

02

Steps to reproduce

No response

Expected behavior

No response

Additional information

No response

Getting read/write failure

Distribution

Raspbian GNU/Linux 11 (bullseye)

Architecture

armhf

Kernel version

6.1.21-v7+ #1642

IMSProg version

1.3.7

Bug description

Can't read block 0 or write block 0

Steps to reproduce

No response

Expected behavior

No response

Additional information

No response

Distro packaging

Hey there, IMSProg is great; thank you for creating it. I thought it might help others access IMSProg if I packaged it for the AUR, which I've now done: https://aur.archlinux.org/packages/imsprog. You can read the PKGBUILD there, but essentially it just pulls the release tarball from this repo and automates the build/install process. Users get the added benefits of the transactional install & uninstall capabilities.

Perhaps it might help others if a note was added to the README to say Arch users can install with paru imsprog or yay imsprog, or whichever AUR helper they like! If you have any feedback or suggestions for the PKGBUILD please let me know. The only deviation from the build process in the README is that I've used

make -j`nproc`

instead of make -j4, which should give a quicker performance boost on systems with more cores. I haven't timed this, though.

Lastly, it's not mentioned in the README, but the database update script depends on wget and zenity (I've added these to the PKGBUILD depends array), and the .desktop file for the script has the same Name and GenericName (the latter, just the English text) properties as the main IMSProg entry, which leads to ambiguous listings in, e.g., rofi:

image

If it was something you'd be open to, I'd be happy to submit a couple of PRs for these minor fixes. In any case, thanks!

systemd-dev by default

Description

README.md
"On Debian >=13 and Ubuntu >=23.10:
sudo apt-get install systemd-dev
"
Are you shure? I have Ubuntu 23.10 (but it was updated from previous Ubuntu 23.idon'tremember may be 04). systemd-dev already has installed... How we can check does systemd-dev already has installed by default on Ubuntu 23.10 and Ubuntu 24?

Usage tips

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

Differences with AT25F512 and M95F128

Description

If you have a desire to help the project, please compare the two pdf documents. I have done this more than ten times. I can't see any difference, but the M95M128 works correctly with my programmer and the 25F512 does not write or erase.

First document - https://www.st.com/resource/en/datasheet/m95128-r.pdf
Second document - https://pdf1.alldatasheet.com/datasheet-pdf/download/175067/ATMEL/AT25F512.html

The fact that these chips are of different volumes is understandable. It's just that I have both of them in stock.

32Mb spi flash

IMSProg fails when trying to read 32Mb spi flash.
This happens because of null pointer in spi_nor_flash.c

static int snor_4byte_mode(int enable)
{
	int retval;

	if (snor_wait_ready(1))
		return -1;

	if (spi_chip_info->id == 0x1) /* Spansion */
	{

The spi_chip_info does not exist.

Обновление базы поддерживаемых микросзем.

Михаил, приветствую. Немного душноты :) Если установить IMSprog, то в апликейшен попадает 3 файлика.

  1. Программа IMSprog
  2. Обновление базы поддерживаемых микросхем
  3. Редактирование базы поддерживаемых микросхем
    На мой дилетантский взгляд не совсем удобно получилось. По скрину видно, что 1 и 2 пункт названы одинаково, что создает путаницу. Может быть есть смысл обозвать 2 пункт как-то так: IMSprog base update? Если совсем начать умничать, то можно редактор и обновление поместить в основную программу или ссылки на эти программы были в основной меню IMSprog дабы не плодить 3 ярлыка. Возможно так будет удобнее.

2023112417000280

странно работает...

Distribution

Debian 12

Architecture

amd64

Kernel version

6.1.0-21-amd64

IMSProg version

1.3.8

Bug description

первый раз сработало. но потом обращается на адрес такой
Couldn't open device 1a86:5512
хотя на самом деле программатор тут
Bus 002 Device 011: ID 1a86:5523 QinHeng Electronics CH341 in serial mode, usb to serial port converter

Steps to reproduce

без понятия

Expected behavior

нормальную работу программы

Additional information

нету доп информации

Скорость записи.

Михаил, ещё раз приветствую. Заметил забавную особенность в плане разной скорости записи одной и той же флешки разным софтом. Шью флешку SPANSION S25FL064A на линуксе при помощи вашего IMSProg и на винде AsProgrammer https://github.com/nofeletru/UsbAsp-flash
Разница в скорости записи в 10 раз т.е. запись 5 мегабайтной прошивки в IMSProg проходит за ~20минут, а в AsProgrammer за ~2минуты. Нельзя ли как-то ускорить запись и в IMSProg?)

photo_2023-11-22_07-07-56

222

README.md fix "What is this"

Description

What is different between EZP2019-EZP2025_chip_data_editor and IMSProg editor?

I want to fix README.md text
"IMSProg - Linux IMSProg - I2C, MicroWire and SPI EEPROM/Flash chip programmer for CH341A devices. The IMSProg is a free programmer tool based on QhexEdit2 and modified SNANDer programmer.

This is a GUI program used widget QhexEditor. For setting the SPI chip parameters you can use the Detect button for reading chip parameters (JEDEC information reading) or manually setting it. The I2C and MicroWire EEPROM only manually selected."
Looks like this repo contains two different programs: programmer and editor. If so then you should describe the programmer and describe the editor...

P.S. Please use English or Russian.

Usage tips

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

add support for GIGADEVICE GD5FGQ4UB91G spi nand

Description

can you add the support for GD5FGQ4UB91G ? these family nand is supported in SNANDER

Usage tips

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

uk translate desktop files

IMSProg_editor.desktop

Comment[uk]=Редактор бази мікросхем для IMSProg
GenericName[uk]=Редактор бази мікросхем для IMSProg

IMSProg.desktop

Comment[uk]=Программатор i2c,SPI,MW мікросхема для CH341a
GenericName[uk]=Программатор i2c,SPI,MW мікросхема для CH341a

IMSProg_database_update.desktop

Comment[uk]=Оновлення бази даних мікросхеми для IMSProg
GenericName[uk]=Оновлення бази даних мікросхеми для IMSProg

Chips Database (IMSProg.Dat) not found after IMSProg startup

After compiling the source code and installing on Ubuntu 22.04, IMSProg cannot find the chip database file IMSProg.Dat.
I downloaded a new version using the IMSProg_database_update.sh script and put it in the /opt/IMSProg folder as described in the README.md file. The error persists.

I then used strace to look at what is being initialised and found that IMSProg is expecting the chip database file in the location /etc/imsprog/IMSProg.Dat.

After copying the file there, the chip database is loaded correctly on startup.

fix:

sudo mkdir /etc/imsprog

sudo cp /opt/IMSProg/IMSProg.Dat /etc/imsprog

45DBxxx supporting

Description

Do IMSProg need to support 45DB series chips (e.g. AT45DB161D)?

Usage tips

Who uses chips of this series for work, please participate.

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

Porting to macOS

Description

IMSProg can be compiled on macOS natively and works. The only one problem is udev rules for device detection. MacOS doesn't have udev rules, so it is necessary to do it darwin-way (maybe using diskutil). Unfortunately, as we discussed, @bigbigmdm couldn't do it himself because he doesn't know anything about macOS. It is really difficult to support multiple operating systems and it is normal.
I opened this issue to encourage people to help with porting IMSProg to macOS.
tg_image_2414399080

Usage tips

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

Wrong udev rules installation from .deb

It is not 100% clear where 99-CH341.rules should be placed in:

Anyway .deb actually install it in /usr/lib/x86_64-linux-gnu/udev/rules.d/ which is surely wrong:

$ dpkg -c imsprog_1.1.2-12_amd64.deb 
drwxr-xr-x root/root         0 2023-12-01 00:08 ./
drwxr-xr-x root/root         0 2023-12-01 00:08 ./etc/
drwxr-xr-x root/root         0 2023-12-01 00:08 ./etc/imsprog/
-rw-r--r-- root/root     36448 2023-12-01 00:08 ./etc/imsprog/IMSProg.Dat
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/bin/
-rwxr-xr-x root/root    580152 2023-12-01 00:08 ./usr/bin/IMSProg
-rwxr-xr-x root/root       549 2023-12-01 00:08 ./usr/bin/IMSProg_database_update
-rwxr-xr-x root/root    129568 2023-12-01 00:08 ./usr/bin/IMSProg_editor
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/lib/
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/lib/x86_64-linux-gnu/
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/lib/x86_64-linux-gnu/udev/
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/lib/x86_64-linux-gnu/udev/rules.d/
-rw-r--r-- root/root       248 2023-11-17 18:17 ./usr/lib/x86_64-linux-gnu/udev/rules.d/99-CH341.rules
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/applications/
-rw-r--r-- root/root      2094 2023-12-01 00:08 ./usr/share/applications/IMSProg.desktop
-rw-r--r-- root/root      2106 2023-12-01 00:08 ./usr/share/applications/IMSProg_database_update.desktop
-rw-r--r-- root/root      1873 2023-12-01 00:08 ./usr/share/applications/IMSProg_editor.desktop
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/doc/
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/doc/imsprog/
-rw-r--r-- root/root      1342 2023-12-01 00:08 ./usr/share/doc/imsprog/changelog.Debian.gz
-rw-r--r-- root/root     11863 2023-12-01 00:08 ./usr/share/doc/imsprog/copyright
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/doc/imsprog/html/
-rw-r--r-- root/root    675023 2023-12-01 00:08 ./usr/share/doc/imsprog/html/index.html
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/doc-base/
-rw-r--r-- root/root       268 2023-12-01 00:08 ./usr/share/doc-base/imsprog
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/imsprog/
-rw-r--r-- root/root      3823 2023-11-17 18:17 ./usr/share/imsprog/chipEditor_de_DE.qm
-rw-r--r-- root/root      3771 2023-11-17 18:17 ./usr/share/imsprog/chipEditor_es_ES.qm
-rw-r--r-- root/root      3778 2023-11-17 18:17 ./usr/share/imsprog/chipEditor_hu_HU.qm
-rw-r--r-- root/root      3732 2023-12-01 00:08 ./usr/share/imsprog/chipEditor_it_IT.qm
-rw-r--r-- root/root      3791 2023-12-01 00:08 ./usr/share/imsprog/chipEditor_pt_BR.qm
-rw-r--r-- root/root      3782 2023-11-17 18:17 ./usr/share/imsprog/chipEditor_ru_RU.qm
-rw-r--r-- root/root      3782 2023-11-17 18:17 ./usr/share/imsprog/chipEditor_uk_UA.qm
-rw-r--r-- root/root      2938 2023-11-17 18:17 ./usr/share/imsprog/chipEditor_zn_CH.qm
-rw-r--r-- root/root     18193 2023-12-01 00:08 ./usr/share/imsprog/chipProgrammer_de_DE.qm
-rw-r--r-- root/root     18500 2023-12-01 00:08 ./usr/share/imsprog/chipProgrammer_es_ES.qm
-rw-r--r-- root/root     18628 2023-12-01 00:08 ./usr/share/imsprog/chipProgrammer_hu_HU.qm
-rw-r--r-- root/root     17847 2023-12-01 00:08 ./usr/share/imsprog/chipProgrammer_it_IT.qm
-rw-r--r-- root/root     18567 2023-12-01 00:08 ./usr/share/imsprog/chipProgrammer_pt_BR.qm
-rw-r--r-- root/root     17894 2023-12-01 00:08 ./usr/share/imsprog/chipProgrammer_ru_RU.qm
-rw-r--r-- root/root     18436 2023-12-01 00:08 ./usr/share/imsprog/chipProgrammer_uk_UA.qm
-rw-r--r-- root/root     14767 2023-12-01 00:08 ./usr/share/imsprog/chipProgrammer_zn_CH.qm
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/man/
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/man/man1/
-rw-r--r-- root/root       755 2023-12-01 00:08 ./usr/share/man/man1/IMSProg.1.gz
-rw-r--r-- root/root       885 2023-12-01 00:08 ./usr/share/man/man1/IMSProg_database_update.1.gz
-rw-r--r-- root/root       793 2023-12-01 00:08 ./usr/share/man/man1/IMSProg_editor.1.gz
drwxr-xr-x root/root         0 2023-12-01 00:08 ./usr/share/pixmaps/
-rw-r--r-- root/root      6976 2023-11-17 18:17 ./usr/share/pixmaps/IMSProg64.png
-rw-r--r-- root/root      3013 2023-11-17 18:17 ./usr/share/pixmaps/IMSProg_database_update.png
-rw-r--r-- root/root      2790 2023-11-17 18:17 ./usr/share/pixmaps/chipEdit64.png

Feature: recent files

Thank you for a good software but the feature is realy missing is recently open files.
Also it does not remember last opened directory. All the path should be passed again and again from the start to open a firmware.

brocken comments in udev rule 99-CH341.rules

Distribution

ALT Linux

Architecture

any

Kernel version

any

IMSProg version

1.3.2

Bug description

Error due to incorrect formatting of comments.

Steps to reproduce

$ /sbin/udevadm -V
254
$ /sbin/udevadm verify 99-CH341.rules
/home/data/gear/IMSProg/IMSProg_programmer/other/99-CH341.rules:1 Invalid key/value pair, ignoring.
/home/data/gear/IMSProg/IMSProg_programmer/other/99-CH341.rules:2 Invalid key/value pair, ignoring.
/home/data/gear/IMSProg/IMSProg_programmer/other/99-CH341.rules: udev rules check failed.

1 udev rules files have been checked.
Success: 0
Fail: 1

Expected behavior

$ /sbin/udevadm verify 99-CH341.rules

1 udev rules files have been checked.
Success: 1
Fail: 0

Additional information

Must use # at the beginning of the line.

Editor launch from toolbar

To run the editor program from the main window of the programmer: It seems that you didn't apply the my patch to the editor's relative path in mainwindow.cpp, so the program can't be launched from the programmer's toolbar, only from the command line or a separated icon. The reason for this is that when the user launches itt, it is not in /usr/bin, but in its home directory, therefore the relative path will be invalid.

I am attaching two pictures to help you understand the problems...

First showing the binary compiled from the current source code:
wrong_path

And this binary working fine after applying the my patch :
patched

QByteRef beyond QByteArray size

mainwindow.cpp (starting at line 617 ):

    chipData = hexEdit->data();
    //uint8_t buf[currentBlockSize];
    uint8_t *buf;
    buf = (uint8_t *)malloc(currentBlockSize);
    for (k = 0; k < currentNumBlocks; k++)
      {

         for (j = 0; j < currentBlockSize; j++)
            {
               buf[addr + j - k * currentBlockSize] =  static_cast<uint8_t>(chipData[addr + j]) ;
            }

QByteArray ChipData initialized with the hexEdit->data(). But the user can load file of any size. If the file size is smaller than chip size, chipData will also have size < memory chip size.
Since writing algorithm alawys writes the full chip, and the chipData.size < currentNumBlocks*currentBlockSize, at some moment chipData[addr + j] will try to read bytes which are not persent in chipData. QT runtime warns about that with the message like "QByteRef beyond QByteArray size". Actually it is reading beyond array limits and this is undefined behaviour.

Not found file `IMSProg_editor` (dep pkg)

Good day,
after installing deb package (v1.0.29-3/Ubuntu 22.04) can't open "Edit chip database" (ctrl+q) with "Not found file IMSProg_editor error" and same error on program start

image

Separately IMSProg_editor can be opened
image

Database format compatibility

Description

Does IMSProg use the same database format as EZP2019, EZP2020, EZP2023, Minpro I, XP866+ programmers or similar? "Основан на формате" means "similar", but "is clone" sounds like "database format is the same"...

"Формат базы данных микросхем основан на формате программаторов EZP2019, EZP2020, EZP2023, Minpro I, XP866+."
https://antenna-dvb-t2.ru/IMSProg.php

"The chip database format is clone with EZP2019, EZP2020, EZP2023, Minpro I, XP866+ programmers."
https://github.com/bigbigmdm/IMSProg/blob/main/README.md

Usage tips

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

Issue with FairChild 93C56

Hi @bigbigmdm! First of all thank you for the software. I read content of 93C56 and bits are misplaced.
I got:
4a31 4634 3446 5338 5958 324c 3036 3333 3135....
instead of:
314a 3446 4634 3853 5859 4c32 3630 3333 3531....

Any ideas what could cause incorrect reading?

Here is data spec for the eeprom.
Image of the chip:
image

Chip connection:

CH341A 93C56 pin name 93C56 pin
CLK sk 2
CS cs 1
MOSI di 3
MIOS do 4
GND gnd 5
3.3V pe 6
5V pre, Vcc 7,8

Issue with locale

Distribution

Ubuntu 23.10

Architecture

amd64

Kernel version

Linux version 6.5.0-28-generic

IMSProg version

V 1.3.7

Bug description

Chinese locale is zh_CN, not zn_CH.
IMSProg

Steps to reproduce

No response

Expected behavior

No response

Additional information

No response

ch341a на ATmega328P

Нашел старую мат. плату, с AWARD биос чипом (32 ношки). Судя по всему это (atmega3208):

На форумах нашел схему перепрошивки:

Возможно, стоит добавить эту информацию в программу \ документацию. Работоспособность, не проверял, нужен кварц.

Remove index.html or generate automatically on build from README.md to keep updated

Description

Actually, IMSProg_programmer/other/index.html seems manually generated from old version of README.md.
This don't seem very good, so is better remove it, and include README.md in package docs or keep it updated.
For keeping it updated, the best way is to generate on build (and keep it optionally if software required is installed).
I did some very fast tests and the best software tested seems pandoc, done with:
pandoc -s --metadata pagetitle="IMSProg" README.md -o index.html

Usage tips

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

DEBIAN: 99-CH314.rules file installed at wrong path

The .deb package installs the 99-CH314.rules file at path /usr/lib/x86_64-linux-gnu/udev/rules.d/, which folder doesn't exists and it's created at install time, instead of the default /etc/udev/rules.d/ directory, causing the device to not be read on USB by IMSProg.

This behavior happens on both apt install imsprog and direct dpkg -i *.deb commands.

drop qmake

Description

Looks like you use CMake and qmake both build systems. But looks like you prefer CMake. I think it is good choice!
Do you really need qmake? It will take a great power to keep up to date both. I suggest drop qmake (remove IMSProg_editor.pro and IMSProg.pro).

Usage tips

  • Please use the 👍 reaction to show that you are interested into this.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this.
  • Subscribe to receive notifications on status change and new comments, you can do also without add comment.

Error on Verify function

Verify function on I2C EEPROMs fails when verifying files shorter than full EEPROM size because it searches for the dummy 0x00 used to pad the content by the Program function

Maybe adding some 0x00 padding also in the Verify function may solve the issue with hopefully low effort (in the virtual file content bytestring used to do the comparison you could pad accordingly to what happens during Program)

Issue find on Ubuntu 22.04 LTS, writing on the following IC:

  • 24_EEPROM
  • COMMON
  • 24C256
  • 32 K
  • 32
  • 3.3 V

how to use tl866cs chip database in IMSprog?

hello dear friend, I have an tl866cs epron programmer and I want to use his database in your IMSprog, but I don't know how,
I saw in your repository that I can use the database of ezp2019-2025 too, can you give me a shortcut of how to add all the chip datbase from tl866cs in IMSprog, the one I have doesn't have .dat files to be added.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.