If there is a better place to suggest IDE 2 additions, pls. let me know.
The two very simple suggestions I have are:
Provide a simple yet intuitive indication if the Serial Monitor's Auto scroll mode is on or off.
(The Output window has this: the tool tip tells you if it is on or off. The Icon (a locked or open lock) is nice, but not intuitive: Does the open lock mean that you have to click it to 'open' it (no auto scroll) or is it its current state (it IS currently on). Nor is it entirely clear what 'open' and 'close' actually means for auto scroll.
A button on the Serial Monitor menu (and Output window!) that would copy the entire window's content to the clipboard, as is already done for error messages, would be nice!
Furthermore, since the IDE is open source, is there a procedure for external people to submit changes or additions? (I could probably fairly easily implement those two suggestions above myself).
Thanks, much appreciated.
And yes, I now have some more issues with that serial monitor indeed. (I'm new to the whole Arduino 'thing').
For instance: why are Output and Serial monitor two different things? It's the same com port they listen to:
Now, if I upload a sketch, it FORCES me to the Output window, and when it's done, I have to select the Serial monitor, but then I lose the first few lines of my own output!
I can then clear the window and reset my board, but that's far from ideal with tons of output!
The output tab does not listen to COM ports. It's used to show the output of the verify (compile) process and optionally the upload process. And that output can be very long depending on the settings in file → preferences
The serial monitor is just a basic terminal program; it has one major advantage over 3rd party terminal programs and that is that it can be controlled from the IDE. Only one application can make use of a serial port (you might know this already); when it comes to the IDE, that is either the serial monitor or it is the program that does the actual upload. The IDE will close the serial port when you start an upload (not sure of the exact moment); once the upload is finished, the IDE will open the serial port again in the serial monitor.
The IDE should automatically switch back to the serial monitor if there are no errors in the verify (compile) process. There are two scenarios
Serial monitor has the focus, you perform a compile and the compile fails; the focus will stay on the output window so you can see the errors.
Serial monitor has the focus, you perform a compile (or upload) and the compile succeeds; the focus will move back to the serial monitor.
I'm mainly a Windows user, for other operating systems the behaviour might be different (I do not know).
"The output tab doesn't listen to COM ports"
You sure about that? I now use Putty instead of the serial monitor (works fine). But if I leave it running, when I upload something, I get an error that my com port is not available! (in use).
Also: from the output tab:
"
Sketch uses 715241 bytes (54%) of program storage space. Maximum is 1310720 bytes.
Global variables use 42764 bytes (13%) of dynamic memory, leaving 284916 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.5.1
Serial port COM3
Connecting......
"
As for the IDE switching back to the serial port after uploading: Yes, but it's flaky: sometimes it does, sometimes it doesn't. And when it does, you lose data!
The output tab displays the results (output) generated by the 'processes' that the IDE calls under the hood. In this error case, it shows the result from esptool.py.
I don't know; I don't recall experiencing that but I possibly also don't pay enough attention.
But note how we use quotes from other posts here. Simply highlight what you want to quote, and a quote tab will appear. Click that and the quote is added to your reply, or indeed a reply is generated starting with this quote.
No.
I think you are misunderstanding what is going on. You miss some data from your print statements, if you begin to print immediately after the Serial.begin call. This is because it takes a little time to set up the serial monitor. A simple delay(1000) after the Serial.begin call will allow you to see everything you print in the serial monitor.