OK, with the output from udevadm it is visible, that
- The device is recognized
- /dev/ttyACM0 is the right device
- an Arduino-Sketch is loaded
When the DUE is erased, the output would look like:
KERNEL[584.788164] add /devices/pci0000:00/0000:00:06.0/usb1/1-2 (usb)
KERNEL[584.789848] add /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0 (usb)
KERNEL[584.795772] add /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0/tty/ttyACM0 (tty)
KERNEL[584.795805] add /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.1 (usb)
UDEV [584.798089] add /devices/pci0000:00/0000:00:06.0/usb1/1-2 (usb)
UDEV [584.798120] add /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.1 (usb)
UDEV [584.798138] add /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0 (usb)
UDEV [584.800642] add /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0/tty/ttyACM0 (tty)
The access-rights are looking good as well, the device is owned by root:dialout and your account is in the group dialout.
Now lets look some more in the details:
In one terminal window you have still udevadm monitor running.
In a second window you enter: stty -F /dev/ttyACM0 1200
Now you should see, that the HID devices dissappear. When you now reset the DUE, the output should look like as my example above, as the GPNVM bits are set to boot SAM-BA
If that is not working, something is weird with your sketch, as the serial interrupt-handler is not invoked. If that is the case, press ERASE followed by an reset and try to load the sketch again.
If uploading works, when you pressed ERASE before, the problem is somewhere in your sketch. Uploading can only work, when the DUE gets in SAM-BA mode, which needs either sketch-interaction or manual erase. That is the main difference to the programming port, where the 16U2 triggers the erase and reset-pins, even when the sam3x8e hangs.
If the reboot into SAM-BA mode works, and upload is still not possible, you need to check the core SAM-BA communication.
First call bossac from a terminal window:
Output should look like:
Device found on ttyACM0
Device : ATSAM3X8
Chip ID : 285e0a60
Version : v1.1 Dec 15 2010 19:25:04
Address : 524288
Pages : 2048
Page Size : 256 bytes
Total Size : 512KB
Planes : 2
Lock Regions : 32
Locked : none
Security : false
Boot Flash : false
If that does not work, use picocom (or any other terminal program like minicom)
picocom -b 9600 -p n -d 8 /dev/ttyACM0
In the terminal window type:
and the output should look like:
v1.1 Dec 15 2010 19:25:04
Leave picocom with Ctrl-A Ctrl-X
If that works and bossac does not, it might be an issue with the serial speed over USB (port, cabling, drivers)
The terminal test used a lower speed than bossac.
One situation, where I found that behaviour is, when I run linux as virtual machine in VMWARE and Virtualbox. Configuring USB as 1.1 in the virtual machine setup fixes that problem.
One point I have not mentioned: It can also happen, that the erased arduino is not recognized, as in that case it identifies itself with the Atmel VID:PID (03EB:6124) instead of the Arduino . However all kernels knowing how to handle Arduino VID:PID should know about the Atmel ones. But it is worth to mention, taht this could also be an issue.