Possible Arduino Uno USART Bug

OK more info. I am using the unix command cu to connect to the serial line on the arduino. To use cu, i do cu -l cuaU0 -s 9600.

The above code untouched on the duemianove works fine, the string is sent at 9600 to the terminal emulator.

The same again on an Uno, you get junk because the board is sending at twice the baud rate it should. If you reconnect cu at speed 19200 (2 * 9600), you get the correct outcome.

The reason the Uno trasmits at 19200 instead of 9600 is that U2X0 (serial baud speed doubler) is ON. So the UART baud rate is doubled. In order to make the above program work as expected we turn U2X0 off, hence NOT doubling the serial baud rate.

So something (bootloader?) is setting U2X0 on by default on an Uno, whereas that is off by default on a Deumilanove.

I really can't spell it out more than that.