What are my options for additional UART?

Hello All,

Apologized if these questions had been ask before but i did some search and i may have miss it if there is.

I'm interested in getting and learning Arduino Diecimila in learning Microcontroller and it[ch8217]s programming language. I'm planning to build a project that require Microcontroller to be interface with it via UART. Looking at the hardware for the Diecimila that use Atmega168, it only have 1 UART. That UART already been use for communication/programming under USB interface of the Diecimila. On my project that I need to do, I can only communicate via UART _ TTL level. (TWI, I2C, etc[ch8230] all cannot). Sorry for the newbie questions below. But what are my options? - 1) Does the Sparkfun Arduino Pro works, since it does not come with the build in USB/Serial build-in? That means I have to buy AVR programmer (or STK500/Dragon) to program it? Is it really possible as the Bootloader instructions recognize RX/TX pins only as programming inputs and I can[ch8217]t make use of the RX/TX pins for any other functions? - 2) Are there any 2 UART[ch8217]s build Arduino board out there? Maybe with Atmega128 with 2 build-in UART?

  • 3) Build my own board using Atmega32 or 128 that have 2 UART features? But where can I buy Arduino Booloader to program my AVR? Is this my only options?

  • 4) Any other?

Your suggestion and comments are appreciated.

2 x 168's is the cheapest solution, look up "dcore".

Or look up "Sanguino", but not sure about library support we're awaiting a Wiki page that will detail which library's work and which ones don't.

Not sure if you realise this (apologies if you do and I misunderstood)

If you don't need to communicate over USB, you can use the AtMega168 internal UART to communicate with your device.

The other alternative is to use a "software" UART - this gives you more TTL level serial ports on whichever pins you choose.

There is an "official" arduino version here:


By Ladyada's "AFsoftSerial" seems to be more powerful and popular:

http://www.ladyada.net/make/eshield/download.html (download the .zip)

If you must have a real UART then you could add and extra hardware one and use the Arduino to talk to it over I2C.


Here's another thread which discusses the options:-