I have participated in Free Product Road Testing program by Farnell. Farnell indentified my blog to road test some of their products. I was willing to participate, because what’s more fun than free high tech products to test. The first product i got was Arduino UNO.
Arduino Uno is a a microcontroller board based on the ATmega328. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button. Something I am already used to see on Arduino boards. And looks what I expect from Arduino board.
The Uno is the latest in a series of USB Arduino boards, and the reference model for the Arduino platform. The Uno differs from all preceding Arduino boards with USB connection in that it does not use the FTDI USB-to-serial driver chip (like Arduino Dueminanove board I already own).
An ATmega8U2 on the board channels serial communication from ATmega328 main CPU UART (digital pins 0 and 1) over USB and appears as a virtual com port to software on the computer. Arduino Uno USB connection is designed operate in exactly the same way as a Duemilanove and maintain perfect backward compatibility with the previous model. The new Arduino Uno: what are the implications? article tells that having ATmega8U2 on the board for USB connection also means the Uno can do new things that are a problem for previous Arduino boards.
Having a dedicated ATmega8U2 to take care of the connection allows the Arduino to provide both traditional USB-serial and HID support on the same port, depending on the firmware running in the 8U2. Interesting side-note: Tiny ATmega8U2 used for the Uno USB connection is pretty much the same as the MCU used on the very first Arduino, but with hardware USB support baked in. The ATmega8U2 chip sits on the board next to he USB connector.
I only played with traditional USB-serial connection on my tests. The ’8U2 firmware is designed to use the standard USB COM drivers, and no external driver should be needed. So in theory using should be easy. I was waiting for a painless installation. However, on Windows, things too often just don’t work “plug&play”. The problem lies in fact that Arduino Uno is being issued its own USB vendor ID, and Windows (Vista in my case) does not know about it. To make the board to work correctly on Windows the installation of ArduinoUNO.inf file from open-source Arduino environment driver directory is needed. There are some manual installation tricks that needs to be done to get things to work, but fortunately Getting Started w/ Arduino on Windows document gives the needed instructions. I was expecting to get easier installation than with previous board, but this “no driver needed” driver installation process is actually somewhat harder than driver installation for older Arduino boards. Anyway when it is once done things run smoothly.
The Arduino Uno can be powered via the USB connection or with an external power supply. I used USB power on my first tests. The Arduino Uno has a resettable polyfuse that protects your computer’s USB ports from shorts and overcurrent (mistakes can happen when you prototype and play with electronics ideas). That’s a good idea although most computers provide their own internal protection (I think USB specs ask for that). In any case the on-board fuse provides an extra layer of protection.
After some testing with Arduino environment version 2.2 I got things to work. I needed to select right serial port and right board type.
My opinion overall is that the Uno is a very nice board. It maintains backward compatibility while adding the potential for interesting new functionality. This is a great board for prototyping and all kinds of microcontroller hacks.