How do I see SoftwareSerial output?

I have a problem for which the answer is apparently so incredibly obvious that nobody else needs to ask. I have searched the forums, the Google, etc., using a variety of search terms and phrases, and so far I still don't understand:

How do I see SoftwareSerial output?

I have followed the tutorials, for example:

http://arduino.cc/en/Reference/softwareSerial

And...

http://arduino.cc/en/Tutorial/SoftwareSerialExample

I have the feeling I need to have two devices in order to see the SoftwareSerial output - one to generate it, and other to receive and output to a monitor.

The last link I posted, however, specifically says "There is no circuit for this example." The code comments, though, do indicate connecting pins to another device. I feel like if the Tutorial page was read by somebody who didn't already understand it, it seems incomplete.

So if I do need two devices, what is the easiest way to see the SoftwareSerial output? I have the following right now:

Arduino Uno (1x) Adafruit Pro Trinket (2x) Adafruit Trinket (2x) Adafruit Gemma (2x) Sparkfun Pro Mini (2x)

At this time I do not yet have an FTDI cable or other such device. (In the past I have programmed the other boards either directly or by using the Arduino as an ISP.)

As far as I can tell, of my devices only the Uno supports hardware serial communication, and since I am using it for the project (with an ESP8266 wifi module) I am not sure what I can use to read the software serial debugging. Do I need to buy something else (again) and if so what?

== Documentation suggestion? ==

I have tried using Terminal (Mac OS), CoolTerm, and myriad options within the Arduino IDE. I've read through forum posts and websites, but in every instance it seems everyone involved already understands how to handle SoftwareSerial more than I do, so they don't explain the basics.

I really have spent a lot of time searching and trying to figure it out for myself before posting here, so it seems either I am really dense or it might be useful to add explicit information about reading SoftwareSerial output to the Arduino documentation files such as the two I linked to above.

Thanks for your help!

-Mark

How do I see SoftwareSerial output?

It depends on what you've got connected to the SoftwareSerial Tx pin. Try an RS232 level shifter, and connect it to a PC's serial port's rx pin ( if you can find such a thing)

Update: I realized I had an HC-06 Bluetooth module hanging around, so I connected that to the pins designated in the code for SoftwareSerial communication, made a connection to that Bluetooth module, and I see the SoftwareSerial output. Always happens - I can spend hours trying to solve a problem on my own, and as soon as I give up and ask a forum, I figure out a solution after all.

My sub-question about the easiest / best / cheapest way to read softwareserial output is still open. I doubt connecting up my Bluetooth module is ideal, even though it does seem to do the job.

So now I clearly understand that I need some sort of device to read the output to those pins. Obvious, again, in hindsight, but it seems even more clear to me that a note in the documentation would be helpful, saying something to the effect of "you need to connect a [insert best term here] to the softwareserial pins, then make a second terminal connection to that device in order to see the output. Possibilities include: X, Y, Z."

The line in the Tutorial that says "There is no circuit for this example" is particularly misleading to a noob.

AWOL: thanks for the suggestion. I don't have an RS232 level shifter, yet, so I'll look into that, if it's a tool one should generally have.

mark_dawson: made a connection to that Bluetooth module, and I see the SoftwareSerial output. Always happens - I can spend hours trying to solve a problem on my own, and as soon as I give up and ask a forum, I figure out a solution after all.

My sub-question about the easiest / best / cheapest way to read softwareserial output is still open. I doubt connecting up my Bluetooth module is ideal, even though it does seem to do the job.

Your real objective is far from clear. Is it to read data acquired or generated by Arduino, or is it to mess about with software serial?

Unless it's the latter, I fail completely to see why you should bother to use an RS232 level shifter, I'm not surprised you haven't got one, and you probably needn't rush out to buy one. If you want to send data to a PC, you need some pretty persuasive reasons for not using the USB cable you already have, like everybody else does.

The bluetooth module you have connected and running doesn't "seem " to be doing the job, it IS doing the job , and is about the best example of the use of software serial I can think of. You don't have to use software serial for this, and it isn't even such a good idea, but say, if you are using a Uno and want to send data to a PC via cable and to a phone via bluetooth at the same time, it's a reasonable solution.

Sorry. I tried to make my original post as thorough as I thought possible without being extraneous. My original question was very simple: I wanted to know how to see the words being put out by a print statement over SoftwareSerial.

For example, with the basic Arduino Uno and a simple sketch, I can start Serial communication, say Serial.println("Hello World"), upload the sketch, open a Serial monitor, and see "Hello World." And yes, I understand that all goes over the USB cable with which the Arduino and my computer are connected.

My original question was simply: how do I see "hello world" with SoftwareSerial? The documentation and tutorial on arduino.cc are insufficient, and I couldn't find the answer through my searching online.

To be clear, I now understand that I need to have something else that provides a connection from the softwareserial TX/RX pins to the computer. I don't think that's clear in the documentation ("There is no circuit for this example."), not for a beginner, at least.

So, my pretty persuasive reasons for not using the USB like everyone else is that, as I mentioned in the original post, I am trying to use an ESP8266 wifi module which, as far as I can tell, uses the RX/TX pins of the Arduino, and hence the Serial-USB connection that everyone else uses. I need to use a separate - software - serial connection in order to see debugging statements, since the USB TX/RX pins are in use. Correct me if I'm wrong about this - I am rather new, obviously.

...although not new or dumb enough not to have figured out the Bluetooth connection, so I'm glad to hear that it is in fact a viable solution to my question.

mark_dawson: So, my pretty persuasive reasons for not using the USB like everyone else is that, as I mentioned in the original post, I am trying to use an ESP8266 wifi module which,

But not persuasive enough. I'm not familiar with the ESP8266 but I submit you should be able to connect it to software serial in the same manner, and for the same reasons, as you have already succeeded in doing with bluetooth. I think that what is not clear in the documentation is that sending "hello world" over software serial is as dumb as it is unwarranted.

...although not new or dumb enough not to have figured out the Bluetooth connection,

Very true

mark_dawson: Always happens - I can spend hours trying to solve a problem on my own, and as soon as I give up and ask a forum, I figure out a solution after all.

I find that writing things down often helps to clarify my thoughts

My sub-question about the easiest / best / cheapest way to read softwareserial output is still open. I doubt connecting up my Bluetooth module is ideal, even though it does seem to do the job.

I think a more fundamental question is why you want to read SoftwareSerial?

The Bluetooth system you used is fine if you just want to check it is working.

But its usual use is to communicate with another device (such as a GPS or Bluetooth) so the Arduino can get data from or send data to that other device. In that case a common way to see the data coming into SoftwareSerial is to output it to the Serial Monitor using Serial.print(). Obviously if you are using Bluetooth to communicate with (say) a phone you will see the output on the phone in some way.

...R