I use the Arduino IDE to upload sketches to my Arduino Uno. My OS is Linux Ubuntu 14.04 LTS. The Arduino IDE has two ports by default for communication with the Arduino Uno:

  1. What is the difference between these two ports ?
  2. What does "ACM0" and "S0" mean ?
  3. Are there configuration files somewhere in the OS folder structure that describe the parameters of these ports ?

I know that when I select /dev/ttyACM0, I am able to send data to my Arduino Uno. However it does not work when I select /dev/ttyS0.

I just want to better understand what these ports are exactly.

2 Answers 2


/dev/ttyACM0 is a USB communication device (CDC) of sub-type "abstract control model" (ACM). That is what the Arduino is.

/dev/ttyS0 is a hardware serial port - the (typically) 9-pin D connector on the back of your computer.

If you want to use /dev/ttyS0 (why would you?!) you will require a special cable that converts the RS-232 voltage signals from the 9-pin D connector into the right TTL level signals for the Ardiuno and wire it in to the right pins on the board.

  • Thank you for your clarification. Can You help how to upgrade firmware on Sim800 using Sim 800 Serious tool for Linux as it mentioned Usage: mtkdownload <com> ROM_VIVA <format> <com>: /dev/ttyS0,/dev/ttyS1,/dev/ttyS2.. means COM1,COM2,COM3,COM4,USB2COM ROM_VIVA is updating rom file <format> Y,N means format FAT or not format Fat Example: mtkdownload 100 ROM_VIVA Y and When I use ./mtkdownload /dev/ttyACM0 ./ROM_VIVA It just print same above. May 25, 2021 at 4:19

Some high-level languages (e.g. matlab) treat all serial ports as the /dev/ttyS# selecter. To interface with an Arduino with MATLAB you have to rename /dev/ttyACM0 as /dev/ttyS#.

This may also be an option in the Arduino IDE, and that is why those options exist.

  • 1
    why would you rename it when a symlink could do the trick ?
    – PypeBros
    Sep 26, 2016 at 15:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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