Three Alternatives to Arduino’s Serial Monitor

The Arduino IDE includes a “Serial Monitor” which is decent for basic serial communication.  However, when you need real time serial interaction or data logging capabilities, that’s when one of these serial monitor alternatives can come in handy.

putty [Windows]

Download:  PuTTY.
License:  MIT.

Putty Screenshot

Hands-down one of my favorite terminal applications for  Windows is PuTTY from Simon Tatham.  In addition to being a great serial terminal it can also handle telnet, ssh, and a host of other things (no pun intended).  The source is available and looks like it runs on UNIX platforms, but I have never tried.  If you’re using Windows, this is probably your best go-to terminal application.  Every Windows machine I use gets PuTTY in the Start Menu shortcuts.

Screen [Mac, Linux, Win]

Download:  None (for Mac and Linux)
License:  GPL

screen for mac and linux

Screen is a command line based fullscreen VT100 emulator.  It makes a create terminal client and has the ability to “detach” from the current terminal to run in the background.  When it comes to serial communication, it’s the tool I used the most outside of the Serial Monitor.  On Windows you will probably need to install Cygwin.  On Linux and the Mac, you’ve already got it.  Drop to a terminal and run screen.

screen <serial_port> <baud_rate>

Since it comes with all Unix systems it is hard to beat.  Except, if you have a Mac.  There’s one option that will beat it!

Cathode [Mac]

One of the coolest terminal emulators available is Cathode from Secret Geometry, which I’ve written about before (with video).  It emulates old-school CRT monitors which sends any grey-bearded hacker (or soon to be) into a nostalgic frenzy.  Which combined with screen can be super nerdy way to interact with your Arduino project.  Go full screen and you’ll make new friends in your makerspace in no time.

It’s too beautiful for screen shots, so there’s a video of the Arduino ASCIITable Example.

Code For Testing Serial Monitors

To demonstrate screen and PuTTY,  I loaded the following code on to my Arduino Uno.  It sends back whatever characters it receives.

void setup() {
  Serial.begin(9600);
}

void loop() {
  while(Serial.available()) {
   char incoming = Serial.read();
   Serial.print(incoming);
  }
}

Conclusion

Use whatever serial application suits your need. There are plenty of other terminals you can use. What are some of the others you know about?

Long comments, URLs, and code tend to get flagged for spam moderation. No need to resubmit.

ALL comments submitted with fake or throw-away services are deleted, regardless of content.

Don't be a dweeb.

Leave a comment

24 thoughts on “Three Alternatives to Arduino’s Serial Monitor

  1. I just want to monitor the serial out put from my air compressors from any were in the plant and at home. they have an RS232 9 pin D-sub connector. Can I use Arduino to WiFi it to my android. This will be my first Aduino project.

    • You need to measure the signals to verify if they are “true” RS232. True-RS232 outputs can go up to +12V and down to -12V. Either range would be deadly to an Arduino. If the signal swings from 0v to 12v (meaning always positive), then you could use a voltage divider to safely monitor the signal. If the signal swings 0v to 5v, then you can safely monitor with a 5-volt Arduino. Basically Serial.read() and you’re good.

      Instead of Arduino to WiFi, I would get an Adafruit ESP8266 Huzzah/Feather board. You will likely still need to do some logic shifting since that is a 3.3 volt board. But it is rather easy to do WiFi with it.

  2. How do I get Arduino to send data to the new terminal instead of it’s built in terminal?
    Nothing to set here:

    void setup() {
    Serial.begin(9600);

    or in Arduino preferences.
    In everything I read about terminals, nowhere does anybody address this.
    Is it supposed to automatically happen…somehow?

    • The name “Serial Monitor” has nothing to do with code “Serial.begin().” The IDE’s built-in serial monitor is JUST a simple terminal program. It opens a COM port, sends, and receives data. By using “Serial.begin()” you are telling your Arduino to send the computer serial data. Any program on your computer, such as these in this list, that can open a serial port can send/receive data to the Arduino.

      So in other words, there are no additional steps necessary. You open the serial port on your Arduino with Serial.begin() and you open the serial port with a terminal program on the PC.