Re: Arduino Uno
I'm a huge fan of the USB-AVRs. Last year I built an AT90USB162 board. Since then, I've been working on a single chip Bus Pirate clone on one and using them to build USB connected test jigs for our production line.
I also love Arduino.
I had hoped that the Arduino Uno would combine the two chips. But, I'm disappointed. My advice - wait for v1.1 (Uno punto uno?) (see @reemrevnivek below).
Looking at the Uno schematic, they haven't connected up most of the pins from the ATmegaU8 (not even out to pads). So, lots of interesting LUFA stuff won't work without big changes (JTAG, AVR programming, SD cards as mass storage, etc)
There are two lines connecting the ATmegaU8 to the ATmega328 - meant for a serial link.
My advice, buy a Teensy. If the Arduino users start coding for ATmegaU8 it'll run better on Teensy's ATmegaU4 and have acres of flash and RAM left. With the DFU/HID bootloader in the ATmega8, things must be very tight indeed.
PS. ATmegaU8 as FTDI replacement for Arduino - see Benito and Uno response.
PPS. Here's the FAQ. The U8 is a cost down.
Ok, so I have worked out that you can add USB_VID and USB_PID to
Project Properties -> C/C++ General -> Paths and Symbols -> Symbols -> Add
If you have multiple configurations its best to do it as your specific one for Leonardo.
If found in the ./hardware/arduino/bootloaders/caterina/Makefile
that the values are as follows:
# USB vendor ID (VID)
# official Arduino LLC VID
# VID = 0x2341
# USB product ID (PID)
# official Leonardo PID
# PID = 0x0036
Ill leave the question as is, so others can find it.
Because:
This then yeilds to the next errors for RXLED1, RXLED0, TXLED1, TXLED0
These are found in the pins_arduino.h file under variants. But when i add this lib to my Arduino core project, it is a problem since the default version of this file is read first.
The simple way to fix this is to add the second pins_arduino.h file into another folder and then add this to the start of the default one:
#ifdef USB_VID
#include "leonardo/pins_arduino.h"
#else
## <the rest of the file goes here>
#endif
You also need to set like this for your specific build configuration so it pre-processor knows what you are doing.
This at least gets you to a compile. I don't really know how well it works in the end.
Best Answer
Speed! You can send out up to 1000 frames of data per second of data to the 32u4 using it's virtual serial port. The older boards with their FTDI chip and UART bridge are limited to around 38 kbaud before signal reliability problems start to set in.
You can also represent more devices than just 'com port' -- for instance emulating a keyboard and a mouse. If you get fancy and use a new firmware like LUFA you can appear to be many more types of devices.