2

I own a Macbook running OS X 10.10.3 (Yosemite)

I own a Min Seg.
My Min Seg model is built on an Arduino Mega 2560.

Problem

When I connect the board to the Macbook,
using either of the Macbook's two USB 2.0 ports,
using either of two USB A to B cables,
the board lights up, but I am unable to connect
to the tty device using the Arduino IDE.

Tools --> Port offered:

/dev/cu.Bluetooth-Incoming-Port
/dev/cu.Bluetooth-Modem
/dev/cu.usbmodem621 (Arduino Genuino Mega or Mega 2560)

I was expecting to also see:

/dev/tty.usbmodem621 (Arduino Genuino Mega or Mega 2560)

If I unplug the board, the third listed option from Tools --> Port disappears, as expected.

Verification 1

I opened the System Information utility application.

USB --> USB Bus -->Arduino Mega:

  Product ID:    0x0042
  Vendor  ID:    0x2a03
  Version:       0.01
  Serial Number: 75435353038351316281
  Speed:         Up to 12 Mb/sec
  Manufacturer:  Arduino Srl
  Location ID:   0x06200000 / 3
  Current Available (mA): 500
  Current Required  (mA): 100

Verification 2

I used the Sparkfun Terminal Basics wiki to check for the device. I used the Terminal utility application.

ls /dev/tty.* offered:

/dev/tty.Bluetooth-Incoming-Port
/dev/tty.Bluetooth-Modem
/dev/tty.usbmodem621

screen /dev/tty.usbmodem621 9600 offered a successful connection.
[A white screen, which allowed for exit using Control+A followed by Control+/]

Attempted Solutions

I tried several means from here:

I installed the FTDI drivers.
I ran sudo nvram boot-args="kext-dev-mode=1" in the Terminal application.
Is an alternative driver worth attempting, such as that listed here?

I also attempted to connect through Mathworks Simulink.
When setting connection options, the program states
that a cu device is expected, rather than a tty.

  • Is it normal that the Arduino IDE picks up ONLY the cu devices and that the terminal picks up ONLY the tty devices? – kando Nov 13 '15 at 21:07
1

What you are seeing is normal.

In BSD (which is the OS that Mac OS is based on) a serial port has two distinct devices for two distinct roles.

The tty, or TeleTYpe interface is used for incoming connections, be that from a modem, serial terminal, whatever. You would normally run a process called getty on it to present a login prompt.

The cu, or Call Unix interface is used for making outgoing connections to other devices. Traditionally that was mainly other Unix servers through modems. Nowadays it includes many other devices such as an Arduino.

The theory is that when you try and initiate an outgoing connection through the cu interface it first checks that no-one is connected in through the tty interface and if the serial port is available it disables the tty interface so the listening getty process doesn't interfere with your call. Also the tty and cu interfaces deal with the modem control lines differently.

The Arduino IDE is merely honouring that system by only offering you the outgoing device in the port list. As far as the Arduino communication is concerned there should be no difference.

  • Why does the Arduino Getting Started guide only suggest the tty interface? – kando Nov 14 '15 at 12:23
  • 1
    @kando Because it is out of date and the person that wrote it didn't understand the difference. – Majenko Nov 14 '15 at 13:22
  • Oh. Fair. They should fix that : j – kando Nov 14 '15 at 13:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.