Hello,
does someone know how to get the CH340 serial to USB chipset running on the actual Apple MacOS ?
Regards
Heinz
Hello,
does someone know how to get the CH340 serial to USB chipset running on the actual Apple MacOS ?
Regards
Heinz
My experience with the same system version. (Note that I’m using a hackintosh)
Besides the SIP issue there are still another one uploading firmware to ESP32, currently I still cannot figure out the issue is and I’m using either Linux or Windows to perform the proccess.
macOS has included CH340 driver for quite some time. What is the exact problem?
I strongly recommend against installing any other drivers and in particular drivers from 2018, which predate the major changes Apple has made to USB drivers.
Hello Manuel,
thanks for Your response.
I think that there was on old driver installation on the Mac.
I can confirm, that now CH340 and FTDI based board are working perfect.
Regards Heinz
Glad to hear it’s working.
Indeed, that’s the most common problem: An old driver, installed some time ago, which is now in conflict with Apple’s driver.
Is that on an M1 Mac? I have a Mac with M1Pro SoC (running 13.1) and the CH34x driver seems to be missing. The device is not recognized.
BTW, the FT232 works fine.
I had the old driver installed, and I was unable to connect the Arduino IDE to the Arduino Nano 33 IoT over the USB port, the expected serial port did not appear in the macOS device list when I connected the device to the USB port on my iMac. So, I deleted the old driver I had installed, and rebooted. Still the expected serial port did not appear when the device was connected.
Is it sufficient to simply delete the old driver I installed? Will that cause the macOS Ventura CH340 driver to load? Or will it be necessary for me to somehow reinstall the original Ventura driver?
Any thoughts on what is the second most common problem? I landed on this thread after going in circles for a while trying to get a connection. OS was re-installed from scratch (fully reformatted disk) a few months ago, and I’m 100% sure I haven’t installed any older drivers since then. Running Ventura 13.2.1 (22D68). The OS is recognizing that there’s a USB serial device, but I’m constantly getting “Device not configured” failures.
Can you describe the complete context:
platformio.ini
)? If so, what’s the exact path?ls -l /dev/cu.*
show?What hardware do you use? What exact version of the CH340 does it use?
CH340G
What do you want to use the serial device for? Uploading firmware? Output from device?
I want to upload Tasmota firmware to a Tuya TYWE3S module that contains an Espressif 8266. Espressif supplies a tool (esptool.py) to do the upload. At this point, I’m trying only a few simple read commands to try to get anything at all from the device, and getting nothing at all. The simple commands include reading the chip id, reading the mac address, reading the flash id. None work. I can occasionally see the Rx light on the USB serial device flash a few times, but have yet to get any readable bytes. Dropping all the way down to screen rather than using the tool is also getting me nothing - screen exits as soon as I apply power to the Tuya module.
What action results in the message “Device not configured”? Where and how is this message shown?
Pretty much all commands try for a while, then end with that message. It shows up on the command line in the output from esptool.py. The message says it’s coming from serial.py.
Have you configured the device path for the serial device somewhere (e.g. in platformio.ini)? If so, what’s the exact path?
No, it’s used as a command-line argument. The path is /dev/cu.usbserial-1460. The number changes depending on which USB port I’m using, I’ve tried a few both direct and via an attached hub. No apparent differences. The attached hub can supply more power to the USB port than my laptop, which is why I tried it for a few attempts. No differences in the result.
What does ls -l /dev/cu.* show?
crw-rw-rw- 1 root wheel 0x16000005 Mar 27 10:00 /dev/cu.BLTH
crw-rw-rw- 1 root wheel 0x16000009 Mar 27 08:16 /dev/cu.Bluetooth-Incoming-Port
crw-rw-rw- 1 root wheel 0x16000007 Mar 27 08:16 /dev/cu.Headphones
crw-rw-rw- 1 root wheel 0x16000003 Mar 27 08:15 /dev/cu.URT1
crw-rw-rw- 1 root wheel 0x16000001 Mar 27 08:15 /dev/cu.URT2
crw-rw-rw- 1 root wheel 0x1600000b Mar 27 10:00 /dev/cu.usbserial-1460
If I unplug the serial device, all remain the same except the usbserial device disappears. No surprise there.
Can you provide a screenshot of the USB section of the System Information application in macOS (click on Hardware / USB)?
USB Serial:
Product ID: 0x7523
Vendor ID: 0x1a86
Version: 2.64
Speed: Up to 12 Mb/s
Location ID: 0x14600000 / 5
Current Available (mA): 500
Current Required (mA): 98
Extra Operating Current (mA): 0
Additional details:
The esptool does allow for setting lower speeds. Default is supposed to be 115200, but it also fails in the exact same ways if I set it down to 9600.
I do have GPIO0 held to ground on the Tuya device. At someone else’s suggestion, also pulled GPIO5 down to ground, but it didn’t help. To confirm I haven’t bricked the Tuya device, I reassembled it and the original factory firmware is still there and still works.
My laptop is a 2017 MacBook Pro
The exact serial hardware with the CH340G:
To the best of my understanding, the problem is related to communication between your Mac and the USB-to-serial adapter. So possible causes are:
To make progress, I propose you make the following test:
screen /dev/cu.usbserial-1460 115200
from the command linePossibly, you now get an error. If so, let use know the error message.
If no error appears and you now type characters, they should appear. If not, let us know.
(Type CTRL-A, then CTRL-\ to exit screen.)
Hi Manuel,
I was wondering if you can help me. I am running
MacBook Pro 2.2 GHz 6-Core Intel Core i7
OSX 13.3.1 (a) (22E772610a) (Ventura)
Whether I connect my UNO or not the only driver I can see is cu.BLTH
I was expecting to see cu.usbserial or similar.
My UNO is running the CH340 chip so I need a driver loaded in my MacBook.
How do verify and load the CH340 driver?
I used ‘kmutil showloaded’ to get a list of loaded USB kernel extensions;
com.apple.driver.usb.AppleUSBCommon
com.apple.driver.usb.AppleUSBXHCI
com.apple.driver.usb.AppleUSBXHCIPCI
com.apple.driver.usb.AppleUSBHostPacketFilter
com.apple.driver.usb.AppleUSBVHCICommon
com.apple.driver.usb.AppleUSBVHCI
com.apple.driver.usb.AppleUSBVHCICommonBCE
com.apple.driver.usb.AppleUSBVHCIBCE
com.apple.driver.usb.AppleUSBHostCompositeDevice
com.apple.driver.usb.networking
com.apple.driver.usb.cdc
com.apple.driver.usb.cdc.ncm
com.apple.driver.usb.cdc.ecm
com.apple.driver.usb.IOUSBHostHIDDevice
com.apple.driver.usb.AppleUSBUserHCI
But none seem to relate to serial USB or CH340.
What should I see and how can I possibly manually insert into kernel?
Regards,
Does the UNO appear in the System Information application (section Hardware / USB)? If not, it’s likely an electrical problem such as a charge-only USB cable, a damaged USB connector or cable.
If the UNO appears, what product and vendor ID does it have?
You can also watch the Mac’s log to see what the operating system does:
When I connect a device with the CH340 chip, I can see this snippet:
<Missing Description> default 21:04:27.446027+0200 kernel CP2102 USB to UART Bridge Controller@00140000: IOUSBHostDevice::setConfigurationGated: AppleUSBHostCompositeDevice selected configuration 1
<Missing Description> default 21:04:27.452266+0200 kernel Driver com.apple.DriverKit-AppleUSBSLCOM has crashed 0 time(s)
<Missing Description> default 21:04:27.452332+0200 kernel DK: AppleUSBSLCOM-0x1000338e8 waiting for server com.apple.driverkit.AppleUSBSLCOM-1000338e8
<Missing Description> default 21:04:27.452236+0200 kernelmanagerd Received kext load notification: com.apple.DriverKit-AppleUSBSLCOM
<Missing Description> default 21:04:27.453191+0200 kernelmanagerd Found 1 dexts with bundle identifier com.apple.DriverKit-AppleUSBSLCOM
<Missing Description> default 21:04:27.453358+0200 kernelmanagerd Using unique id 52dab1372e20cae024f06d267e9951447186cd27990d52ff990d2b9cffba6ce9 to pick dext matching bundle identifier com.apple.DriverKit-AppleUSBSLCOM
<Missing Description> default 21:04:27.453679+0200 kernelmanagerd Picked matching dext for bundle identifier com.apple.DriverKit-AppleUSBSLCOM: Dext com.apple.DriverKit-AppleUSBSLCOM v1 in executable dext bundle com.apple.DriverKit-AppleUSBSLCOM at /System/Library/DriverExtensions/com.apple.DriverKit-AppleUSBSLCOM.dext
<Missing Description> default 21:04:27.453783+0200 kernelmanagerd Launching driver extension: Dext com.apple.DriverKit-AppleUSBSLCOM v1 in executable dext bundle com.apple.DriverKit-AppleUSBSLCOM at /System/Library/DriverExtensions/com.apple.DriverKit-AppleUSBSLCOM.dext
As you can see, the driver is loaded the moment the device is connected. And I don’t think kmutil
will list it at all as the driver isn’t a kernel extension anymore but a user-space driver extension.
Like the others, I’m having problems with the port for Arduino UNO showing up. I tried on both Mac Mini M1 and Macbook Air M1 to no avail. I tried to do your suggestion to run Console and plug in the Uno. Once I did, this is the first thing that appeared on the Console when the UNO was plugged:
error 02:23:25.816276+0800 kernel airportd@(null): AppleUSBHostUserClient::closeGated: trying to close a non-opened client
error 02:23:25.821003+0800 com.apple.ifdreader Failed to find AppleUSBAlternateServiceRegistryID.
error 02:23:25.825277+0800 kernel systemstats@(null): AppleUSBHostUserClient::closeGated: trying to close a non-opened client
default 02:23:25.896363+0800 kernel usb-drd1-port-ss@01200000: AppleUSBHostPort::terminateDevice: destroying 0x2109/0813/0221 (USB3.0 Hub ): link change interrupt
What appears in System Information in the USB section?
What kind of Arduino UNO do you have? A genuine one? Or a clone (with a CH340 or similar USB-to-serial converter)?
The log extract mentions a card reader (do you have something like this?) and USB hub (are you using one to connect the Ardunio UNO to your Mac?). Nothing indicates an Arduino UNO or a serial device.
I’m not sure if the Arduino I have is genuine but based on the card’s design, it’s this Arduino UNO version: https://docs.arduino.cc/hardware/uno-rev3-smd. I didn’t buy this directly from Arduino and I assume it’s a Chinese made clone.
For the port, I don’t have a card reader but I do use a USB Hub since I’m using a MacBook Air M1 and the only port available is a USB-C Port. However, when I plug it in to my Mac Mini’s main USB-A Port, nothing appears on that particular port. I also get this Console log when I plug In the Arduino Uno:
default 16:47:19.691312+0800 bluetoothd Current NF value -86, current USB detected 6
default 16:47:19.693876+0800 osascript [0x6000007f00f0] activating connection: mach=true listener=false peer=false name=com.apple.cfprefsd.daemon
default 16:47:19.694015+0800 osascript [0x6000007f01e0] activating connection: mach=true listener=false peer=false name=com.apple.cfprefsd.agent
default 16:47:19.694084+0800 cfprefsd [0x117f187d0] activating connection: mach=false listener=false peer=true name=com.apple.cfprefsd.daemon.peer.0x117f187d0
default 16:47:19.694222+0800 cfprefsd [0x132419c50] activating connection: mach=false listener=false peer=true name=com.apple.cfprefsd.agent.peer.0x132419c50
error 16:47:19.694441+0800 cfprefsd Couldn't open parent path due to [2: No such file or directory]
error 16:47:19.694585+0800 cfprefsd Couldn't open parent path due to [2: No such file or directory]
error 16:47:19.694998+0800 cfprefsd Couldn't open parent path due to [2: No such file or directory]
error 16:47:19.702971+0800 kernel AppleEmbeddedUSBXHCIFL1100@02000000: AppleUSBHostController::io: request <private> completed with 0xe0005000
error 16:47:19.703526+0800 kernel AppleEmbeddedUSBXHCIFL1100@02000000: AppleUSBHostController::io: request <private> completed with 0xe0005000
default 16:47:19.723076+0800 kernel disk5: I/O error.
What do you mean with “nothing appears on that particular port”? Where do you expect something to appear?
And again: What appears in the System Information application?
The log from Console is suspiciously short and doesn’t contain any useful information. At the moment, it looks like an electrical problem (charge only USB cable, partially broken or loose USB connector etc.)
I have a ESP32 CH340C that I got on ebay. That got me to this link.
I checked system information, nothing showed up. I then used this usb c hub that I use to get an ethernet rj45 jack, and it also has 3 usb A ports on it. They say USB3.0. In system infoformation it shows:
So it seems that these esp32 boards are usb 2.0 and per the apple page: If a USB device doesn’t work with Mac - Apple Support
" Check the USB hub:* If the device is connected to a USB hub, make sure the device and the hub are the same speed. Connect USB 3.0 SuperSpeed devices to a USB 3.0 SuperSpeed HUB, USB 2.0 Hi-Speed devices to a USB 2.0 Hi-Speed hub, and so on."
I’m having a similar issue. I recently purchased the nodemcu BU01 development board. I’ve tried plugging it into my Mac Mini via usb or usb C and I can not get it to show up in Arduino IDE. I’ve tried both of the following commands in terminal, neither of them shows any serial/usb connections.
ls /dev/tty.* and ls /dev/ttyUSB*
I’ve read that it requires the CH340 driver, but I’ve also read now that I should have an Apple version of that driver already installed because of the Mac OS. I’m running Mac OS 13.6.9. Under system information in the USB sub category, I don’t see anything connected other than my mouse and keyboard. Any ideas on how to get this to be visible to my Mac mini? I would be extremely grateful! Thanks