logo elektroda
logo elektroda
X
logo elektroda

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

p.kaczmarek2  7 6765 Cool? (+3)
Listen:

TL;DR LABEL_AI_GENERATED

  • 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.
AI summary based on the discussion. May contain errors.

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!

About Author
p.kaczmarek2
p.kaczmarek2 wrote 14797 posts with rating 12955 , helped 659 times. Been with us since 2014 year.

Comments

Mateusz_konstruktor 05 Apr 2023 07:55

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... [Read more]

@GUTEK@ 05 Apr 2023 21:53

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:... [Read more]

fotisp2 23 Apr 2023 13:44

The best program in my opinion for the CH341 is the Ch341Programmer_v 1.38 https://obrazki.elektroda.pl/4629677800_1682250272_thumb.jpg [Read more]

DeDaMrAz 03 Oct 2025 19:13

Ok, let's see what it is that we can do for OBK with this. here is the kit I just got https://obrazki.elektroda.pl/7499452000_1759511589_thumb.jpg [Read more]

p.kaczmarek2 03 Oct 2025 19:18

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... [Read more]

DeDaMrAz 03 Oct 2025 21:28

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... [Read more]

p.kaczmarek2 04 Oct 2025 01:54

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. [Read more]

FAQ LABEL_AI_GENERATED

TL;DR: For 15 SPI-flash questions, “adapters are a must” is the core safety rule: CH341 workflows can read 512 KB–32768 KB chips, but voltage and JEDEC detection decide success. This FAQ helps repairers use CH341, NeoProgrammer, CH341Programmer v1.38, and OBK Easy Flasher safely. [#21709178] Why it matters: A wrong CH341 voltage or unsupported JEDEC ID can turn a simple BIOS or IoT flash backup into a failed read or damaged chip.

Tool or method Thread-specific role Reported capability or limit
NeoProgrammer Tutorial tool Used for 25VQ16ATIG read/write and verification
CH341Programmer v1.38 Preferred by one participant Described as “the best program” for CH341
OBK Easy Flasher New GenericSPI support Read, write, verify, erase all, blank check
SOIC clip In-circuit access Convenient, but not always reliable
Desoldering Direct chip access More controlled than clip flashing

Key insight: Treat CH341 SPI flashing as a voltage-first job. Check 3.3 V, 2.5 V, or 1.8 V needs before reading, writing, or erasing any flash chip.

Quick Facts

  • The tutorial covers a 25VQ16ATIG SPI flash using a CH341 dongle, NeoProgrammer software, and SOIC/SOP soldering guidance. [#20522371]
  • Some CH341 programmer versions may put 5 V levels on SPI lines, while many SPI flash chips expect 3.3 V operation. [#20522371]
  • Low-voltage flash parts need attention at 2.5 V or 1.8 V; one participant calls lower-voltage adapters “a must at the start.” [#20525683]
  • OBK Easy Flasher logs showed successful size detection at 512 KB, 2048 KB, 8192 KB, 16384 KB, and 32768 KB. [#21709178]
  • One edge case failed: JEDEC ID FF-7F-9D-20 returned 0 KB and only read length 0x1. [#21709178]

How do you read and write a 25VQ16ATIG SPI flash memory using a CH341 programmer and NeoProgrammer?

Use a CH341 dongle with NeoProgrammer to read, save, write, and verify the 25VQ16ATIG dump.
  1. Connect the SPI flash to the CH341, preferably off-board.
  2. Read the chip and save a backup before writing.
  3. Write the image, then verify it with NeoProgrammer. The tutorial used a 25VQ16ATIG chip and showed both reading and writing in one video workflow. [#20522371]

How can you desolder and solder an SOIC/SOP SPI flash chip without using hot air?

Desolder the SOIC/SOP SPI flash with a soldering-iron method, then solder it back after programming. The thread’s video covers desoldering and soldering without hot air for an SOIC/SOP memory package. This approach gives direct access to the chip pins. It avoids the unreliable contact problems that can happen with a clip. The same method can apply to BIOS flash or IoT WiFi-module flash. [#20522371]

What is an SPI flash memory chip and where is it commonly used in devices like BIOS chips and IoT WiFi modules?

An SPI flash memory chip stores firmware in devices such as BIOS boards and IoT WiFi modules. “SPI flash memory is a non-volatile memory chip that uses a Serial Peripheral Interface bus, stores firmware or configuration data, and appears in BIOS chips, WiFi modules, and embedded devices.” The thread uses a 25VQ16ATIG example and mentions computer motherboard BIOS use. [#20522371]

What is a CH341A programmer and what does it do when working with SPI flash chips?

A CH341A programmer reads and writes SPI flash chips through a USB-connected dongle. “CH341A programmer is a USB flash-programming adapter that connects a computer to SPI memory, drives the chip’s serial lines, and lets software read, write, erase, or verify firmware images.” The thread uses a CH341 dongle with NeoProgrammer and later OBK Easy Flasher. [#20522371]

Why can some CH341 programmers be risky for 3.3V SPI flash chips because of 5V signal levels?

Some CH341 programmer versions are risky because their SPI lines may use 5 V levels. Many SPI flash chips do not expect 5 V signalling. The thread warns users to choose a newer CH341 version or modify an older one for 3.3 V operation. This matters before connecting BIOS chips, IoT modules, or 25VQ16ATIG-type memories. [#20522371]

How do you modify an older CH341 programmer to work safely at 3.3V?

Modify an older CH341 by changing its supply and operating mode to 3.3 V. The thread describes this as a “3.3V mod” for older CH341 versions. The quoted instruction says to “switch the power supply and mode to 3.3V.” Perform this before connecting a 3.3 V flash chip to avoid 5 V SPI signalling. [#20525683]

What should you check before using a CH341 programmer with 1.8V or 2.5V SPI flash memory?

Check the flash chip voltage first, especially for 1.8 V or 2.5 V devices. The thread states that lower-voltage flash memories appear even in simple electronic devices. It also says adapters for lower voltages are needed from the start. For 1.8 V parts, one participant built a quick makeshift programmer and successfully detected and programmed the memory. [#20525683]

CH341Programmer v1.38 vs NeoProgrammer vs OBK Easy Flasher — which tool is better for reading and writing SPI flash?

Use NeoProgrammer for the shown tutorial, CH341Programmer v1.38 as one user’s preferred CH341 tool, and OBK Easy Flasher for OBK-related GenericSPI testing. One participant wrote that CH341Programmer v1.38 is “the best program” for CH341. OBK Easy Flasher later added read, write, verify, erase all, and blank check. NeoProgrammer remains useful for cross-checking OBK results. [#20552069]

How reliable are SOIC test clips for flashing SPI memory in-circuit compared with desoldering the chip?

SOIC test clips are convenient but less reliable than direct chip access after desoldering. The thread says CH341 kits come with clips and can flash without soldering. It also warns that this approach may not be reliable in some cases. Desoldering the SOIC/SOP chip gives cleaner access for reading, writing, and verification. [#20522371]

How can you use OBK Easy Flasher or BK7231GUIFlashTool with a CH341 programmer in GenericSPI mode?

Use BK7231GUIFlashTool in GenericSPI mode with a CH341 connected and ready. The thread points users to the OBK Easy Flasher repository and says to follow the video instructions while using the OBK flasher. Windows 11 testing showed logs with “Flasher mode: GenericSPI” and “CH341 ready!” before JEDEC ID detection. One working read detected a 2048 KB chip. [#21709178]

What SPI flash operations does OBK Easy Flasher support, such as read, write, verify, erase all, and blank check?

OBK Easy Flasher supports read flash, write flash, verify, erase all, and blank check for GenericSPI use. The thread says read flash can detect full 2 MB size. It also supports drag-and-drop files for writing. “Erase all” means a full chip erase. Users can verify results with NeoProgrammer after OBK Easy Flasher writes the chip. [#21708998]

Why does OBK Easy Flasher detect JEDEC ID FF-7F-9D-20 as 0 KB flash size?

OBK Easy Flasher detects FF-7F-9D-20 as 0 KB because it cannot decode that JEDEC ID automatically. The log shows JEDEC ID FF-7F-9D-20, detected flash size 0 KB, and read length 0x1. The maintainer states that a lookup table would likely be needed for that chip. This is the thread’s clearest compatibility failure. [#21709363]

What is a JEDEC ID and how is it used to identify SPI flash chip size and type?

A JEDEC ID identifies an SPI flash chip so software can infer type and memory size. “JEDEC ID is a manufacturer and device identification code that SPI flash tools read from the chip, then map to capacity, command support, and compatible read/write behavior.” OBK logs used IDs such as FF-EF-40-15 for 2048 KB and FF-EF-40-19 for 32768 KB. [#21709178]

Which SPI flash chips work well with OBK Easy Flasher, and which chips still need compatibility testing?

OBK Easy Flasher worked on several tested chips from 512 KB to 32768 KB, but FF-7F-9D-20 still needed support. Reported successful detections included FE-C2-20-13 at 512 KB, FF-EF-40-15 at 2048 KB, FF-EF-60-17 at 8192 KB, FF-C2-20-18 at 16384 KB, and FF-EF-40-19 at 32768 KB. The smallest tested chip failed size decoding. [#21709178]

How can you troubleshoot CH341 SPI flash reading problems on Windows 11 with a .NET 4.8 flasher tool?

Troubleshoot Windows 11 reads by confirming the .NET 4.8 build runs, then checking CH341 readiness and JEDEC logs. The working log sequence showed “Flasher mode: GenericSPI,” “CH341 ready!,” then a JEDEC ID and detected size. If size shows 0 KB, compare the ID against known working logs. Verify successful reads with NeoProgrammer when possible. [#21709178]
AI summary based on the discussion. May contain errors.
%}