2.8 KiB
OpenIPC Wiki
CH341A Programmer
Fixing high voltage bug
Early versions, prior ver. 1.7, of the cheap and popular CH341A Mini Programmer have a nasty bug where voltage levels on data lines remain at 5V despite the programmer being set to 3.3V with the jumper.
@ddemos1963 came out with an interesting hack to fix the issue in an efficient and artsy way.
Here's what you do.
Sever the connection between between 5V power line and the CH341A chip. With a sharp utility knife, cut the trace on the back of the programmer board.
Connect 3.3v output leg of the voltage regulator to pin 9 of CH341A IC bridging it to a corresponding trace at a nearby capacitor.
Restore power to the chip re-routing 3.3V voltage from 3v3 pin to pin 28 of CH341A IC through 5V pin connector on the header.
Troubleshooting
libusb: error [get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/001/003, errno=13
libusb: error [get_usbfs_fd] libusb requires write access to USB device nodes
If you get an error message like this running a programming software, you need to adjust permissions on the USB port for that device.
Create a udev rule file
sudo vi /etc/udev/rules.d/99-ch341a-prog.rules
add the following content in the file:
# udev rule that sets permissions for CH341A programmer in Linux.
# Put this file in /etc/udev/rules.d and reload udev rules or reboot to install
SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="5512", MODE="0666"
save the file, reload udev
sudo udevadm control --reload-rules
sudo udevadm trigger
then unplug the programmer and plug it back in a USB port.
Power supply isolation
We also recommend insulating the output going to the VCC terminal block and clamps with a piece of heat pipe to prevent power supply to the board through this circuit. Power supply can trigger the processor to start up and the work of reading/writing information from the flash chip will be disrupted.
Software
- SNANDer or this fork
- microsnander from OpenIPC
- ch341prog
- flashrom
- DIY BCQ CH341A forum (Chinese, use Chrome automatic translation)
- CH341A Programmer (Russian, use Chrome automatic translation)