logo elektroda
logo elektroda
X
logo elektroda

Flash NAND Lite Memory Programmer! TSOP48

funak 407655 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):
  • #181 17749208
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    Shipping to every country around the world: 21 PLN
  • ADVERTISEMENT
  • #182 17761423
    Vit2
    Level 11  
    Posts: 12
    Rate: 3
    Thank you Funai. works fine can you do english?
  • ADVERTISEMENT
  • #183 17761555
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    I can only do, I am sick now. I need to gain strength and I will make language versions with charts :) Maybe it will be possible at the end of the week.
  • #184 17761638
    Vit2
    Level 11  
    Posts: 12
    Rate: 3
    If I had an "exe" file, I could translate it into English.
  • #185 17761644
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    Relax ... there will be language files in XML so you can translate freely.
  • #186 17761693
    Vit2
    Level 11  
    Posts: 12
    Rate: 3
    Thank you, good luck.

    Added after 13 [hours] 53 [minutes]:

    Not working with 29F8G08ABABA Can you add?

    Added after 25 [minutes]:

    I found, sorry, my nand is guilty.
  • #187 17764156
    fachura
    Level 17  
    Posts: 187
    Help: 11
    Rate: 111
    Board Language: polish
    Hello everyone, I have a question whether the programmer will handle such a nand 256W3A2BN6E system. Please answer
  • #188 17764223
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    Yes, this memory is even on the list of supported chipsets, so you don't need to do anything else.
  • #189 17764247
    fachura
    Level 17  
    Posts: 187
    Help: 11
    Rate: 111
    Board Language: polish
    Thank you for your response. Where can you buy your programmer?
  • #190 17764344
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    For me, directly via PW or simply on Allegro.
    I issue an invoice for the product.
  • #191 17778423
    pawol
    Level 22  
    Posts: 772
    Help: 18
    Rate: 129
    Board Language: polish
    Hello,
    After connecting bga to spider (it is possible)
    the programmer will handle Toshiba THGBMDG5D1LBAIL?
    Datasheet for ease of use in the attachment
    Attachments:
    • THGBMDG5D1LBAIL-Toshiba.pdf (1.16 MB) You must be logged in to download this attachment.
  • ADVERTISEMENT
  • #192 17778528
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    Hello

    Unfortunately, this memory cannot be handled at this time.
    I mean, theoretically, it could be done, but there is no programming support on my part yet.

    Support will come with version v2.0 which I estimate in about 2-3 months. I need to prepare a test environment for myself.
    I have 4GB memory in stock, but I still have to buy a BGA adapter and connect it somehow to the programmer and make the software.
  • #193 17778709
    pawol
    Level 22  
    Posts: 772
    Help: 18
    Rate: 129
    Board Language: polish
    Thanks. I'm waiting for info in this thread. I will be watching
  • #194 17785328
    pawol
    Level 22  
    Posts: 772
    Help: 18
    Rate: 129
    Board Language: polish
    Is it true that there is a patent for four-wire eMMC memory access?
    I see on YouTube that Indians connect the DO, CLK, CMD and GND wires to the eMMC and make a jumper on the main Prock quartz. This way they choose eMMC in SPI mode.

    Can it somehow be embraced by your programmer or some other? I am skipping the RT809H which is just a bit expensive for me.

    Added after 20 [minutes]:

    I guess I found they use a regular SD reader + 3.3v to 1.8v level converter.
    Description in the attachment. Only unfortunately it looks like most SD readers do not have access to the boot partitions I care about. Nevertheless, in the SPI mode, Indians use the RT809H programmer to select the boot partition
    Attachments:
    • Cheap SD card reader to eMMC.pdf (14.95 MB) You must be logged in to download this attachment.
  • #195 17788525
    EXab
    Level 2  
    Posts: 3
    Rate: 2
    funak - Fyuzy how to program? Flash NAND Lite Memory Programmer! TSOP48 Flash NAND Lite Memory Programmer! TSOP48
  • #196 17789059
    mahcin
    Level 27  
    Posts: 1603
    Help: 21
    Rate: 60
    pawol wrote:
    Is it true that there is a patent for four-wire eMMC memory access?
    I see on YouTube that Indians connect the DO, CLK, CMD and GND wires to the eMMC and make a jumper on the main Prock quartz. This way they choose eMMC in SPI mode.

    Of course it's true.

    Quote:

    Nevertheless, in the SPI mode, Indians use the RT809H programmer to select the boot partition


    Take it easy, so do Poles ;-)

    You have read about the super positives, now read about the negatives, because, for example, many colleagues from across the eastern border skip such operations and, however, take out the layout because the data does not always match, and then an avalanche of problems ... there are also advantages in favor of "time" , and the cons that speak "against", that is, you think it's okay and in fact your dump is a dump and that the ripped batch once worked is a fluke ;-) Of course, such a problem does not occur often, but it does happen.
  • #197 17789329
    pawol
    Level 22  
    Posts: 772
    Help: 18
    Rate: 129
    Board Language: polish
    I don't know. I need a total of ubooty and how it works, the rest will be overwritten from scratch
  • #198 17790726
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    EXab wrote:
    funak - Fyuzy how to program?


    BOOTRST - BOOTLOADER
    TOSCSEL - PINS
    BODPD - CONTINOUS
    BODACT - CONTINUOS
  • #199 17872323
    EXab
    Level 2  
    Posts: 3
    Rate: 2
    Funak Can you send me the language files in XML? I'll do the translation myself. And more. I did everything as instructed on page 2. I didn't save my native software. Do I have to save native software?
  • #200 17876669
    fachura
    Level 17  
    Posts: 187
    Help: 11
    Rate: 111
    Board Language: polish
    Hello, when will the new software version be released and will the TC58DVM92A5TA10 chip be added to the list of supported devices?
  • #201 17877382
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    The new version will be in mid-April.

    However, this chip: TC58DVM92A5TA00 should be detected.
    If not, please select this layout manually from the layout list.

    In the database, I suspect that the user gave me incorrect data and it concerns the system with the designation A3.
  • #202 17878382
    fachura
    Level 17  
    Posts: 187
    Help: 11
    Rate: 111
    Board Language: polish
    Hello, after inserting the TC58DVM92A5TA10 chip into the programmer, it does not detect it, but when I manually select the TC58DVM92A5TA00 chip, it is OK and the question here is that the systems differ in the final 10 and 00, does it have any effect on the reading and correct writing?
  • #203 17878408
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    Please let me know what does not detect?
    That is, it gives the identifier 00 00 00 00, is the ID like 98 76 ....?

    If he gives all zeros, there is no need to dwell on memory, there is no contact with it.
  • ADVERTISEMENT
  • #204 17878478
    fachura
    Level 17  
    Posts: 187
    Help: 11
    Rate: 111
    Board Language: polish
    OK, let me say that the system is detectable as TC58DVM92A5TAJ0 ID 98 76 A5 C0 29 04 00 00 after clicking on this layout icon and going to the transfer tab, I can't do anything, read, delete or save. I will manually select the chip from the table TC58DVM92A5TA00 without function (detect chip) is OK. And now the question is whether the TC58DVM92A5TA10 chip is the same as the TC58DVM92A5TA00, I will add that the difference is in the final number. I mainly mean whether I will have the correct memory.
  • #205 17878605
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    Ok, so it looks like there is no layout signature added to the layout database.


    fachura wrote:
    And now the question is whether the TC58DVM92A5TA10 chip is the same as the TC58DVM92A5TA00, I will add that the difference is in the final number. I mainly mean whether I will have the correct memory.


    The tip has little effect on the basic functions of memory.

    For example, if you compare TC58DVM92A5TA00 vs TC58DVM92A3TA00:

    This version of A5 is characterized by lower power consumption and higher speed, so it can be concluded that A5 simply means memory generation.

    According to the manufacturer, the ID is 98 76 = 2 bytes. Thus, it can be concluded that each TC58DVM92 memory will be supported equally.

    Added after 2 [minutes]:

    Writing to memory will be correct. The more that it is an SLC type memory. I recommend that you verify the record, if there are NO errors then you can conclude that the record is correct.

    For this memory, the number of possible error bits is 1. This means that if two errors (Error Count bit> 1) occur during verification - the memory is to be thrown away.
  • #206 17878636
    fachura
    Level 17  
    Posts: 187
    Help: 11
    Rate: 111
    Board Language: polish
    Buddy, does memory verification on this software always take ages?
    Recently I have used this option and after an hour or so the progress bar neither shuddered some kind of massacre.
  • #207 17878689
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    Theoretically, it should take about 2-3 minutes for this memory.

    Added after 1 [minutes]:

    If the progress bar hasn't flickered, the memory is not responding.

    It is customary to conclude that if nothing happens in 10 seconds, further waiting will not help.
    Then only remove the programmer from the USB and insert it again.
  • #208 17878696
    fachura
    Level 17  
    Posts: 187
    Help: 11
    Rate: 111
    Board Language: polish
    Exactly, and this is not the case, I did it with three computers on different memory bones and without changes. Tell me what's the problem?

    I mean it happens, it scans block by block but a lot slowiiiiiiiiiii .

    When it comes to erasing and saving it takes no time, I'm happy with it.
  • #209 17878745
    funak
    Level 27  
    Posts: 1074
    Help: 98
    Rate: 455
    Board Language: polish
    For example, I can give a memory taken from an SSD with the designation TT58G2ZASA.


    Flash NAND Lite Memory Programmer! TSOP48

    I only know that the memory comes from a 128GB SSD for mSATA.
    There were 4 chips on the disk, so it can be concluded that this memory has a capacity of 32GB or 256Gbit.

    So I enter large values from my hand
    Target: 1
    LUN: 1
    LUNSize: 32768
    BlockSize: 256
    PageSize: 32768 + 8192

    The program calculated a memory capacity of 274GB, but we are going on.
    Flash NAND Lite Memory Programmer! TSOP48

    We go to the Content tab and try to read any page.
    We move the indicators and what do we see?
    Flash NAND Lite Memory Programmer! TSOP48

    And we see that:
    - The memory is empty because they are all FFs
    - memory changes its content around 0x4500, which is 17 664.
    And here we can see what the page size is. Basically MainPage is a power of two, so the page size is: 16384 + 1280.

    I assume that the block size is 256, so we change it to get the 32GB:
    Flash NAND Lite Memory Programmer! TSOP48

    Now the memory should be erased, so let's go:
    Flash NAND Lite Memory Programmer! TSOP48

    Memory erased and here's a surprise:
    Flash NAND Lite Memory Programmer! TSOP48

    From block 4212, there are only errors, so the number of blocks in this memory is 4212.
    
    Error erase block: T:1 L:0 B:2630 P:0
    Error erase block: T:1 L:0 B:2635 P:0
    Error erase block: T:1 L:0 B:3122 P:0
    Error erase block: T:1 L:0 B:4212 P:0
    Error erase block: T:1 L:0 B:4213 P:0
    Error erase block: T:1 L:0 B:4214 P:0
    Error erase block: T:1 L:0 B:4215 P:0
    Error erase block: T:1 L:0 B:4216 P:0
    Error erase block: T:1 L:0 B:4217 P:0
    Error erase block: T:1 L:0 B:4218 P:0
    


    So we correct:
    LUNSize: 4212
    And the program counts that 17.6GB of memory capacity, so where is the rest?
    It looks like there are two structures in this physical memory that are switched by separate CE inputs.

    Thus, target: 2

    To sum up:
    Flash NAND Lite Memory Programmer! TSOP48

    And so it was easy to communicate with my unknown memory.
    The example may not be universal and there are many possibilities, but it shows how universal the programmer is, where you can experiment yourself :)
  • #210 17878769
    fachura
    Level 17  
    Posts: 187
    Help: 11
    Rate: 111
    Board Language: polish
    OK, I understand the new memory chip erasing and here we can see it.
    Flash NAND Lite Memory Programmer! TSOP48
    and the verification of the same memory goes like this Flash NAND Lite Memory Programmer! TSOP48

    The memory verification screen shot was taken 45 minutes after it started working and the progress bar will not budge. What is it - let me add that memory is new and so is the case with each of them.
📢 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