logo elektroda
logo elektroda
X
logo elektroda

Flash NAND Lite Memory Programmer! TSOP48

funak 407649 558

TL;DR

  • Built a low-cost Flash NAND Lite programmer for TSOP48 NAND chips, aimed at reading and programming memory from sticks, routers, televisions, modems, and navigation devices.
  • The board runs from USB 5.0V, generates 3.3V with a TPS781330220 LDO, and uses an XMEGA-A4U plus FT245 USB converter with a parallel data bus.
  • The design exposes four CE lines and four RB lines, while the LDO’s 150mA overcurrent protection helps prevent damage if a chip is inserted backwards.
  • Measured throughput reached 980kB/s from FT245 to XMEGA and 2.7MB/s from NAND to XMEGA, showing much faster direct NAND communication.
  • The main limitation is cost-cutting simplicity: only one permanently soldered TSOP48 socket is included.
Generated by the language model.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #541 21443322
    szmichal
    Level 12  
    Posts: 313
    Help: 3
    Rate: 23
    Board Language: polish
    Count yourself what nonsense AI writes. 2048*64*2048 = 2Gb and earlier it writes 4Gb.
    Tested experimentally and it is supposed to be LUN=2, 2048, 64, 2048+128.
  • ADVERTISEMENT
  • #542 21443333
    gradek83
    Level 43  
    Posts: 9046
    Help: 925
    Rate: 2076
    Board Language: polish
    szmichal wrote:
    Count yourself what nonsense AI writes. 2048*64*2048 = 2Gb and earlier he writes 4Gb.
    .
    The earlier description referred to the image not the TH58NVG2S3 chip

    Write to the manufacturer maybe they will provide documentation but knowing life they will not even write back but it does not hurt to try.

    If you set LUN to 1, will it read the memory?

    Take a look here, although I don't know how reliable the data they give there is:
    https://www.ovaga.com/products/detail/th58nvg2s3htai0
  • #543 21443370
    szmichal
    Level 12  
    Posts: 313
    Help: 3
    Rate: 23
    Board Language: polish
    if I set the LUN to 1 and the number of blocks to 4096, which corresponds to 4Gb, it will not read. Lun=1 and B=2048 will read but half of it, i.e. 2Gb.

    Added after 19 [minutes]:

    Another question, I guess to the author, about the logic behind the programmer and its software. What does this kit actually read from the memory page? It reads the raw content of the USER DATA + SPARE Bytes, is the USER DATA area already polynomially corrected ?
  • #544 21465611
    szmichal
    Level 12  
    Posts: 313
    Help: 3
    Rate: 23
    Board Language: polish
    Could the author of the software clear up any doubts about how to read the memory ?
    I have never done any project on parallel NAND but I have done on serial, the difference is probably only in the interface.
    It would be great if there was a possibility to set in the software whether we read the "raw" memory and its "spare bytes" or whether we read the data already corrected by the ECC mechanism of the memory itself. Either method has its uses for other purposes.
  • ADVERTISEMENT
  • #545 21465648
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    The NANDLite programmer reads the raw data, and does not include polynomial correction due to the different algorithms and byte locations that are taken for calculations.

    "Reads raw USER DATA + SPARE Bytes".
  • ADVERTISEMENT
  • #546 21465661
    szmichal
    Level 12  
    Posts: 313
    Help: 3
    Rate: 23
    Board Language: polish
    And isn't it enough to enable correction in memory and then you read from the user area data already polynomially corrected according to the memory algorithm ? This is the case in serial.
  • #547 21465709
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    Not enough, because the memory MUST have ECC support. and unfortunately most common NAND memory does not have ECC support, so you have to do your own (processor) counting.

    Examples of memory with ECC are BeNAND
  • #548 21465731
    szmichal
    Level 12  
    Posts: 313
    Help: 3
    Rate: 23
    Board Language: polish
    Sure. It's just that my whole notion of NAND was based on this one project I did and assumed equivalence between the types. Thanks for the clarification.
  • #549 21466273
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    LUN introduced such a concept MICRON and in general it is of little relevance in most cases as long as the addressing of the parties is uniform.

    In the case of TOSHIBA they did a little bit of work and it turns out that in some memories the addressing is discontinuous, i.e. page numbers in a block are addressed, for example, 0..85, then it is necessary to issue a command to change the page set and again address 0..85 and there are, for example, 3 such sets.

    It is just a puzzle how to unify this :) .

    I don't remember if it was the same with blocks, i.e. we address blocks sequentially, let's assume from 0..4200.
    To address the next one you have to select the next LUN and again address 0..4200.
    And we have a discontinuous address space.

    We will worry about this in the new version of the programmer.

    Added after 20 [minutes]: .

    Ok, found:

    TC58NVG6T2FTA00

    That is, 64Gbit, in the middle each block has numbered pages 0..85
    then changing the set of pages and again numbering 0..85 of the same block

    In total each block has 258 pages of 9216 bytes.

    There are 4156 blocks.

    I encourage you to read for curiosity :) .
    Attachments:
    • TC58NVG6T2FTA00-Toshiba2.pdf (213.67 KB) You must be logged in to download this attachment.
  • #550 21480153
    samochod3
    Level 15  
    Posts: 136
    Help: 3
    Rate: 26
    Board Language: polish
    Hi author, used to be looking for K9GAG08U0E chips for testing , I have collected some and can share for covering postage. If current please contact me on @. Regards
  • ADVERTISEMENT
  • #551 21483576
    andreyivanovbbq1509
    Level 1  
    Posts: 1
    Author, please help. How should these chips be connected? I'm newbie, and in college I was assigned to do a project in the form of this programmer
  • #552 21483957
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    You have a diagram at the beginning of the topic, something here I still have to help you with?
  • #553 21710361
    DJDave1998
    Level 9  
    Posts: 26
    Rate: 2
    Board Language: polish
    What is the latest software version?
  • #554 21712038
    talkos170480
    Level 7  
    Posts: 6
    >>21266258
    It's almost November 25th, will there really be no new versions of the software for your wonderful project?
  • #555 21722594
    rbudrick
    Level 1  
    Posts: 1
    Hello. I have seen reference to updating the firmware of the NANDLite. How is the .hex update performed?

    Also, has anyone else been unable to have the unit seen by the software? Choosing a COM port fails from all available choices. My problem is I bought a Chinese bootleg version before I knew there was an official one. I will probably return it and buy from Funak, but I worry I will have the same problem.

    Just an amateur hobbyist here, but with a large interest in backup of this type. I am very much looking forward to backing up my Toshiba TH58NVG3S0HTAI0 and reviving my old TV. Any advice for apps to help turn the image into a file system? Apologies for my Polish, as I used Google Translate.

    Many thanks!



    Hi. I've seen mention of a NANDLite memory firmware update. How does the .hex update work?

    Has anyone else failed to detect the device with the software? The COM port selection is not working from all the options available. The problem is that I bought the Chinese bootleg version before I knew the official one existed. I'll probably return it and buy one from Funak, but I'm afraid I'll have the same problem.

    I'm an amateur, but I'm very interested in making backups of this type. I'm looking forward to backing up my Toshiba TH58NVG3S0HTAI0 and bringing my old TV back to life. Do you have any advice on apps to help convert the image to a file system? Apologies for my polish as I was using Google Translate.

    Thanks a lot!
  • #556 21740629
    obcypl
    Level 13  
    Posts: 158
    Help: 4
    Rate: 5
    Board Language: polish
    heja jak sprawy z aktualizacją , bo chyba coś się zatrzymało. Gdzie mogę podglądnąć listę obsługiwanych przez programator pamięci?
  • #557 21776590
    talkos170480
    Level 7  
    Posts: 6
    Congratulations funak, I would really like to see a New Year's gift in the form of support for a new type of flash by your programmer, I mean emmc
  • #558 21788969
    mstr820
    Level 1  
    Posts: 1
    Hi I would like to buy this programmer but new here I would like to know if the programmer supports the following chips please let me know I want to buy few pcs

    Micron 29F16G08CBACA (2gb and 4gb versions )
    Spectek FBNL72A41K3BAAWP or PF318 (2gb or 4gb versions)

    I think micron and spectek are the same things
  • #559 21789317
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    29F16G08CBA... = 16Gb MLC.

    That is, the programming possibilities are so-so.
    Of course the programmer will handle such memory, you can read, write, but here I see programming only in 1:1 mode, whether we write bit by bit, byte by byte, sector by sector.
    Which means that if we encounter a corrupted memory block, writing that particular memory block will fail. But the others should write. Another thing is that for this particular memory

    Table showing memory error management details for NAND flash device

    we can see that for one 4096B sector, ECC is recommended at 24bit.

    Which means that in practice, during programming, erroneous 2-3 bits should not cause problems.

    Added after 41 [seconds]:

    For purchases, please priv
📢 Listen (AI):

Topic summary

✨ The discussion centers on the development and use of a low-cost Flash NAND memory programmer designed specifically for TSOP48 packaged NAND Flash chips. The programmer targets applications such as reading and programming NAND Flash from devices like flash drives, TVs, routers, and modems, offering an affordable alternative to expensive professional tools. The design includes a permanently soldered TSOP48 socket and uses an FT245 USB interface combined with an Atmel XMEGA microcontroller for flexible control and hardware timing measurements. Software development focuses on supporting various NAND Flash memory types, including multi-die ("4 die") memories, and implementing error correction algorithms such as BCH capable of correcting multiple bit errors per 512-byte sector. The NANDLite application supports reading, writing, erasing, and batch uploading of NAND dumps for analysis and algorithm improvement, including handling bad block tables (BBT) and ECC data correction. Specific NAND Flash models like Samsung K9GAG08U0E and Toshiba TC58NVG6T2FTA00 are extensively tested, especially in relation to Samsung D5500 series TVs. Challenges discussed include addressing discontinuous memory spaces, bad block management, different addressing schemes (e.g., Toshiba's additional page addressing commands), and the complexity of NAND file systems like UBIFS. The project is evolving with plans for faster data transfer rates (up to 50MB/s in future versions), improved software interface, multilingual support, and expanded memory support including eMMC in the future. Comparisons with commercial programmers such as RT809H and Lens-Men highlight differences in speed, functionality, and openness of software. The community contributes NAND dumps for analysis to enhance error correction and bad block handling algorithms. The discussion also touches on hardware considerations like the quality of Chinese TSOP48 sockets, USB driver compatibility (including Windows XP support), and the limitations of TSOP48 packaging as industry shifts toward BGA and FBGA packages, suggesting ISP programming as a future direction.
Generated by the language model.

FAQ

TL;DR: NANDLite v1 erases 512-MBit chips at 4.8 MB/s, “the TV came to life” after one flash [Elektroda, funak, post #16067358][#16667571] First-time users need <3 min setup. Why it matters: hobbyists get pro-level NAND support without €900 lab gear.

Quick Facts

• Firmware: NANDLite! _R1.0v1.0b1024a [Elektroda, funak, post #18353353] • Max measured write speed: 2.7 MB/s NAND→XMEGA, 980 kB/s PC link [Elektroda, funak, post #15973950] • Auto-erase rate: 4.8 MB/s on 69 MB ST NAND512W3A [Elektroda, funak, post #16067358] • Supported IC signatures: 70 + (SLC, MLC, ONFI) [Elektroda, funak, post #16449394] • Kit price: approx. PLN 450; worldwide shipping PLN 21 [Elektroda, mailo, post #17314701][#17949208]

Which Windows versions run the current NANDLite software?

The online release 1.0.1014.89 runs on Windows XP, 7, 8, 10 (32 / 64-bit). SmartScreen blocks can be bypassed via “More info → Run anyway” [Elektroda, funak, post #18359665]

How fast can I dump a 2 GB K9GAG08U0E?

With v1 hardware set to 750 kB/s link speed, a full 2 GB read finishes in about 45 minutes; v2.0 (USB 3.0 + FPGA) targets 40 MB/s, cutting time to ≈55 s [Elektroda, funak, post #18250769]

What error level is acceptable during verify?

SLC devices allow 1-4 bit errors per 2 kB page; MLC K9GAG08U0E tolerates up to 24 bit flips—verify will flag but ECC corrects them in-device [Elektroda, funak, post #17878605][#16649962]

Can I add an unsupported NAND ID myself?

Yes. Pick a chip with matching geometry from the list, edit LUN-, block- and page-sizes, then save as a custom XML entry. Example: TC58BVG0S3HTA00 added by user in 5 min [Elektroda, bolvan, post #18061891]

How do I prepare a Samsung D5500 dump?

  1. Detect K9GAG08U0E.
  2. Press “Prepare file D5500”; select source dump and output file.
  3. Click “Erase”, then “Write”. The wizard remaps all bad blocks and recreates the BBT automatically [Elektroda, funak, post #16649962]

Does NANDLite handle eMMC or SPI NOR?

v1.0: only parallel NAND. v1.2 will add SPI/I²C via EXT header; v2.0 will add eMMC and NOR through USB 3.0/FPGA adapter [Elektroda, funak, post #18223831]

What is the largest page size validated?

16 384 + 1 280 B pages (Hynix H27UCG8T2BTR-BC, 64 Gbit). Verify reports <130 flipped bits per page—well within the 640-bit ECC budget [Elektroda, funak, post #16876251]

How do I flash chips that need 1.8 V I/O?

Use NANDLite v2.0 or v1.0 with the dual-voltage adapter; set supply to 1.8 V and leave VCC at 3.0 V as per ONFI [Elektroda, funak, post #17298560]

Where can I buy genuine TSOP48 sockets?

Original Yamaichi TSOP48 cost ≈PLN 180 at Semicon; tested Chinese clones work but lose spring tension after ~100 insertions [Elektroda, tplewa, post #15976786][funak, #15979863].

Statistic: how many bad blocks are typical on a blank 8 GB MLC?

Four bad blocks (0.2 %) per die is typical; sample K9GAG08U0E showed 8 bad blocks right after erase [Elektroda, funak, post #16656035]

Failure fact: what causes endless verify loops?

If geometry is unset (page = 0), the app enters an infinite verify loop—select a matching chip definition first [Elektroda, funak, post #18400138]
Generated by the language model.
ADVERTISEMENT