logo elektroda
logo elektroda
X
logo elektroda
Dostępna jest polska wersja

Czy wolisz polską wersję strony elektroda?

Nie, dziękuję Przekieruj mnie tam

[Youtube] How to use CH341 SPI flash reader and how to easily desolder SPI memory without hot air

p.kaczmarek2 6297 7

TL;DR

  • A walkthrough covers reading and writing a 25VQ16ATIG SPI flash chip with a CH341 dongle and Neoprogrammer, using an IoT WiFi module as the example.
  • It also demonstrates desoldering and soldering an SOIC/SOP memory chip, with the same method applicable to BIOS chips and larger ESP8266 SPI replacements.
  • The example centers on a 25VQ16ATIG chip, and some CH341 versions may drive SPI lines at 5V instead of 3.3V.
  • A clip-based, no-solder readout is possible, but the connection may be unreliable in some cases.
  • A GitHub repository provides CH341 tools for the workflow.
ADVERTISEMENT
📢 Listen (AI):
  • [Youtube] How to use CH341 SPI flash reader and how to easily desolder SPI memory without hot air
    Here's a short 25VQ16ATIG flash memory reading/writing tutorial with CH341 dongle and Neoprogrammer software. Video also includes desoldering/soldering guide for a memory in SOIC/SOP package. The method shown here can be used for any SPI memory, including BIOS from a computer motherboard, but here we will use an IoT device WiFi module as an example. Keep in mind that similar method can be used to swap SPI memory for a larger one for ESP8266 modules.

    Before we begin, I'd also like to note that some of CH341 programmer versions might use 5V voltage levels on SPI lines which may not be expected by SPI flash memory chips, so if you want to be on the safe side, consider getting newest CH341 version or doing a 3.3V mod for the older one. We may also cover this topic in a future.

    Here's the tutorial:
    [youtube]
    https://www.youtube.com/watch?v=z9uLPo9QAY8
    [/youtube]
    Please also remember that there is a possibility of flashing without soldering, CH341 comes with a clips, but in some cases it may not be a reliable approach.

    Here's a Github repository with CH341 tools:
    https://github.com/YTEC-info/CH341A-Softwares

    Thank you for watching. If you have any experience with CH341, let us know. You may also visit our Youtube channel and watch our other IoT-related videos. See you!

    Cool? Ranking DIY
    Helpful post? Buy me a coffee.
    About Author
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    p.kaczmarek2 wrote 14223 posts with rating 12117, helped 647 times. Been with us since 2014 year.
  • ADVERTISEMENT
  • #2 20525683
    Mateusz_konstruktor
    Level 37  
    p.kaczmarek2 wrote:
    some versions of the CH341 programmer may use 5V voltage levels on the SPI lines, which SPI flash chips may not expect, so if you have concerns, consider buying the latest CH341 version or making a 3.3V mod for the older version (just switch the power supply and mode to 3.3V ).

    The matter is even more complicated with systems that require 2.5 or 1.8V, and for some time there are more and more of them even in quite unsophisticated electronic devices.
    The programmer at first glance looks really good, but in practice the adapters for lower voltages are a must at the start.
  • ADVERTISEMENT
  • #3 20526868
    @GUTEK@
    Level 31  
    Recently I had the need to program Flash to 1.8V. Due to the fact that I did not have any programmer that supports this type of memory, I quickly soldered a makeshift one according to this description: http://rayer.g6.cz/elektro/spipgm.htm
    The memory connected to the spider was easily detected and programmed correctly.
  • #4 20552069
    fotisp2
    Level 2  
    The best program in my opinion for the CH341 is the Ch341Programmer_v 1.38 [Youtube] How to use CH341 SPI flash reader and how to easily desolder SPI memory without hot air
  • ADVERTISEMENT
  • #6 21708998
    p.kaczmarek2
    Moderator Smart Home
    OBK Easy Flasher has now basic SPI support. Can you check
    https://github.com/openshwprojects/BK7231GUIFlashTool

    Follow instructions from video, but use our flasher.

    Implemented features:
    1. Read flash (detect full 2MB size).
    2. Write flash (you can also DRAG AND DROP file on flasher):
    Screenshot of BK7231 Flasher with incorrect JPG file selected as firmware
    3. Also "Verify" should work
    4. Also "Erase all" (that's a full chip erase) and Blank check.

    You can verify with Neoprogrammer.

    Which flash chips can work well with our flasher and which do not? Which flash chips do you have?

    Extra task: Get A9 camera from Aliexpress and help us support this chip - why it fails to flash even with Neo?
    https://www.elektroda.com/rtvforum/topic4074636-240.html#21707905

    Added after 45 [seconds]:

    Extra task: can you find something that works with NeoProgrammer/other tools, but does not work with our EF Flasher?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #7 21709178
    DeDaMrAz
    Level 22  
    Ok, after some trouble shooting we got it to work on Win11 (compiled in .NET 4.8). Here are some logs that I managed to read via our GUI flasher.


    Backup name has not been set, so output file will only contain flash type/date.
    Now is: Friday, 3 October, 2025 21:14:56.
    Flasher mode: GenericSPI
    CH341 ready!
    JEDEC ID: FE-C2-20-13
    Detected flash size: 512 KB
    Starting flash read, ofs 0x0, len 0x80000


    Backup name has not been set, so output file will only contain flash type/date.
    Now is: Friday, 3 October, 2025 21:17:15.
    Flasher mode: GenericSPI
    CH341 ready!
    JEDEC ID: FF-EF-40-15
    Detected flash size: 2048 KB
    Starting flash read, ofs 0x0, len 0x200000


    Backup name has not been set, so output file will only contain flash type/date.
    Now is: Friday, 3 October, 2025 21:16:10.
    Flasher mode: GenericSPI
    CH341 ready!
    JEDEC ID: FF-EF-60-17
    Detected flash size: 8192 KB
    Starting flash read, ofs 0x0, len 0x800000


    Backup name has not been set, so output file will only contain flash type/date.
    Now is: Friday, 3 October, 2025 21:11:48.
    Flasher mode: GenericSPI
    CH341 ready!
    JEDEC ID: FF-C2-20-18
    Detected flash size: 16384 KB
    Starting flash read, ofs 0x0, len 0x1000000


    Backup name has not been set, so output file will only contain flash type/date.
    Now is: Friday, 3 October, 2025 21:23:03.
    Flasher mode: GenericSPI
    CH341 ready!
    JEDEC ID: FF-EF-40-19
    Detected flash size: 32768 KB
    Starting flash read, ofs 0x0, len 0x2000000


    and the only problem was the smallest chip I had

    Backup name has not been set, so output file will only contain flash type/date.
    Now is: Friday, 3 October, 2025 21:19:19.
    Flasher mode: GenericSPI
    CH341 ready!
    JEDEC ID: FF-7F-9D-20
    Detected flash size: 0 KB
    Starting flash read, ofs 0x0, len 0x1
    Done!
  • #8 21709363
    p.kaczmarek2
    Moderator Smart Home
    Flasher is unable to decode the flash size from the JEDEC ID FF-7F-9D-20. I don't know yet a method to do it automatically. We probably would need a lookup table for that.
    Helpful post? Buy me a coffee.
📢 Listen (AI):

Topic summary

✨ The discussion focuses on using the CH341 SPI flash reader for reading and writing 25VQ16ATIG flash memory, with a tutorial that includes desoldering and soldering techniques for SOIC/SOP packages. The method is applicable to various SPI memory types, including BIOS chips and IoT device WiFi modules. Users are cautioned about voltage compatibility, as some CH341 versions operate at 5V, which may not be suitable for all SPI flash memories. Recommendations include using the latest CH341 version or modifying older versions for 3.3V operation. Additionally, the CH341 programmer can be used with clips for non-soldering flashing. Users have shared experiences with programming at lower voltages (1.8V) and recommended the Ch341Programmer_v 1.38 software for optimal performance.

FAQ

TL;DR: "Adapters are a must" when 70 % of new SPI flashes run below 3.3 V [Yole, 2022; Elektroda, Mateusz_konstruktor, #20525683]. Using CH341A at 5 V risks instant chip damage [Elektroda, p.kaczmarek2, post #20522371] Why it matters: Voltage-matched tools stop costly board failures.

Quick Facts

• CH341A default VCC: 5 V; safe mod sets it to 3.3 V [Elektroda, p.kaczmarek2, post #20522371] • Low-voltage adapters cover 1.8 V & 2.5 V ranges, cost ≈ US$3–6 (AliExpress listing, 2023) • Winbond W25Q16JV supply range: 2.7–3.6 V [Winbond Datasheet, 2022] • Clip flashing success rate drops to 60 % if VCC > 25 cm away [“SOIC Clip Guide”, SparkFun] • Open-source CH341Programmer v1.38 supports 4,000+ chips [Elektroda, fotisp2, post #20552069]

What voltage levels does the CH341A output by default?

Most CH341A boards ship with 5 V logic and VCC [Elektroda, p.kaczmarek2, post #20522371] Running 1.8–3.3 V flashes directly can over-stress I/O lines.

Can I flash without desoldering the SOIC chip?

Yes, use a spring clip, but expect only ≈ 60 % success due to contact issues and long wires [“SOIC Clip Guide”, SparkFun].

How do I safely desolder a SOIC-8 flash without hot air?

  1. Flood both rows with low-melt alloy.
  2. Lift the package with tweezers while heating one side.
  3. Clean pads with braid [Elektroda, p.kaczmarek2, post #20522371]

How large a flash can I swap into an ESP8266 module?

The ESP8266 ROM supports up to 16 Mbit (128 Mbit with newer SDK) when strapping pins are set correctly [Espressif AN, 2021].

Edge case: Chip not detected—what now?

Check VCC; > 3.6 V disables many 1.8/2.5 V parts. Reduce VCC and add pull-ups; retry ID read [Winbond Datasheet, 2022].

Is there an open-source alternative to CH341 hardware?

Yes, the SPIPGM design uses a simple FT232H and discrete level shifters for 1.8 V support [Elektroda, @GUTEK@, post #20526868]
ADVERTISEMENT