Mac USB serial port suddenly disappeared

I solved this problem. Maybe this post will help others.

I've come across this problem a couple of times. I literally searched for hours for the answer and ended up using several suggestions.

Each scenario I solved is documented below as 'Scenario A' and 'Scenario B':

======================
Scenario A

Plugged in a new Arduino Uno R3 board, successfully compiled the standard "Blink" sketch. When I tried to upload it to the board, I got this message:

Sketch uses 1,066 bytes (3%) of program storage space. Maximum is 32,256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.
avrdude: ser_open(): can't open device "COM1": No such file or directory
ioctl("TIOCMGET"): Inappropriate ioctl for device
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

The Port Options in the IDE (Tools--> Port) only showed /dev/cu.incoming-bluetooth-port

Here's what worked:

  1. Downloaded and Installed the CH340 driver
  2. Removed the FTDI drivers from my mac. Apple recently installed a new utility that prevents removal of what it considers to be critical components.

The process that enforces this rule is called csrutil.

You'll have to disable this process to remove the FTDI driver. Then you'll need to re-enable it when you are done. This required a restart in recovery mode. Here's how to do that:

a.) power off the mac then hold 'command'+R during the restart until the image of the apple appears.
b.) when the screen refreshes, click on 'Utilities' menu then 'Terminal.
c.) type csrutil disable
d.) Hit enter
e.) Restart [Note: You may be able to execute the next two commands in the terminal before restarting. I just didn't test it that way. If the system will allow you to, then by all means run all three commands one after the other THEN restart and you should be on your way.]

  1. remove the FTDI drivers by opening the terminal program again and entering the following command:

sudo rm -R /System/Library/Extensions/AppleUSBFTDI.kext

Type in your password when prompted.

  1. Restore the apple csrutil by following steps a and b above. Task c will be the same EXCEPT you'll type this instead:

csrutil enable

Then follow steps d and e.

When you restart the arduino IDE, you should see a more comprehensive list of ports besides just the bluetooth port.

======================
Scenario B

This board was an import and clearly not an original Arduino/Genuino. Attempts to load sketches resulted in this lovely error:

Using Port : /dev/cu.usbmodem1421
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: ser_open(): can't open device "/dev/cu.usbmodem1421": No such file or directory
ioctl("TIOCMGET"): Inappropriate ioctl for device

There was only one Port listed in the IDE, dev/cu.Bluetooth-Incoming-Port.

It had been a while since Scenario A had occurred and since then I'd installed a few OS updates. Checked the drivers and low and behold, the darned FTDI drivers had RETURNED!!

I repeated the steps in scenario A above but the problem remained.

Then I installed an updated board configuration from arduino and it worked! Testing on the first board I'd used under scenario A were successful as well. Here's what I did:

  1. In the IDE go to Tools-> Boards -> Boards Manager
  2. I installed 'Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino version 1.6.8
  3. Unplugged and replugged the USB cable into my arduino.
  4. In the IDE go to Tools -> Port. The /dev/cu.usbmodem1421 was listed as a port option. Selected that.
  5. Uploaded my sketch.
  6. Bask in glory of SUCCESS!

I hope this was helpful to you. I spent two days on Scenario A and 3 hours on Scenario B.