Click here to Skip to main content
Click here to Skip to main content

Termie: A Simple RS232 Terminal

, 13 Oct 2008 BSD
Rate this:
Please Sign up or sign in to vote.
Termie opens a serial port and allows you to communicate with it in a chat-like interface.


Termie opens a serial port and logs data received to a window. It is useful for embedded software development. It can also send data so it is actually a RS232 terminal with a chat-like interface.

An embedded system is a special-purpose computer such as a Wii, MP3 player, or cell phone. To develop for such a system, you need a development "kit" which allows you to download software and debug. Communication between your PC and the embedded system is often a serial cable (RS-232).

In my case, I get output from the embedded system (a game console) via an RS-232 cable. So if I want to see my printfs, I need a program that will display anything that comes in the COM port on my PC.


Termie is an open source clone of Termite from ITB CompuPhase.

What I liked about Termite is that it is simple and fast. Hyperterminal is clunky. I wanted something similar to Termite that was open source. Writing it in C# turned out to be easy; a weekend project. Once done, I can add new features as needed and get great suggestions here!


Settings are stored in an INI file in the application startup folder:



  • Multiple select, select all, and copy to the clipboard
  • Hex Output (not in Termite)
  • Output filter (not in Termite)
  • Partial line output (so you can see "..." one dot at a time)
  • Click status to close/open with current port settings
  • Toggle Scrolling button
  • Send File button
  • Color coded lines (green=received, blue=sent)
  • Send escape sequences (\n, \x7f)
  • Send history

Using the Code

System.IO.Ports has a SerialPort class that does everything we want. I wrapped it in a singleton class with delegates for status and data events.


  • February-2008: Original submission
  • March-2008: Added clipboard, output filter, hex output, monospace font, and all settings
  • May-2008: Added read thread, partial output, color coding, and "send file"
  • October-2008: Fixed thread bug, added history and escape sequences to send (\n, \x7f), and upgraded project files to Visual C# 2008 Express


This article, along with any associated source code and files, is licensed under The BSD License


About the Author

Software Developer Buzz Monkey Software
United States United States
David McClurg is a game programmer from Oregon, USA. He is currently interested in C#, xna for zune, and steering behaviors. When not coding, David enjoys tennis, kayaking, and botany.

Comments and Discussions

QuestionReading data from a RS485 port PinmemberBahram Ettehadieh2-Jul-13 7:40 
QuestionClose? [modified] PinmemberYDLU2-May-13 8:34 
Why sometime the "Windows Form" not closed after click close button?
I think the "StopReading" is a block routine, when closing the form and still reading from comport, so the _readThread never could stop it.
Modified the code as
if (_keepReading)
_keepReading = false;
_readThread.Join(100); // teminate thread on 100ms until exits
_readThread.Abort(); // sure it happen
_readThread = null;
the form will close always.

modified 3-May-13 14:19pm.

QuestionTo plot a data PinmemberAnanthinatesan18-Jan-13 23:39 
QuestionFilter usage/syntax? PinmemberMember 976553217-Jan-13 14:20 
QuestionIt works great! PinmemberMember 388480229-Aug-12 8:35 
QuestionCOM port already in use PinmemberMember 859645325-Jan-12 8:02 
Questiontermie Pinmembersilvio pontes10-Aug-11 19:24 
AnswerRe: termie Pinmembermilkplus10-Aug-11 19:37 
GeneralRe: termie Pinmemberocaccy11-Aug-11 5:41 
AnswerRe: termie Pinmembersilvio pontes14-Sep-11 15:51 
GeneralFormatting string [modified] Pinmemberrobert-t198320-Jan-11 4:42 
GeneralRe: Formatting string Pinmembermilkplus20-Jan-11 6:44 
QuestionTermie code? Pinmembersteve7606316-Aug-10 14:44 
GeneralTransmit delay (char/line) PinmemberDragon2004_fr27-Jun-10 23:06 
GeneralNon-standard Baud Rates PinmemberCamCoder6623-Oct-09 13:29 
GeneralRe: Non-standard Baud Rates PinmemberCamCoder6623-Oct-09 13:32 
GeneralRe: Non-standard Baud Rates Pinmembermilkplus23-Oct-09 13:48 
GeneralRe: Non-standard Baud Rates PinmemberUkkie913-Feb-10 5:29 
GeneralMoving cursor to the right one position (right arrow) PinmemberFernando Vargas22-Sep-09 8:01 
Questioncool~ Pinmembernube0112-Sep-09 5:44 
GeneralThanks for your greate work PinmemberPBalaKumar2-Aug-09 17:16 
GeneralHEX output. Pinmembernathanteepee24-Jul-09 20:32 
General\xa5 sends hex 3f Pinmembercodeblue55530-Jun-09 6:12 
GeneralThanks! PinmemberBillDF27-Mar-09 12:33 
Generalbin code Pinmemberraq12329-Jan-09 7:09 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150128.1 | Last Updated 13 Oct 2008
Article Copyright 2008 by milkplus
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid