I just procured an Arduino Micro as the simplest microprocessor to be used as a gadget connected to a Linux host.
The problem of the day is that avrdude is not able to send anything to the /dev/ttyACM0 port in a way that the Micro firmware respond as an application firmware loader function. Verified with a kermit null modem session, all what the Micro does is to send "TESTATA" repeatedly once the USB bus turns active.
Unfortunately, I could not find the firmware source code for what is in the unit on my desk. (Not very glamorous from an organization claiming to "love open-source" ...)
See below what lsusb -v reports for this USB device.
See also below what dmesg reports when the reset button is pressed, then released.
The kernel device driver source file /usr/src/linux-3.16.1/drivers/usb/class/cdc-acm.c is handling this USB device and creates the /dev/ttyACM0 device for the avrdude application. I resolved the read-write permission and other issues with avrdude.
Without the source code for exactly what is in this Micro board (as reflected in the USB descriptors reported by lsusb), I can not investigate any further.
Notably, it puzzles me that the USB descriptors report an HID function capability.
The list of software tarballs that I looked at is included below.
As it stands now, this Arduino Micro project is a failure, except for the (incomplete) learning experience. Apparently something is wrong with the factory-shipped firmware.
I would appreciate any help either with access to the exact source code for the firmware, or additional hints about linux kernel (3.16.1, 3.18.4 had the same symptoms) handling of this USB device.
- Thierry Moreau