{"id":13641834,"url":"https://github.com/McMCCRU/SNANDer","last_synced_at":"2025-04-20T11:32:44.844Z","repository":{"id":37799984,"uuid":"305827901","full_name":"McMCCRU/SNANDer","owner":"McMCCRU","description":"SNANDer - Serial Nor/nAND/Eeprom programmeR  (based on CH341A)","archived":false,"fork":false,"pushed_at":"2024-06-20T09:21:04.000Z","size":18312,"stargazers_count":221,"open_issues_count":11,"forks_count":60,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-08-03T01:25:04.117Z","etag":null,"topics":["chip-programmer","prom-writer"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/McMCCRU.png","metadata":{"files":{"readme":"readme.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-10-20T20:38:24.000Z","updated_at":"2024-07-15T02:22:35.000Z","dependencies_parsed_at":"2024-01-14T09:10:48.134Z","dependency_job_id":"82d38ce6-aa4b-4d58-9112-2eaf09106dd3","html_url":"https://github.com/McMCCRU/SNANDer","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/McMCCRU%2FSNANDer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/McMCCRU%2FSNANDer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/McMCCRU%2FSNANDer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/McMCCRU%2FSNANDer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/McMCCRU","download_url":"https://codeload.github.com/McMCCRU/SNANDer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223827788,"owners_count":17209845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chip-programmer","prom-writer"],"created_at":"2024-08-02T01:01:24.852Z","updated_at":"2025-04-20T11:32:44.831Z","avatar_url":"https://github.com/McMCCRU.png","language":"C","funding_links":[],"categories":["C","Hardware Tools"],"sub_categories":["Chip-Off and Memory Forensics"],"readme":"SNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC \u003cmcmcc_at_mail.ru\u003e\r\n\r\n  Usage:\r\n -h             display this message\r\n -d             disable internal ECC(use read and write page size + OOB size - On-die ECC)\r\n -o \u003cbytes\u003e     manual set OOB size with disable internal ECC(default 0)\r\n -I             ECC ignore errors(for read test only)\r\n -k             Skip BAD pages, try read or write in to next page\r\n -L             print list support chips\r\n -i             read the chip ID info\r\n -E             select I2C EEPROM {24c01|24c02|24c04|24c08|24c16|24c32|24c64|24c128|24c256|24c512|24c1024}\r\n                select Microwire EEPROM {93c06|93c16|93c46|93c56|93c66|93c76|93c86|93c96} (need SPI-to-MW adapter)\r\n                select SPI EEPROM 25xxx {25010|25020|25040|25080|25160|25320|25640|25128|25256|25512|251024}\r\n -8             set organization 8-bit for Microwire EEPROM(default 16-bit) and set jumper on SPI-to-MW adapter\r\n -f \u003caddr len\u003e  set manual address size in bits for Microwire EEPROM(default auto)\r\n -s \u003cbytes\u003e     set page size from datasheet for fast write SPI EEPROM(default not usage)\r\n -e             erase chip(full or use with -a [-l])\r\n -l \u003cbytes\u003e     manually set length\r\n -a \u003caddress\u003e   manually set address\r\n -w \u003cfilename\u003e  write chip with data from filename\r\n -r \u003cfilename\u003e  read chip and save data to filename\r\n -v             verify after write on chip\r\n\r\nExamples:\r\n\r\n1. Get info Flash.\r\n\r\nigor@mcmcc-GL553VE:~/Soft/SNANDer-bin/Linux$ ./SNANDer -i\r\n\r\nSNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC \u003cmcmcc_at_mail.ru\u003e\r\n\r\nFound programmer device: WinChipHead (WCH) - CH341A\r\nDevice revision is 3.0.4\r\nspi_nand_probe: mfr_id = 0xc2, dev_id = 0x22\r\nGet Status Register 1: 0x38\r\nGet Status Register 2: 0x10\r\nUsing Flash ECC.\r\nDetected SPI NAND Flash: MXIC MX35LF2G, Flash Size: 256 MB\r\n\r\nor\r\n\r\nSNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC \u003cmcmcc_at_mail.ru\u003e\r\n\r\nFound programmer device: Winchiphead (WCH) - CH341A\r\nDevice revision is 3.0.4\r\nspi_nand_probe: mfr_id = 0xef, dev_id = 0xaa\r\nGet Status Register 1: 0x81\r\nGet Status Register 2: 0x18\r\nUsing Flash ECC.\r\nDetected SPI NAND Flash: WINBOND W25N01G, Flash Size: 128 MB\r\n\r\n2. Full erase flash with disable internal ECC check. Without OOB, page size 2112 bytes.\r\n\r\nigor@mcmcc-GL553VE:~/Soft/SNANDer-bin/Linux$ ./SNANDer -d -e\r\n\r\nSNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC \u003cmcmcc_at_mail.ru\u003e\r\n\r\nFound programmer device: WinChipHead (WCH) - CH341A\r\nDevice revision is 3.0.4\r\nspi_nand_probe: mfr_id = 0xc2, dev_id = 0x22\r\nGet Status Register 1: 0x00\r\nGet Status Register 2: 0x11\r\nDisable Flash ECC.\r\nDetected SPI NAND Flash: MXIC MX35LF2G, Flash Size: 256 MB\r\nERASE:\r\nSet full erase chip!\r\nErase addr = 0x0000000000000000, len = 0x0000000010800000\r\nErase 100% [276824064] of [276824064] bytes\r\nElapsed time: 3 seconds\r\nStatus: OK\r\nigor@mcmcc-GL553VE:~/Soft/SNANDer-bin/Linux$\r\n\r\n3. Write and verify flash with disable internal ECC check. Without OOB, page size 2112 bytes.\r\n\r\nigor@mcmcc-GL553VE:~/Soft/SNANDer-bin/Linux$ ./SNANDer -d -v -w ecc_2Gb_2K_64_flashimage_rfb1_ac2600.bin \r\n\r\nSNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC \u003cmcmcc_at_mail.ru\u003e\r\n\r\nFound programmer device: WinChipHead (WCH) - CH341A\r\nDevice revision is 3.0.4\r\nspi_nand_probe: mfr_id = 0xc2, dev_id = 0x22\r\nGet Status Register 1: 0x00\r\nGet Status Register 2: 0x11\r\nDisable Flash ECC.\r\nDetected SPI NAND Flash: MXIC MX35LF2G, Flash Size: 256 MB\r\nWRITE:\r\nWrite addr = 0x0000000000000000, len = 0x000000000E5A9D6F\r\nWritten 100% [240819567] of [240819567] bytes\r\nElapsed time: 4184 seconds\r\nStatus: OK\r\nVERIFY:\r\nRead addr = 0x0000000000000000, len = 0x000000000E5A9D6F\r\nRead 100% [240819567] of [240819567] bytes\r\nElapsed time: 2047 seconds\r\nStatus: OK\r\n\r\n4. Read Microwire EEPROM Atmel 93C46 and save file.\r\n\r\nigor@igor-GL553VE:~/Soft/SNANDer-bin/Linux$ ./SNANDer -E 93c46 -r test.bin\r\n\r\nSNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC \u003cmcmcc_at_mail.ru\u003e\r\n\r\nFound programmer device: WinChipHead (WCH) - CH341A\r\nDevice revision is 3.0.4\r\nMicrowire EEPROM chip: 93c46, Size: 64 bytes, Org: 16 bits, fix addr len: Auto\r\nREAD:\r\nRead addr = 0x0000000000000000, len = 0x0000000000000080\r\nRead_EEPROM_3wire: Set address len 6 bits\r\nRead 100% [64] of [64] bytes\r\nRead [128] bytes from [93c46] EEPROM address 0x00000000\r\nElapsed time: 0 seconds\r\nStatus: OK\r\n\r\n5. Write and verify Microwire EEPROM Atmel 93C46 from file.\r\n\r\nigor@igor-GL553VE:~/Soft/SNANDer-bin/Linux$ ./SNANDer -E 93c46 -w test.bin -v\r\n\r\nSNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC \u003cmcmcc_at_mail.ru\u003e\r\n\r\nFound programmer device: WinChipHead (WCH) - CH341A\r\nDevice revision is 3.0.4\r\nMicrowire EEPROM chip: 93c46, Size: 64 bytes, Org: 16 bits, fix addr len: Auto\r\nWRITE:\r\nWrite addr = 0x0000000000000000, len = 0x0000000000000080\r\nErase_EEPROM_3wire: Set address len 6 bits\r\nWrite_EEPROM_3wire: Set address len 6 bits\r\nWritten 100% [64] of [64] bytes\r\nWrote [128] bytes to [93c46] EEPROM address 0x00000000\r\nElapsed time: 1 seconds\r\nStatus: OK\r\nVERIFY:\r\nRead addr = 0x0000000000000000, len = 0x0000000000000080\r\nRead_EEPROM_3wire: Set address len 6 bits\r\nRead 100% [64] of [64] bytes\r\nRead [128] bytes from [93c46] EEPROM address 0x00000000\r\nElapsed time: 1 seconds\r\nStatus: OK\r\n\r\n6. Write and verify SPI EEPROM Atmel AT25640B from file.\r\n\r\nigor@igor-GL553VE:~/Soft/SNANDer-bin/Linux$ ./SNANDer -E 25640 -v -w test.bin\r\n\r\nSNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC \u003cmcmcc_at_mail.ru\u003e\r\n\r\nFound programmer device: WinChipHead (WCH) - CH341A\r\nDevice revision is 3.0.4\r\nSPI EEPROM chip: 25640, Size: 8192 bytes\r\nWRITE:\r\nWrite addr = 0x0000000000000000, len = 0x0000000000002000\r\nWritten 100% [8192] bytes to [25640] EEPROM address 0x00000000\r\nElapsed time: 22 seconds\r\nStatus: OK\r\nVERIFY:\r\nRead addr = 0x0000000000000000, len = 0x0000000000002000\r\nRead 100% [8192] bytes from [25640] EEPROM address 0x00000000\r\nElapsed time: 2 seconds\r\nStatus: OK\r\n\r\n7. Fast write and verify SPI EEPROM Atmel AT25640B from file with use page size.\r\n   (Find out page size from datasheet on chip!!!)\r\n\r\nigor@igor-GL553VE:~/Soft/SNANDer-bin/Linux$ ./SNANDer -E 25640 -v -w test.bin -s 32\r\n\r\nSNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC \u003cmcmcc_at_mail.ru\u003e\r\n\r\nFound programmer device: WinChipHead (WCH) - CH341A\r\nDevice revision is 3.0.4\r\nSPI EEPROM chip: 25640, Size: 8192 bytes\r\nSetting page size 32B for write.\r\nWRITE:\r\nWrite addr = 0x0000000000000000, len = 0x0000000000002000\r\nWritten 100% [8192] bytes to [25640] EEPROM address 0x00000000\r\nElapsed time: 1 seconds\r\nStatus: OK\r\nVERIFY:\r\nRead addr = 0x0000000000000000, len = 0x0000000000002000\r\nRead 100% [8192] bytes from [25640] EEPROM address 0x00000000\r\nElapsed time: 2 seconds\r\nStatus: OK\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMcMCCRU%2FSNANDer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMcMCCRU%2FSNANDer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMcMCCRU%2FSNANDer/lists"}