MacBook M5 driver CH340 dosen't work

Gerdchen03
Posts: 7
Joined: Thu Apr 23, 2020 7:19 am

MacBook M5 driver CH340 dosen't work

Postby Gerdchen03 » Sun Mar 15, 2026 9:52 pm

Ich have a new MacBook M5 with MacOS 26.3.1. My ESP32 Dev V1 with a CH340 chip isn't working properly. On my old MacBook, the Arduino IDE shows the port cu.wchusbserial14100. I can program the ESP through that port. On my new MacBook, the Arduino IDE shows the port cu.usbserial-10. On this MacBook, the Arduino IDE displays the following output with an error message when I try to program the ESP:

Code: Select all

esptool.py v4.5.1
Serial port /dev/cu.usbserial-10
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 84:1f:e8:1f:f8:6c
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.

A fatal error occurred: Unable to verify flash chip connection (Invalid head of packet (0xE0): Possible serial noise or corruption.).
A fatal error occurred: Unable to verify flash chip connection (Invalid packet header (0xE0): Possible serial noise or corruption.).
I downloaded the latest driver from here “https://www.wch-ic.com/downloads/CH341SER_MAC_ZIP.html” and tried to install it using the “CH34xVCPDriver.dmg” app. When I launch the app and click “Install,” nothing happens at all. I think the driver and my system aren’t compatible. Does anyone have any ideas?

Gerdchen03
Posts: 7
Joined: Thu Apr 23, 2020 7:19 am

Re: MacBook M5 driver CH340 dosen't work

Postby Gerdchen03 » Mon Mar 16, 2026 10:12 am

I could solve the problem. I had to set baud rate to 115200

RandomInternetGuy
Posts: 81
Joined: Fri Aug 11, 2023 4:56 am

Re: MacBook M5 driver CH340 dosen't work

Postby RandomInternetGuy » Thu Mar 26, 2026 4:47 am

If I understand what you're typing, this is an old problem, and I wish Apple would fix it.

The CH340/CH341/CH342/CH347/CH348/CH9102 driver (yes, I'm keyword stuffing) in macOS is convenient but is slightly broken. In some ways, that's more frustrating than being totally broken. It loses data at high speeds under stress. (This is confirmed by your report that it works at the—leisurely, by modern standards—speed of B115200.)

The fix is to install Win Chip Head's serial driver, which should instinctively go against everything you've ever been taught. It's not a signed binary. It's in a weird language. The instructions are terrible. You have to grant it the highest possible trust levels. etc. Your spidey senses SHOULD be bristling. But install it anyway...

Now you find that your USB/serial bridge actually has TWO dev nodes. There's the /dev/cu.whateveritusedtobe that's still there, routes through the old driver, and still works badly, and the /dev/cu.wchusbserialwhatever that's NEW ... and it actually works reliably.

Any time your apps (like esptool for uploading or monitoring) try to talk to the device at high speed, they HAVE to use the /dev/wch dev node in order to route through the driver that really, really knows how to communicate with those bridges. If they use the old node, they only sort of work...and at slow speeds.

This thread is polluted with other issues, but see:
https://github.com/espressif/esptool/is ... 2257272462
TL;DR: The macOS driver is bad. The WCH driver (/dev/cu.wchBLABLAH) is good. Really.

This whole process is probably the biggest black eye about this specific intersection of the ecosystem. The ESP32 with an external USB/bridge (which largely hasn't been required for any ESP32 released in the last 6-8 years, but here we are) falls down with obscure symptoms some small(ish) percentage of the time, but with fatal symptoms. |

That's very much the opposite of the "easy" experience that we buy Macs for. It's the 1990s level of Windows sucking, and that's most unfortunate. It's pretty easily the biggest black eye for this combination, and I'm sure that if the right Jr. engineer... If Apple would talk to the right Jr. engr. at WCH to authorize the transfer of an updated driver, this could be solved in an afternoon. The solution _exists_; it's just getting the attention of multiple $$$$ companies to talk to each other at the right level and getting it shipped so that dozens of Mac-using embedded people don't have to rediscover this every day.

Citations:
https://github.com/WCHSoftGroup/ch34xser_macos
https://discussions.apple.com/thread/25 ... ortBy=rank
https://github.com/WCHSoftGroup/ch34xser_macos/issues

Signed,
One who develops extensively for ESP32s using this dumb bridge AND is a (mostly) happy multi-Mac user. This has plagued me from my 201x Intel systems on through my latest Tahoe images.

Who is online

Users browsing this forum: meta-externalagent, Perplexity-User, Qwantbot and 8 guests