The Arduino Uno

October 2, 2012

I plug my brand new Arduino Uno into my Fedora 17 linux system (with Arduino 1.0.1) and see the following activity in /var/log/messages:

Oct  2 09:42:40 trona kernel: [303277.150032] usb 2-6: new full-speed USB device number 3 using ohci_hcd
Oct  2 09:42:40 trona kernel: [303277.359041] usb 2-6: New USB device found, idVendor=2341, idProduct=0043
Oct  2 09:42:40 trona kernel: [303277.359046] usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=220
Oct  2 09:42:40 trona kernel: [303277.359048] usb 2-6: Manufacturer: Arduino (www.arduino.cc)
Oct  2 09:42:40 trona kernel: [303277.359050] usb 2-6: SerialNumber: xxx
Oct  2 09:42:40 trona mtp-probe: checking bus 2, device 3: "/sys/devices/pci0000:00/0000:00:02.0/usb2/2-6"
Oct  2 09:42:40 trona mtp-probe: bus: 2, device: 3 was not an MTP device
Oct  2 09:42:40 trona kernel: [303277.421721] cdc_acm 2-6:1.0: ttyACM0: USB ACM device
Oct  2 09:42:40 trona kernel: [303277.427405] usbcore: registered new interface driver cdc_acm
Oct  2 09:42:40 trona kernel: [303277.427409] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Oct  2 09:42:40 trona dbus-daemon[796]: modem-manager[835]:   (ttyACM0) opening serial port...
Oct  2 09:42:40 trona modem-manager[835]:   (ttyACM0) opening serial port...
Oct  2 09:42:53 trona dbus-daemon[796]: modem-manager[835]:   (ttyACM0) closing serial port...
....
So, we see that Fedora hooks this up to /dev/ttyACM0 (rather than ttyUSB0 or some such). Also some darn thing called "modem-manager" seems to feel an urge to try to talk to this new device. It makes several attempts before apparently giving up.

However, when I fire up the Arduino GUI, the top choice under Tools->Serial_Port is "/dev/ttyACM0" and the first choice under Tools->Board is "Arduino Uno".

I select File->Examples->Basic->Blink, hit the download button and voila! There is lots of LED activity and after a few seconds the "L" led is blinking away. This was straightforward and easy success with no hassles. Probably less than 10 minutes (including typing all this in) from start to finish. And it was trivial to install the arduino GUI (just yum install arduino), so this is all just as it should be, several gold stars to how this all has worked out.

Interesting information about the Uno

At this point of time (late 2012), the Uno is the official base implementation of an Arduino (hence the name "Uno". The Uno has the old familiar ATmega328P chip, but the USB interface is now an ATmega8u2 or an ATmega16u2 (mine has a 16u2). This chip is reprogrammable, allowing some flexibility in how the Uno can be used. The Uno also uses the Optiboot boot loader, which is small (about 512 bytes), freeing up about 1.5K of flash. It also runs faster. Mine runs happily at 115200 baud.

Also, my Uno has surface mount parts for both the 16u2 and the 328p. This is fine by me, but supposedly one of the reasons the Uno is not a Leonardo (with a 32u4 chip) is that the Arduino team felt there was desirable flexibility with a DIP packaged 328p. Apparently something changed their mind (given the existence of the Leonardo and the surface mount parts on the Uno). The only virtue I can see in a DIP package is the ability to replace the chip if it gets blown.


Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org