Skip to content
johnjmaurer edited this page Aug 8, 2025 · 8 revisions

Hardware

The older model CH341A, the black one with the gold edge is the most popular, the cheapest, and versatile 24/25 series EEPROM programmer.

image

Most of these units have a nasty hardware quirk which must be fixed before you can use the programmer with any 3.3V flash chip.

CH341A programmer

CH341A programmer

Software

I prefer this fork of SNANDer, but there is also

Working with a clip

The programming clip allows you to read and write the contents of the flash memory chip without having to desolder the chip.

Connect the clip to the CH341A programmer using a DIP8 adapter and gently pinch the chip with the clip jaws. In your computer, run snander -i and confirm the chip is detected.

Reading the firmware

Use snander -r <filename> to save a copy of the flash chip content to a file.

Repeat the procedure of reading twice back to back using different filenames. Then compare checksums of these files.

md5sum <filename1> <filename2>

If the checksums match, the firmware is saved correctly. If they don't, check your setup and repeat the process until you get two identical files.

Writing the firmware

Use snander -e && snander -w <filename> -v to erase the flash chip clean and write a new firmware to it with verification of the result.

Tutorials

Programming Jooan A6M with a clip, part 1

Programming Jooan A6M with a clip, part 1

Programming Jooan A6M with a clip, part 2

Programming Jooan A6M with a clip, part 2

Troubleshooting

To make the CH341A work on a Raspberry PI, you must add these to /boot/cmdline.txt:

dwc_otg.fiq_enable=0 dwc_otg.fiq_fsm_enable=0

Fixing higher than needed dataline voltage bug

Early versions, prior to version 1.7, of the cheap and popular CH341A mini programmer have a nasty bug where the voltage levels on the data lines remain at 5V even though the programmer is jumpered to 3.3V.

@ddemos1963 came up with an interesting hack to solve the problem in an efficient and artistic way.

image image

Here's what you need to do.

image

Sever the connection between the 5V power line and the CH341A chip. Use a sharp utility knife to cut the trace on the backside of the programmer board.

image

Connect the 3.3V output leg of the voltage regulator to pin 9 of the CH341A IC by bridging it to a corresponding trace at the capacitor located nearby.

image

Restore power to the chip by re-routing the 3.3V voltage from the 3v3 pin to pin 28 of the CH341A IC through the 5V pin connector on the header.

image


Update: August 2025 V1612 version from Amazon US

Some of the trace routing is slightly different, and C3 in the pictures above is now labeled C4. I drilled out the via on the 5v trace as shown. The rest was done as above.

CH341A Programmer Mod1 CH341A Programmer Mod2 CH341A Programmer Mod3 CH341A Programmer Mod4

Correct orientation of clip adapter

Screenshot 2025-08-01 134739

Resources

  1. Wiki Home
  2. About the Project
    1. Contributions
    2. Features
    3. Project Philosophy
    4. Releases
  3. Getting Started
    1. FAQ
    2. Hardware Identification
    3. Ingenic USB Cloner
      1. OTG Booting
    4. Installation: General
    5. Installation: No Tools Methods
    6. Resources and Links
    7. Support Community
    8. Troubleshooting
    9. UART Connection
    10. Updating Firmware
    11. Web UI
  4. Supported Cameras
    1. Cameras
    2. 360 AP1PA3
    3. AliExpress LTIA‐37FJZ (Vanhua Z55 module)
    4. AOQEE C1
    5. Aosu C5L
    6. Cinnado
      1. Cinnado D1 2K
      2. Cinnado D1 3K
    7. Dekco DC5L
    8. Eufy
      1. Eufy E210 Outdoor Cam
      2. Eufy E220
    9. Galayou/Wansview
      1. Galayou G2
      2. Galayou G7
      3. Wansview W6
      4. Wansview W7/Galayou Y4
    10. Hualai (Wyze/Atom/Neos/Personal)
      1. Dafang Upgrading for Wyze v2
      2. NEOS conversion
      3. Personalcam
      4. Wyze Cam Pan V1
      5. Wyze Doorbell (V1)
        1. Chime Reverse Engineering
      6. Wyze v2/Neos SmartCam/ATOM Cam 1
      7. Wyze v3
      8. Wyze Accessories
    11. iFlytek XFP301‐M
    12. Jienuo JN-107-AR-E-WIFI
    13. Jooan A6M
    14. LaView L2
    15. LongPlus X07
    16. LSC 3215672
    17. Sannce I21AG
    18. Sonoff Cam‐S2
    19. Wuuk Y0510
    20. Xiaomi
      1. Xiaomi Mijia1080p (SXJ02ZM)
      2. Xiaomi MJSXJ03HL
      3. Xiaomi Outdoor Camera AW200 (MJSXJ05HL)
  5. Configuration
    1. Administration
    2. Automation
    3. Cron jobs
    4. General
    5. LED Indicators
    6. Lighting
    7. Media Streaming Endpoints
    8. Network Storage
    9. Networking
      1. Wireless Networking
      2. USB Direct w CDC
      3. USB Ethernet Networking
      4. Remote Access
      5. VPN
        1. Tailscale
        2. Wireguard
        3. Zerotier
      6. Wi-Fi
        1. Self Hosted AP
        2. Tips and Tricks
      7. WWAN (Cellular)
    10. Night Mode
    11. ONVIF
    12. OSD (On-screen Display)
    13. Plugins
      1. Motion Guard
      2. Yandex Disk
    14. SSH Access Keys
    15. Wi-Fi Access
    16. Provisioning
  6. Integration
    1. Home Assistant
    2. Frigate
    3. Ingenic A1/$15 NVR
    4. Mobile Apps
    5. MQTT Integration
    6. Virtual Webcam on Linux
    7. Mainsail (Klipper)
  7. Development
    1. Booting
      1. Boot: MMC SD
      2. Boot: NFS
    2. CH341A Programmer
    3. RTSP Players
    4. Flash Chips
    5. go2rtc
    6. Porting Guide
    7. Ingenic Platform Capability Matrix
    8. Ingenic Image Processor
    9. ISP Reserved Memory (RMEM)
    10. Debugging libimp
    11. Software
      1. Building From Sources
      2. Buildroot
      3. Toolchain
    12. SSL and TLS Web UI in thingino
    13. Tech Info
      1. Hardware
      2. PWM Info
      3. Supported Hardware
      4. T23 GPIOs
      5. T31 GPIOs
    14. U-Boot Cheatsheet
    15. Zeratul/Atlas/Tassadar
    16. Resources
Clone this wiki locally