Go Down

Topic: Linux, the Uno and Mega 2560 devices of the form /dev/ttyACM0. not supported (Read 8893 times) previous topic - next topic


Linux, the Uno and Mega 2560 show up as devices of the form /dev/ttyACM0.
These are not supported

Apparently I am not the only person with this problem searching has found
others with the same problem and their question unanswered.

The trouble shooting section info :

On Linux, the Uno and Mega 2560 show up as devices of the form /dev/ttyACM0. These are not supported by the standard version of the RXTX library that the Arduino software uses for serial communication. The Arduino software download for Linux includes a version of the RXTX library patched to also search for these /dev/ttyACM* devices. There's also an Ubuntu package (for 11.04) which includes support for these devices. If, however, you're using the RXTX package from your distribution, you may need to symlink from /dev/ttyACM0 to /dev/ttyUSB0 (for example) so that the
serial port appears in the Arduino software.

This is not all that helpful, I would also like to point out that there are MANY Linux users
these days and this problem should not even exist.

So how about a more explicit procedure to fix this or better yet just plain fixing it so that
we all can get on with making use of our nice shiny new Aduinos rather than futzing around
with these so called "tools".



Hi, welcome to the forum.

I never had that problem. I have been using 12.04 for some time, and now I have upgraded to 14.10. I always use the newest Arduino IDE version.
Do you have an old Java with old Arduino ?

The new Arduino IDE 1.6.0 has many improvements. I think it does no longer use the (troublesome) Java RX TX library.

Could you remove all the Arduino from the repositories ? I use Synaptic for that.
Keep your project folder of course.
Be sure to remove the Java RX TX library.
Download Arduino IDE 1.6.0 and unpack it in a folder. Run it from that folder.
If your older Java will work with Arduino IDE 1.6.0, I think (hope) that the serial ports are accepted.
If that doesn't work well, perhaps you can try to remove the Java and (re)install a minimum Java.

P.S.: I can simply outsmart your remarks by saying: come, take a quantum leap into the year 2015 and join us with shiny new Ubuntu and super shiny new Arduino software tools.


Hi thanks for replying to my post

Been using 14.10 day one, brand spanking new Arduino Mega 2560 board also
down loaded  the Arduino IDE 1.6.0 as of yesterday.  Just reinstalled OpenJDK
Java 7 Runtime via the Ubuntu Software Center. 

Open Arduino folder,  Execute  Sketch script,
Tools > Board select Arduino Mega or Mega 2560
Processor > ATmega2560
Port > /dev/ttyACM0 (Ardiono Mega or Mega 2560)

Attempt a upload of the default minimal code.

Arduino: 1.6.0 (Linux), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Sketch uses 642 bytes (0%) of program storage space. Maximum is 253,952 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 8,183 bytes for local variables. Maximum is 8,192 bytes.
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
ioctl("TIOCMGET"): Inappropriate ioctl for device
ioctl("TIOCMGET"): Inappropriate ioctl for device
avrdude: ser_send(): write error: Bad file descriptor
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
processing.app.SerialException: Error opening serial port '/dev/ttyACM0'.
   at processing.app.Serial.<init>(Unknown Source)
   at processing.app.Serial.<init>(Unknown Source)
   at processing.app.SerialMonitor$3.<init>(SerialMonitor.java:94)
   at processing.app.SerialMonitor.open(SerialMonitor.java:94)
   at processing.app.Editor.handleSerial(Editor.java:2536)
   at processing.app.Editor$17.actionPerformed(Editor.java:688)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
   at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
   at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
   at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:943)
   at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:585)
   at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:482)
   at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:428)
   at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:321)
   at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:859)
   at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2448)
   at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2340)
   at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2339)
   at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2339)
   at java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:2298)
   at java.awt.Component.dispatchEventImpl(Component.java:4768)
   at java.awt.Container.dispatchEventImpl(Container.java:2287)
   at java.awt.Component.dispatchEvent(Component.java:4698)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
   at java.awt.Container.dispatchEventImpl(Container.java:2273)
   at java.awt.Window.dispatchEventImpl(Window.java:2719)
   at java.awt.Component.dispatchEvent(Component.java:4698)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740)
   at java.awt.EventQueue.access$300(EventQueue.java:103)
   at java.awt.EventQueue$3.run(EventQueue.java:699)
   at java.awt.EventQueue$3.run(EventQueue.java:697)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
   at java.awt.EventQueue$4.run(EventQueue.java:713)
   at java.awt.EventQueue$4.run(EventQueue.java:711)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:710)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: jssc.SerialPortException: Port name - /dev/ttyACM0; Method name - openPort(); Exception type - Permission denied.
   at jssc.SerialPort.openPort(SerialPort.java:170)
   ... 50 more
Error opening serial port '/dev/ttyACM0'.



I have Ubuntu 64-bit and I have installed in Synaptic : java-common
That did automatically install : default-jre (and ...headless), openjdk-7-jre (and ...headless) and maybe some more. I think that is the same as you did.

I am part of the dialout group.
sudo adduser <yourname> dialout
That should fix it.

To use avrdude with the USBasp programmer, without Arduino I added a rule to some file in the past, I don't know if that is still needed for Ubuntu 14.10.
New file : /etc/udev/rules.d/usbasp.rules
With: ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE="0666", GROUP="plugdev"


OK things are working now.  One detail after doing the sudo adduser <username> dialout

You have to logout then login again in oder to have this take effect.

Thanks for the helping hand.




DID YOU FIND A CURE FOR:symlink from /dev/ttyACM0 to /dev/ttyUSB0

THANKS tea56m@gmail.com


I have a similar error when trying to upload Blink to an Uno.
I am using Linux ubuntu 16.4

Here is my error message.

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

I have looked in the Troubleshooting guide but they recommend that I add the user to the dialout group. I am already a member of the dialout.
Most forum posts  come up with that suggestion, but it is not working for me.

Any other suggestions please?!


Reply #3; add yourself to the dialout group. Next logout and login again (reply #4).
If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

Go Up