Setting Up a USB to Serial Adapter on macOS

macOS handles serial devices differently from Windows. There are no COM numbers; ports appear as device files, and the driver situation depends on the chip inside the adapter. Most setup problems come down to three things: whether a driver is installed, what the port is called, and how the terminal tool opens it. Working through them in order turns a silent adapter into a usable port in a few minutes.

Quick Answer / Summary

A USB to serial adapter on Mac either uses the built-in CDC driver or a vendor driver that must be signed and allowed in System Settings. Ports appear under /dev, and the callout device /dev/cu.usbserial is the one to use for interactive sessions. Confirm the chip class, list the ports, then open the callout device at the right baud rate.

How macOS Names Serial Devices

Every serial port appears twice under /dev. The tty device blocks until a carrier is present, while the cu device is a callout that stays open. For interactive use, the cu device is the practical choice.

The suffix reflects both the driver and the chip. Vendor drivers produce names such as /dev/cu.usbserial or /dev/cu.usbmodem, while a built-in CDC device may appear as /dev/cu.usbmodem plus a serial number.

/dev/tty vs /dev/cu

The tty variant is historical and tied to modem control. It can refuse to open when no carrier line is asserted. The cu variant avoids that behavior and is what most terminal tools expect.

Finding the Port

List the /dev entries before and after plugging in the adapter. The new cu entries are your candidates. If none appear, the driver is missing or has been blocked.

Driver Classes: Signed Drivers vs Built-In CDC

FTDI-class and Silicon-Labs-class bridges usually need a vendor driver. Recent macOS versions require that driver to be signed and approved. Until it is approved, the port simply does not show up.

Bridges that present standard USB CDC can use the built-in class driver, which needs no install. That is convenient for consoles and simple links, though some advanced features may not be exposed.

FTDI-class and Silicon-Labs-class

These chip classes are common in commercial adapters. Check the vendor documentation for the current driver and the approval step, which lives in the Privacy and Security settings on modern macOS builds.

Terminal Setup with screen

The screen utility opens a serial port and maps it to the terminal. You point it at the cu device and supply the baud rate. Closing the session cleanly matters, or the port can stay busy for the next attempt.

When the baud rate is wrong the output looks like noise. Confirm the device settings and match them exactly, including the framing.

Checklist Before You Connect

Confirm the chip class, install and approve the driver if needed, list the cu devices, then match the baud rate and framing. After that, open the session and verify that keystrokes reach the device and that replies come back cleanly.

Comparison Table

Chip classDriver needTypical port name
FTDI-classVendor driver, must be approved/dev/cu.usbserial
Silicon-Labs-classVendor driver, must be approved/dev/cu.usbserial
CDC bridgesBuilt-in class driver/dev/cu.usbmodem
Prolific-classVendor driver, version sensitive/dev/cu.usbserial

Table: Chip classes and macOS behavior

Practical Application Scenarios

Related Products and Further Reading

Frequently Asked Questions

Why does my adapter not show up on macOS?

Usually the driver is missing or has not been approved. Check the chip class, install the vendor driver if required, allow it in Privacy and Security, then list the /dev entries again.

Should I use /dev/tty or /dev/cu?

Use the cu device for interactive sessions. It is a callout device that opens without waiting for a carrier line. The tty device can block when no modem control is present.

Do all adapters need a driver on Mac?

No. Bridges that present standard USB CDC use the built-in class driver. FTDI-class, Silicon-Labs-class, and Prolific-class bridges generally need a vendor driver.

What baud rate should I set?

Match the device exactly, often 9600 or 115200 baud with 8N1 framing. A wrong baud rate produces garbled output even when the port opens correctly.