July 2, 2026By DaqSense R&D Team

How to Install CH340 Drivers on macOS: Step-by-Step Fix

#troubleshooting#macos#ch340#arduino

Many inexpensive Arduino Nano, ESP8266, and ESP32 boards use a WCH CH340 or CH341 USB-to-serial chip. When the driver or macOS permission layer is wrong, the board may power on but never appear as a usable serial port.

This guide shows the safe install path. Start by proving the Mac can see the device, then install the official driver only if needed.

Before You Install Anything

Do these three checks first:

Check How Why
Try a known data cable Use a cable that transfers files or works with another board Charge-only cables are the most common false driver problem.
Plug directly into the Mac Avoid hubs, docks, and monitor passthrough ports Hubs can hide authorization prompts or cause power drops.
Check the USB tree System Report > USB If the device is not visible there, a driver will not fix it.

If the board does not appear in System Report > USB, stop and solve the physical connection first.

Step 1: Verify You Have a CH340 or CH341 Board

Look near the USB connector for a small chip marked CH340, CH340G, CH341, or similar. If you cannot read the chip, plug the board in and open System Report > USB.

Possible device names include:

  • USB2.0-Serial
  • USB-Serial Controller
  • CH340
  • CH341

Then check whether macOS created a serial device:

ls /dev/cu.*

If you see a new device such as /dev/cu.wchusbserial110, you do not need to install anything. Select that port in Arduino IDE, DaqSense, or your serial tool.

Step 2: Approve the USB Accessory in macOS

On recent macOS versions, the system may block communication with newly connected USB accessories until you approve them.

Open System Settings > Privacy & Security and look for accessory approval or the “Allow accessories to connect” setting. Approve the board if prompted, then unplug and reconnect it.

Run the port check again:

ls /dev/cu.*

If a new serial port appears, the issue was authorization, not the CH340 driver.

Step 3: Download the Official WCH Driver

If the USB device appears in System Report but no serial port appears under /dev/cu.*, download the official macOS driver from WCH:

CH341SER_MAC.ZIP

Avoid driver mirrors, random forum uploads, and repackaged installers. USB serial drivers run close to the operating system, so use the manufacturer source.

Step 4: Install and Approve the Driver

  1. Extract the ZIP file.
  2. Open the .pkg installer.
  3. Follow the prompts.
  4. Open System Settings > Privacy & Security.
  5. Approve any blocked driver or system software prompt from the vendor.
  6. Restart the Mac.

After rebooting, plug the board in directly and run:

ls /dev/cu.*

Expected examples:

/dev/cu.wchusbserial110
/dev/cu.usbserial-110

The exact name depends on the board and USB path.

Step 5: Remove Old Conflicting Drivers If Needed

If you installed CH340 drivers years ago, a stale legacy extension may conflict with the current system.

Check for old entries:

kextstat | grep -i ch34
ls /Library/Extensions | grep -i -E 'ch34|usbserial'

If you confirm an old CH34x usbserial.kext is present in /Library/Extensions, remove it:

sudo rm -rf /Library/Extensions/usbserial.kext

Restart after removal. Do not delete unrelated extensions just because they contain the word “serial”.

Step 6: Test with a Minimal Sketch

Once the port is visible, upload a simple sketch:

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("ch340 serial ok");
  delay(1000);
}

Open the port at 115200 baud. If the text is readable, the driver is working. If the output is garbage, check the baud rate before reinstalling the driver.

Common CH340 macOS Outcomes

Outcome Meaning
No USB device in System Report Cable, hub, board, or power issue.
USB device visible, no serial port Permission or driver issue.
Serial port visible, cannot open Another app owns the port.
Serial port visible, unreadable output Baud mismatch or boot messages.

Next Step: Record the Data

After the CH340 port works, you can use the Arduino Serial Monitor for quick checks. For real test runs, DaqSense gives you a repeatable workflow: select the port, parse incoming rows, apply live formulas, and record CSV files without maintaining a custom logger script.