For those of you who are totally out of the DIY electronics scene, the guys of the Arduino Team have just released a new version of the Arduino microcontroller called the Uno. The Uno’s main claim to fame over its predecessor, the Duemilanove, is the new USB to serial chip used for programming and communicating with the Arduino’s ATMega328. The Duemilanove, its predecessors, and the many and varied Arduino clones, all used the FTDI USB to serial chip for programming and communications between the computer and the microcontroller. About the only thing the FTDI had going for it was its ease of implementation and its free drivers. The new Uno instead uses a small Atmel microcontroller with built-in USB capabilities to serve as a translator between USB and serial. That chip, the ATMega8U2, is causing a lot of buzz amongst the Arduino crowd because it, like the ATMega328 it programs, is programmable itself. By shorting out a jumper on the bottom of the board, the user can program the ATMega8U2 to act as a completely different USB device. The Arduino can now communicate with a host computer in new and exciting ways, able to emmulate a mouse or keyboard, or able to act as a MIDI device. This opens up new possibilities for Arduino projects, like random password generators or musical instrunments, with a much lower investment and smaller bill of materials. The fact that the ATMega8U2 requires no drivers and supports faster serial speeds than the FTDI is just icing on the cake.
Unfortunately, as pointed out on the Arduino forums, manufacturers of Arduino clones will have some difficulty in implementing the new ATMega8U2. Universal Serial Bus, or USB, utilizes a device identification scheme that relies on two six digit hexadecimal numbers, a vendor ID (VID) and a product ID (PID), to identify the device in question. The VID identifies the manufacturer of the device, the PID identifies the device type, and a manufacturer’s serial number identifies the instance of the device, so that if multiple devices of the same type are plugged in, the computer can tell the difference between them. Each unique VID comes with a little over 56,000 PIDs. The problem is that VIDs are not cheap. VID numbers are assigned by the USB Implementers Forum, or USB-IF, a non-profit organization made up mostly of the original developers of the USB standard. They are responsible for the assignment of VIDs. They don’t just give away VIDs to everyone who asks. A single VID costs about $2,000 (that does not include licensing fees) and are only sold to legitimate corporations, not individuals or groups of individuals. This means that for garage salesmen like myself, the cost of developing and selling USB hardware is prohibitively high. Since the majority of Arduino clones are built by fellow garage salesmen, these clones are unlikely to ever benefit from the use of the ATMega8U2.
Does this bother me? A little. It means that my idea to build and sell a new serial adapter based on the ATMega8U2 for Arduino clones that lack the USB to serial chip, like Sparkfun’s Arduino Pro or Modern Device’s Really Bare Bones Board, is very much impossible at this time. However, I can still build such a device for my own personal use and distribute the source material freely. I could easily use the Arduino Team’s VID and the Arduino Uno PID to ensure compatibility, and so long as I made no attempt to mass produce my design, nobody would mind. This only really affects the end user who may not be savvy enough to build and program their own adapter. Even then, it is only a matter of time for Sparkfun or another semi-large do-it-yourself electronics company to buy a VID and get to producing these new adapters.
So, about those worry warts out on the Arduino forum that say this move is making the Arduino more closed than open: horse hockey. The design remains as open as ever, and you are free to do as you will. The only difference now is that it is a little more difficult to sell one particular part of the new Arduino design. If you have a great product idea that implements the Uno’s ATMega8U2, but don’t have the cash to buy a VID, partner up with another open-source company that already has one.