A better terminal program (Serial Monitor)?

Are there any terminal programs to replace the Serial Monitor that would support controls like "clear screen", and carriage return without line feed?

I would like to have a "static" screen that could display the values of various parameters without the scrolling in sort of a table format.

You can get the Arduino to output data over the serial line or the USB. If you write a program on a PC to receive that data you can display it any way you want. I don't think you are going to find any off-the-peg programs that display the data in the way you want because of course they will not know how you want to format your data. I could be wrong, perhaps there are some that have a configurable layout. If they exist though then they will probably require your Arduino sketch to output data in a specific format that they recognise.

Some terminal programs respond to \n newline, \r carriage return, and \f new page.
With these you can make a table of data. The Serial Monitor only seems to respond to new line.

I guess I could use the Serial software to output to pins 0 and 1 and then get a TTL to RS232 converter and use a terminal program that is available fo the PC but this is a lot of work.

Are there any terminal programs to replace the Serial Monitor that would support controls like "clear screen", and carriage return without line feed?

As you didn't specify the OS of your controlling PC I simply assume you use the same as I do: Linux.

I use GtkTerm and sometimes minicom (because that's available in the terminal). Both should fulfill your needs as I understood them.

Tera Term responds to VT100 commands, like clear screen, position the cursor, etc. See Supported control functions

To clear the screen send the four character sequence 0x1b, '[', '2', 'J'

barryjo:
Are there any terminal programs to replace the Serial Monitor that would support controls like "clear screen", and carriage return without line feed?

That are features that are all present in the Serial Monitor of the IDE.

I would like to have a "static" screen that could display the values of various parameters without the scrolling in sort of a table format.

And you want those values then to be able to change without the screen scrolling, you mean?

Then you have to start playing with good old ANSI and an ANSI terminal (remember BBS systems?). That protocol supports cursor movements, but it requires some serious work on your side. Or the (even older?) VT100 indeed.

Hi,

"PUTTY" is a free and widely used application for Windows and Linux. I don't know about it's screen controls but it's very full featured. See:

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

barryjo:
Are there any terminal programs to replace the Serial Monitor that would support controls like "clear screen", and carriage return without line feed?

I would like to have a "static" screen that could display the values of various parameters without the scrolling in sort of a table format.

Then you probably want to use an Arduino VT100 library for serial printing and a serial terminal that does a VT100 emulation.

But, will the Arduino VT100 work inplace of the serial monitor. That is,will it work through the USB cable that is used to load the programs?

Did someone say that CR. LF and clear screen are in theSerial Monitor??

I found that cr and lf do the same thing, carriage return and line feed together,. Am I wrong?

barryjo:
Did someone say that CR. LF and clear screen are in theSerial Monitor??

Yes, on the bottom of the screen is a button to clear, another to set what you want to add to inputs: no line ending, \n, \r, or both. Of course the \n also works in outputs (see the difference between Serial.print() and Serial.println()).

wvmarle, I respectfully think you are wrong.

The options at the bottom are when you output a string using the serial monitor.

I have tried various things like..

Serial.print("hello" + '\n' + '\r' + '\f') ;

and nothing works.

If you can give me an example I would appreciate it.

See reply #4. TeraTerm works much better than the serial monitor, using exactly the same connection.

jremington, are you saying if I install Tera Term can compile and upload the programs using the USB cable?

jremington:
See reply #4. TeraTerm works much better than the serial monitor, using exactly the same connection.

+1

Heaps better in my opinion.

The ability of Teraterm to log output to file can save a lot of time when troubleshooting.

For me that command prints "hello" on the Serial monitor. Works as expected.

Press the "Clear output" button and the screen clears. Works as expected.

Enter stuff in the bar on top, select the line ending you want, and read those characters in the sketch. Works as expected including the \n, \r or both.

Now I don't know why you don't see anything (as implied by "nothing works"). Or maybe your expectations are different.

wvmarle, I do not want to have to press the clear button. I want my program to do it.

What I showed will just keep printing hello one after the other. What I want is to see only the word hello at the top left of the screen.

OK all, I installed Tera Term.

Question 1. It seems that every time Istart it I have to reconfigure the settings. Is there a way for Tera Term to save the settings?

Issue 2. If TeraTerm is running,I cannot compile a sketch and have it upload. It seems that the Arduino IDE doesn't work with Tera Term. ???

Question 3. What would I print so that the word hello would stay at the top of the page, or at least not scroll. I am not sure I am using the escape characters correctly.
Should this work Serial.print("hello" + '\r')?
I think \r is return 9without a line feed) and that \n is a new line.

barryjo:
Issue 2. If TeraTerm is running,I cannot compile a sketch and have it upload. It seems that the Arduino IDE doesn't work with Tera Term. ???

this is the advantage of the Serial Monitor. IDE can command it to release the port. no other terminal will do it

I am making progress.

How do you insert control characters into a string?
For example I would like the following command to print "hello" , do a carriage return and not do a line feed.

I thought this should work but it doesn't.

Serial.print("hello" + '\r');

How do you insert control characters into a string?

No need. It is easier to send a separate character array of command characters:

char clear_screen[]={0x1b,'[','2','J',0]; //with zero string terminator
...

Serial.print(clear_screen);  //or use Serial.write() and send four bytes.

This

Serial.print("hello" + '\r');

is not valid anyway. Try

Serial.print("hello\r");