How to observe uart comms

I want to Listen to communication between a Controller and a peripheral.

Currently i use 2 separate terminal windows, but it would be more convenient to have the rx and tx streams combined.

So i am looking for a win or Linux terminal Program that can display rx data from two different ports combined, instead of the normal rx tx setup.

Is there a solution for that, or a different way to approach it (besides using a scope or logic analyzer)?

See

https://www.lammertbies.nl/comm/cable/rs-232-spy-monitor

and be aware of the limitations inherent in your plan.

It combines TX and RX, but the same hack would work for combining any two rs232 signals.

If you are dealing with TTL level rs232 signals, the circuit might be a bit different but the principle is the same - a logical operation on the two lines allowing both to signal through.

a7

Logic analyzer, such as Saleae (clone).

EDIT: missed the last paragraph. What is wrong with a LA?

A terminal window is a bit nicer. But if the objection is cost, please know about these

inexpensive logical analyzers

which can be found for even less. They work very well and the specs are a good for Arduino stuff.

a7

Yes, i have a saelae, but a terminal window- like output will be easyer to read.
Lammert does mention special software to combine output from two ports,

often better is to use one of the specialized RS232 monitor software products. In that way the two communication streams are merged in one screen which makes it easier to analyze the sequence of the communications.

But does not mention an example.
Is there maybe also open source for that?
Maybe it could be done o the linux shell just by piping? Not my strength...

As an exercise, maybe make your own? An Arduino Mega has 4 serial; use two(or 3) for input, one for output to Serial Monitor. Since you have some idea of the tx/rx characteristics, you should be able to depict the back-and-forth easily. For example, serial Monitor could display, with one TX left justified, one centered, one right justified), for example:
1>timestamp(in Mega) ABA ........... // heard from port 1
2>timestamp(in Mega) .......CDC..... // heard from port 2
3>timestamp(in Mega) .............XAC // heard from port 3
You'd have control over how the transmission captures were sequenced in the display, which could be useful.
Use a high baud rate for the Serial Monitor output to keep it from interfering.
Would be a fun little project, I think, and very instructive/illuminating.
Of course, there might already be dozens of such implementations out there, but then you'd learn little about the coding side of such a project.

Agreed @camsysca ... if time was no issue :wink:
I found what i want here, DualTerminal by [Piotr].

http://nicecircuits.com/dual-port-serial-terminal/

Think I'll take this on someday maybe post as a first Tutorial, or a "what's neat" topic, it really piqued my interest; was hoping you'd be inspired, but I understand, time is fleeting!

One would think that the serial-monitor function of QBF could handle a separate input channel... just give chan#2 a different color scheme / or split screen.

The QBF - "The Quick Brown Fox..." For Serial Diags - Community / Exhibition / Gallery - Arduino Forum

Slightly different solution, but worthy of further reflection. Thanks!