I have Ubuntu 18.04 LTS installed.
I installed Arduino IDE v1.8.5 as a snap with
snap install arduino-mhall119
I have added my user to dial-out group and rebooted:
sudo usermod -a -G dialout $USER
$ groups
username adm dialout cdrom sudo dip plugdev lpadmin sambashare
I connected my Arduino Nano to the laptop, it is detected on port /dev/ttyUSB0 (ch341-uart).
$ ls /dev/ttyUSB0 -al
crw-rw---- 1 root dialout 188, 0 авг 13 11:59 /dev/ttyUSB0
I tried to upload the simpliest Blink sketch and get the following errors in the terminal:
$ arduino-mhall119.arduino
avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.**
Also I have installed arduino
1.8.5 with umake - it can access serial port in usual way.
Note: we already have similar question here, but the solution was to use package from umake
, not fix for the Snap.
So my question is: How to make Arduino (Snap) access serial port /dev/ttyUSB0 (or /dev/ttyACM0)?
Update: connecting serial-port to the snap fails with the following message
$ snap connect arduino-mhall119:serial-port
error: snap "core" has no "serial-port" interface slots
Current interfaces are:
$ snap interfaces | grep arduino
:home arduino-mhall119,gedit,organize-my-files,vlc
:network arduino-mhall119,gedit,organize-my-files,pulsemixer,vlc
:unity7 arduino-mhall119,gedit,organize-my-files,vlc
:x11 arduino-mhall119,organize-my-files,pulsemixer,vlc
- arduino-mhall119:serial-port
Changing permissions of serial port to 777 with sudo chmod 777 /dev/ttyUSB0
does not help.
The following do not work too (because of syntax errors):
$ sudo snap connect arduino-mhall119:arduino
error: snap "arduino-mhall119" has no plug named "arduino"
$ snap connect arduino-mhall119:/dev/ttyUSB0
error: snap "arduino-mhall119" has no plug named "/dev/ttyUSB0"
$ snap connect arduino-mhall119
error: cannot resolve connection, plug snap name is empty
Information about YAML-manifest:
$ ls -l /snap/arduino-mhall119/current/meta/snap.yaml
-rw-r--r-- 1 root root 353 июл 28 00:20 /snap/arduino-mhall119/current/meta/snap.yaml
$ cat /snap/arduino-mhall119/current/meta/snap.yaml |grep -A 12 slots
$ cat /snap/arduino-mhall119/current/meta/snap.yaml |grep -A 5 plug
plugs:
- x11
- unity7
- home
- network
- serial-port
2020 update
The
arduino-mhall119
snap is outdated and should not be used anymore. Use thearduino
snap instead.See this answer for up to date info on how to get serial working with the
arduino
snap.Old instructions
Install the snap in classic mode to allow access to ports
It's that simple. You should now have access to your serial ports! Happy Hacking!
Note: info below are needed for old Arduino 1.6.10.
Some interesting links that helped find the answer
Auto connected serial port interface
Interfaces -
serial-port
Interfaces reference:
Gadget providing serial-port slot
The
arduino-mhall119
snap is outdated and should not be used anymore. Use thearduino
snap instead.:Using that snap, the only thing you need to do is add your own user to the
dailout
group:After this, reboot your device and open Arduino IDE.
The solution of Joshua did not work for me anymore since I got the error:
Warning: flag --classic ignored for strictly confined snap arduino-mhall119
However, when using devmode instead it worked fine:
Not sure if there are any further consequences with devmode though..