Can the Uno handle two serial port functions ?

I have an Ardunio Uno that I would like to connect the rxd (d0) and txd (d1) lines
to a serial device to send and receive data with that device.

I also want to echo data to the USB port to a PC to display the data in a Labview application.

Can the Uno handle these two serial port functions with d0/d1 and the USB port?

Thanks

irethedo:
I have an Ardunio Uno that I would like to connect the rxd (d0) and txd (d1) lines
to a serial device to send and receive data with that device.

I also want to echo data to the USB port to a PC to display the data in a Labview application.

Can the Uno handle these two serial port functions with d0/d1 and the USB port?

Thanks

No. However you could run a software serial library for the serial device and utilize pins 0 and 1 serial for the PC. The mega board does have four build in hardware serial ports if you wanted to go that way.

Lefty

As Lefty stated. Uno no; mega yes.
But the leonardo should be able to do this as well and is cheaper than the mega.

Thanks for the info...

The Leonardo might work for me if it has 2 serial ports as you say...

Does the Leonardo have the same footprint & pinout as the Uno?

From pictures that I have seen they look the same except for the USB connector
as the Leonardo has a mini, is this correct?

What other differences are there between the Uno and Leonardo?

irethedo:
The Leonardo might work for me if it has 2 serial ports as you say...

And it might not as the Leonardo can bring its own limitations to the table, and I understand the software serial library Lefty mentions is written with exactly this in mind, for the Uno you already have, and it is free.

The Leonardo might work for me if it has 2 serial ports as you say...

And it might not as the Leonardo can bring its own limitations to the table, and I understand the software serial library Lefty mentions is written with exactly this in mind, for the Uno you already have, and it is free.

What limitations?

If I ever knew, I've forgotten. When I looked at the options it was pretty clear that there are essentially two types of Arduino. There is the Uno, Mega, and those of that ilk in the mainstream, and there is the rest in the peripheral niches. On looking at the options, the niches very peripheral and the mainstreamis unsurprisingly where you find the bang for the buck. Most pointedly, you would need to see something pretty convincing to pass up the Uno you already have if that can be persuaded to do what you want at no cost.

Does anyone know if the Uno or the Leonardo can be used as a Serial to USB adapter?

Does anyone know if the Uno or the Leonardo can be used as a Serial to USB adapter?

The Leonardo can be used as this, the UNO includes an ATmega16U2 for this purpose, so theoretically it can be used too. But I guess you question is too general to be of value for your purpose.

Does anyone know if the Uno or the Leonardo can be used as a Serial to USB adapter?

The Leonardo can be used as this, the UNO includes an ATmega16U2 for this purpose, so theoretically it can be used too.

Thanks,

I will scour the web looking for some example code of using the Leonardo as a Serial to USB converter...

Does anyone know if a Uno be used as a Serial to USB converter with the use of
the SoftwareSerial library or is this only for Leonardo & Mega arduinos?

thanks

Does anyone know if a Uno be used as a Serial to USB converter with the use of
the SoftwareSerial library or is this only for Leonardo & Mega arduinos?

You don't need the SoftwareSerial library just for a Serial2USB converter because the UNO has one onboard. Just connect the USB and put the serial device on pins 0 and 1 and you have a USB2Serial device.

As you have a uno your best option is to try the software serial. It is just downloading the lib and try.
I have used software serial before and the quality is OK.
One of the differences between UNO and leonardo is that the USB on the UNO is serviced by a chip which is actually connected to pin 0 and 1.
On the Leonardo that is not the case. This means that the serial port on pin 0 and 1 is free for other usages. In other words with the Leonardo you have 2 hardware serial ports.

Leonardo does have some drawbacks as well. Basically it is not as mainstream as the UNO so there were/are libraries that do not support the Leonardo. It changes all the time so if you want a project with the leonardo it is better to check at that time whether all shields/libraries needed support the Leonardo.

Adding this all up: try with your uno and the software serial lib http://arduino.cc/en/Reference/SoftwareSerial.
The comment on the code states

 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.

Sounds like what you are looking for.
Best regards
Jantje

You don't need the SoftwareSerial library just for a Serial2USB converter because the UNO has one onboard. Just connect the USB and put the serial device on pins 0 and 1 and you have a USB2Serial device.

As you have a uno your best option is to try the software serial. It is just downloading the lib and try.
I have used software serial before and the quality is OK.
One of the differences between UNO and leonardo is that the USB on the UNO is serviced by a chip which is actually connected to pin 0 and 1.

Thanks for the ideas...

Has anyone successfully made a Serial2USB converter with a Uno with its shared pins 0 & 1?

I will try the SoftwareSerial library which should allow me to use pins (other than 0 & 1) because I am concerned about communication issues if pin 0 & 1 are shared for both my serial device and the USB to the PC unless I can see some example code that works...

I appreciate the help !

I will try the SoftwareSerial library which should allow me to use pins (other than 0 & 1) because I am concerned about communication issues if pin 0 & 1 are shared for both my serial device and the USB to the PC unless I can see some example code that works...

What do you want to do? If you want your UNO to be a USB2Serial device you can just connect it via USB to your PC and connect the TTL serial device to pins 0 and 1. Voilà, you have your USB2Serial. You don't need any software to be run on the UNO, it acts as a USB2Serial converter.
If you need something else than a USB2Serial converter, tell us what you want to achieve!

The SoftwareSerial class works OK for baud rates up to 9600, with some devices even up to 38400. I personally never got beyond that limit.

What do you want to do? If you want your UNO to be a USB2Serial device you can just connect it via USB to your PC and connect the TTL serial device to pins 0 and 1. Voilà, you have your USB2Serial. You don't need any software to be run on the UNO, it acts as a USB2Serial converter.
If you need something else than a USB2Serial converter, tell us what you want to achieve!

Thanks Pylon, sounds simple and yes that is all I want to do is to send data to my serial device
from my PC and to stream TTL serial data from that device to the USB port as I can have my Lab view application parse the data...

Does this require any code on the Uno to set up the pin 0 & 1 lines?
What would the code look like if there is code needed?

(regarding the TTL levels- I am using a Max32222 chip to interface between the ardunio Uno and the serial port of the device.)

Does this require any code on the Uno to set up the pin 0 & 1 lines?

No. If you used the Arduino previously upload a sketch that doesn't use the serial interface (the Blink example is excellent for that), so the main processor doesn't acquire the serial interface and interferes with your usage.

Does this require any code on the Uno to set up the pin 0 & 1 lines?

No. If you used the Arduino previously upload a sketch that doesn't use the serial interface (the Blink example is excellent for that), so the main processor doesn't acquire the serial interface and interferes with your usage.

Thanks- sounds simple...

will I be able to see the data that comes across the USB port in a terminal program?

will I be able to see the data that comes across the USB port in a terminal program?

If you connected everything correctly and configured the program that way: yes.

Because the Rs232 lines are ~12v, I connected a Max 32222 inline with the
txd line from the device to the Arduino Uno.

At first I could only see the ~12v data from the Serial Device txd line on the Max 3222 chip
but the 5v side of this chip (which is connected to D0 - rxd) did not have this same signal so I
set the pinmode of D0 as an input and now I can see the 5v signal on D0
when I press a button on the serial device panel.

I have the USB connected to my PC and am running hyperterminal set to the correct values
of the device (9600 N81) but this data is not seen in the hyper terminal...

I am running out of ideas but it does not appear that the RXD line of the Arduino on D0 is being
echoed up the USB port to my PC...

This is the modified blink program that I am using:

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);   
  pinMode (0, INPUT);  // rxd
  pinMode (1, OUTPUT);  // txd
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}