Serial Terminal:


Rss News Feed

RSSLatest News


  • Virtual Comports can be addressed by name eg \VCP0 (
  • Count of Binary Sync Matches displayed
  • Spy Mode displays nulls (char 00) correctly (
  • Timestamping file captures for data logging
  • Spaces in commnd line parameters working (
  •  Improved installer with source and examples
  • CallbackEvents in ActiveX interface (V2.0.0.45+)
  • Spy Mode monitors comms of other applications.
  • Extensive I2C support
  • Stable Version released Monitor New Releases
  • Who Uses it? / What For? Hell its free, drop us a line saying what your company does with Realterm!

Realterm is a terminal program specially designed for capturing, controlling and debugging binary and other difficult data streams. It is far better for debugging comms than Hyperterminal. It has no support for dialing modems, BBS etc - that is what hyperterminal does.


  • Text or Binary views of data

  • binary viewed as hex, 8 bit, 16 bit, little/big endian, signed, unsigned, special fonts

  • colorised: rx and tx data are different colors
  • ansi terminal or plain text or binary modes
  • protocol analyser / "port spying" mode
  • fixed frame sizes/line lengths
  • sync patterns with masks and xors
  • data inversion
  • full remote control through active X/ Windows Scripting
  • extensive command-line control
  • can be used for serial I/O component of other programs via activeX. Full support for minimize,hide,iconize, tooltray
  • special ascii+hex font to see hidden control chars
  • capture to file, settable capture size or capture duration
  • timestamping capture files for simple data logging
  • view and change control lines (cts,rts, dcd etc)
  • easy to send binary sequences
  • serial (comports) or telnet via tcp
  • arbitary baud rates
  • reset / power buttons for Pic Programmer
  • hideable to run in invisible or on tool-tray
  • can dump files to serial port
  • Drives I2C and SPI chips via BL233

Realterm Screenshot

Help & Hints:

Press F1 to bring up the help screen. Amongst other things you get a list of the actual commandline parameters that version supports.

Popup Hints (tool tips) are the primary source of help and explanation when using Realterm. Take the time to move the mouse over every control, and read the hints that pop up. If you doubleclick on the status bar at the bottom it will toggle to a longer hint string. 

The Popup hints are also displayed (and don't timeout) on the status bar. Double click the status bar to show them the full screen width.

Installing Realterm

downloads Download

Monitor New File Releases

back to contents

Display Formatting

Display Formatting controls

Reaterm displays data in meaningful forms

  • ASCII is plain text. Hex Font lets you see non-ascii values

  • ANSI is terminal emulation

  • data can be inverted (pager IC's do this)

  • Data can be in 1 or 2 byte binary views

  • 2 byte data can have either byte order

Terminal Colors

Colors can be set from the commandline (V2.0.0.64+), or on the Misc tab.
Colors are set by a sting of color chars below. The sequence is: Kbd,Port,SendStr,SpyTX,SpyRX,Background
Default is 'RYLRYK'

    'R':  clRed;
    'G':  clGreen;
    'B':  clBlue;
    'C':  clAqua;
    'Y':  clYellow;
    'M':  clFuchsia;
    'K':  clBlack;
    'W':  clWhite;
    'T':  clTeal;
    'P':  clPurple;
    'L':  clLime; (bright green)
    'O':  clOlive;
    'N':  clMaroon;

Tray Icon & Popup Menu

Right mouse click on the main window or on the Tray Icon will bring up the popup menu. You can doubleclick the tray icon to hide/show Realterm (ie make it disappear from the taskbar)

The Tray Icon and main icon changes to show a red dot when it is capturing. The dot rotates as data bytes are actually being received. The dot is Green for normal chars, Red when capturing, 

Yellow when Data Triggers or Binary Sync Matches occur.TrayIcon with Yellow Square

Hiding Controls / Fullscreen

If you don't want the control panel visible, or you want a bigger screen, then you can Hide Controls either from the popup menu, or the commandline or activeX interfaces. This is ideal for making a shortcut that sets up Realterm for your field staff or users, then hides all the controls, to make it less confusing.

Show / Hiding Everything

The popup menu (and ActiveX and Commandline) have a Show option that will completely hide Realterm. Unlike minimising, it disappears from the taskbar. Only the Tray Icon is left.

This is ideal where Realterm is being used by another program to work in the background, eg capturing data to a file, echoing a port to a remote machine.

If you want it to be totally hidden the activeX interface lets you hide even the Tray Icon. This is ideal if (like us) you have 16 Realterms running in the background at once, all the time.

Setting Rows and Columns

terminal row/column controls

To force the number of columns across the terminal window, set Bytes and check "Single"

You can set the display rows from the commandline to launch it the size you want.

The example shown will be a 40x16 window.

back to contents

Frame Sync

Binary data is arranged in frames. These frames are either

(of course Text is arranged as lines ending with LF or CR)

A count of sync matches is shown on the Binary Sync Chars panel. When a sync match occurs, the tray icon square changes to yellow for a few seconds.

datframes control

Fixed size frames are self evident. You will notice that the terminal resizes to always have a whole number of frames across, unless "Single" is checked.

Unfortunately frames will randomly begin somewhere on the line. GULP swallows a character each time it is pressed. Press it until the frames correctly start at the beginning of a line.

Binary Sync control

Delimited frames start a new line when they detect the sync sequence. A sync sequence can be any number of bytes long

Here sync is detected when 2 bytes match 0xA55A, or more accurately, when 0xA55A XOR 0x0000 AND 0xFFFF > 0. ["SyncIs" should be set to "Number"]. If you are syncing off ASCII chars, then select "Synch is: ASCII" and put the chars in the top editbox.

You can have as many bytes as you want in the sync word.

The XOR term allows you to invert some or all data bits. ($00 is normal $FF is inverted). If you don't need the XOR and AND fields, just leave them empty to get the defaults.

The AND term lets you ignore some of the bits. For example you could use this to use bit 7 as a sync bit, by setting the AND term to $80 $80. (Note hex numbers are preceded by $)

Errata: Versions <1.99.31 the XOR and AND fields are mislabelled (swapped). The middle field is AND, the bottom is XOR

back to contents

Baud Rates & Ports

Baudrates depend on the exact hardware port. Realterm accepts anything. Some ports complain about invalid baud rates, others just ignore them, some coerce to the nearest rate.

Most PC ports accept non-standard values that the chips divider is capable of generating.

Realterm can connect to both SERIAL ports (real uarts, as well as USB, and network virtual uarts) or TCP/Telnet ports.

Port controls

Virtual Comports and USB Devices

USB serial ports appear at some port number. Look under "my computer->properties->hardware->ports" to find where they are. Unfortunately the same device will often appear at different comport numbers when it is on different USB hub ports.

The currently present devices and associated ports are also listed in the registry at  HKLM\HARDWARE\DEVICEMAP\SERIALCOMM. You can use these device names directly in the port selection eg  "\VCP0" or "\Serial0"

For example when you plug in an I2C2PC adaptor it will normally appear as \VCP0, regardless of the comport# that it is assigned, or which usb hub port it is connected to.

On Win9X there don't seem to be any special names for devices, and this won't help you.

Scanning for Ports, Startup Delay, and Bluetooth

Version onwards

Realterm now uses the registry to find ports rather than trying to open them all. Please report any problems especially with older versions of windows eg 98

Versions Before

Realterm will scan for ports at startup if an explicit port is not given on the commandline. This can cause long delays where Bluetooth is running. The SCANPORTS commandline option restricts scanning.

When starting normally, Realterm will try to open the first existent port that it finds. (V2.0.0.57+)

When started as an ActiveX automation server, it does not open the port until explicitly requested.

Baud Rate Multiplier and 16C95X Uarts

The16C95X family of advanced uarts are able to support very high baud rates. They have 64byte FIFO's, which is a give away that they are in your serial card. When trying to get very high baud rates, there is an option in the hardware configuration of the uart to enable the "baud rate multiplier". This will result in higher than requested baud rates. ie the actual baud rate = requested rate * multiplier
There is a hidden control to scale Realterms baud rate. This makes it easier to select the rate you want. Double click on the the word "Baud" to show/hide the hidden multiplier selector. Note that this does not change the multiplier itself, which must be set in the hardware control panel.


Enables hardware direction control by the RTS line.

Note that some specialist serial cards and USB-Serial adaptors can handle this in hardware, and don't require this to be set. They may also get around the limitations that windows imposes on this, as described by Stephen Boyd below:

“For all versions of Windows > NT AsyncPro handles the toggling of RTS via the RTS_CONTROL_TOGGLE flag and the Windows SetCommState function. I have found other people complaining about a "significant lag" when using this flag to control RS485 devices from non-ASyncPro programs. This seems to be a problem with Windows in general and not AsyncPro in particular. Here is a quote from a user in a different forum:
I tested the RTS_CONTROL_TOGGLE mode with RS485 devices, and I noticed that Windows has a significant delay between the end of transmission and the control of the RTS line, so this mode does not work properly with a RS485 equipment that replies "too fast" for Windows, due to a conflict between the RS422 amplifiers simultaneously active on the RS485 line. Your best bet might be to get an actual RS485 card for your windows system that handles the RTS toggle in hardware.”

TCP/IP: Telnet and Raw modes

The TCP connections default to using Telnet protocol. However if you are connecting to a socket with raw data, you might notice that some characters (eg 0xFF) are missing or doubled up. You need to change between Telnet and Raw modes.

back to contents

Hex Font

Our Hex fonts are included. The Installer should install the fonts for you automatically. You can also go to the windows font installer in Control Panel to install it.

The hex font contains all 8 bit values. The non-ascii values <32 are shown as either HEX or CONTROL chars, depending on the font you select. (There are 3 different fonts in the .FNT file)


This is very useful for seeing control codes, invalid hidden codes and errors, in serial comms. It's equally useful in a programmers editor.

(Note that you won't see them in ANSI mode, as the control codes will be processed)

You can now get just the fonts from the downloads page. If you can convert these fonts for use with Linux or another OS, please do! If you would like to add a larger size to the font, please do.

back to contents

Pins & Status

Status lights

Handshake Pins and comms status can be monitored.

Handshake outputs can be controlled directly (and from the command-line, and via activeX)

The error cause is displayed when you hover the mouse over the error light.

RTS/CTS/Break controlPin states can be set manually. Set means data flow is enabled. Note that if CTS/RTS or DTR/DSR handshaking is enabled, then you cannot control that pin from the buttons.

back to contents


Incoming data can be captured to file. The capture can automatically stop after a certain time or number of chars. Realterm can be hidden, and capture controlled from the tray icon, popupmenu, and automation interfaces. Combine capture with filesend to make simple datalogging applications

Capture can be fully controlled through the ActiveX interface. Well behaved applications can read and process the files whilst RealTerm is writing them. (beware: Microsoft apps often try to lock the file, eg excel, notepad, word.)

This provides a very easy way to (say) collect serial data, and graph it live using Matlab.

It can either capture "direct" or via the terminal window. When you use DIRECT capture, the terminal window is turned off, and the echo port operation will cease. This means less processor load, screen draws etc. This is best for embedded type uses.

If you want to capture what you are seeing in the terminal, don't use Direct Capture.

Capture controls

Char Count and CPS (chars per sec) are displayed during capture.
The Tray Icon and main icon changes to show a red dot when it is capturing. The dot rotates as data bytes are actually being received.

Capture As HEX

Sometimes it is easier to look at binary data when it is saved as hex. So each received char is converted to two hex chars and saved to file. This option only works with Direct Capture. For best speed don't do this: capture normally, and use a binary/hex editor to examine the file


Timestamping is very useful for data logging, or where you want to know when an occaisional string arrived. This is most useful for comma separated (CSV) type text data. Timestamp is triggered by CR or LF. 

Unix timestamps are the number of seconds from 1/1/1970.

Matlab timestamps are floating point days since 0 Jan 0. Matlab timestamps are given to the PC's clock resolution, this should be 10ms for NT and later and 55ms for Win98 and earlier. Using Matlab timestamps should give you finer resolution than 1 second.

UnixHex is provided for convenience when all the data being captured is in hex. In this case the whole file including timestamps can be converted to decimal by the HEXCSV2DEC utility that is bundled with Realterm

Timestamping also slows down file capture somewhat, so it is probably not ideal for very fast and dense data streams.

Diagnostic Files: Trace and Log

RealTerm can also write LOG and TRACE files to help debugging difficult serial problems. These are completely separate from the Capture function and provided by the Turbo Async comport component. These are a reports from a dignostic queue. You can CLEAR the queue or DUMP it to a file. The Log buffer is 10000 long and Trace buffer 1000 long (V2.0.0.69). Select hex if you need to see non-printing chars. For more information see the  Turbo Async Reference Guide , Chapter 2, "Debugging Facilities" (pg 33)

Diagnostic Files Form

back to contents

Sending Char Sequences

Read the popup Hints carefully. They give lots of information especially in the Send tab!

Often you want to send special chars strings or strings repeatedly, or send them quickly.

Both ascii and binary strings can be sent. Sent chars aren't echoed to the terminal.

(V2) If half-duplex is set, then sent strings will be shown on the terminal. This also applies to strings/chars sent via the ActiveX interface.

SendChars controls

When Sending ASCII, you can optionally end the line with CR and/or LF. You can also strip spaces from sent data. This is useful for the I2CChip adaptor. While it ignores spaces, they take time, and buffer space, and won't be used in the final application. (but they make it much easier to read!)

Loading Canned Strings

From the ActiveX interface you can prepopulate the Send dropdowns with strings by using the “AddCannedString” function

The SendStr commandline option loads strings into the dropdowns.

Sending ASCII with special/non-printable values

When you press "SendASCII" any valid backslash sequences are converted to special values in the style of Python.

If Literal is checked, then the string is sent raw. Note that the special chars must be lower case


LF (0x0A)














hex value


decimal (NOT octal like python)


\ (backslash)

Sending Non-printable binary chars

You can do this in several ways.

CRC and Checksum

You can add a variety of CRC's and Checksums to the end of the send string. See the drop down list.

Modbus binary packets end with a 16bit CRC. This can be appended to each string sent.

Sending Files

You can dump a file directly to the port. This has no "protocol" and just sends everything. (versions before 1.14 swallowed ^Z / 0x1A).

Dump File control

Padding File Dump with Delays

Two delay settings are provided to add delays after each char, and at the end of each line. (EOL is denoted by CR at present). This affects file dump, but not sending char sequences above.

Sending Repeatedly

You can set the number of repeats, and the delay after sending the file, .

These are particularly useful from the commandline for data logging, when combined with capture.

For example you can make a simple, one line file that commands a multimeter to read a voltage. Set repeats to 0, so it will loop for ever, and delay to 1000ms, and Capture. Now the data will be read to file every 1 second.

Data Logging

Using Capture and SendFile from the commandline, you can log data and control intruments directly from the commandline, without extra software.

realterm.exe senddly=10000 sendrep=0 sendfile=commands.txt capture=results.txt

This will send "commands.txt" endlessly, with a 10sec pause between sends, and capture the replies to "results.txt". This is all you need to do to turn (say) and RS232 multimeter into a datalogger.

(V2.0.0.46) The TIMESTAMP option can be used to prepend a timestamp to each line. This is most useful for CSV type text data. See capture section

back to contents

I2C & SPI Bus

I2C, SPI, 1-Wire and other Serial buses can be read using the I2CChip products "I2C2PC" and the "BL233B" IC. Realterm cannot read I2C without these external devices. It cannot use printer ports, the PC's SMBUS interface etc.

The I2CChip Host adaptor provides a USB/RS232 interface to 3 I2C buses. Realterm is an easy way to use it. Using the ActiveX interface you can easily send strings from excel or other apps. Using the Echo port provides a way to make hardware devices that can be controlled over the internet.

Common commands you want to send to play with the adaptor are provided by the controls. Using this you can quickly try out an I2C adaptor or 1-wire device.

The main I2C tab has controls to select one of the serial buses.

I2C Tab 1

Refer to the datasheet for the BL233B chip used, where its commands are detailed.

Note that you can use it with SPI, Dallas 1-wire, and other serial IC's, as well as I2C

The I2C-2 tab has controls to support a number of common IC's. The MAX127 12Bit Precision ADC and PCA9545 Bus Switch/multiplexor are available as standard modules from I2CChip

I2C Tab 2

The I2C Misc tab has support for non-I2C devices:

I2C Tab 3

Echo Port: Redirect Ports across Network

The main port can be passed through or echoed to the Echo Port. This is partcularly useful when the echoport is a TCP port. This allows a real serial port to be aliased across the network. (the echo port can be a real comm port too)

Lets say the remote (unattended) machine ( has a datalogger connected to COM1. It runs Realterm at startup with a command line like this:

realterm -port=1 -baud=9600 -echo=server:9876 -caption=Mirror_Multimeter_To_Internet

ie realterm connects to the datalogger on COM1 at 9600 bd, and presents a telnet server on port 9876 (or any other suitable number).

On the local (attended) machine run a copy of Realterm like this:

realterm -port=

This makes a telnet connection to the remote machine. Now you can sit at your desk, and control and monitor the remote serial device.

Note that as Realterm has a full ActiveX interface, you can use Windows remote DCOM to start,stop and control the remote Realterm, as well as the local copy.

When there is a connection, chars are echoed. When the connection is broken, or the buffers are full for some reason, it simply stops attempting to echo chars. When the connection is broken, the server end just waits for another connection. At the client end, the port need to be manully restarted.

If you are using the activeX interface you can check the open property to see if the link is up, and use it to re-establish a dropped link.

The Monitor checkbox lets the terminal window display both sides of the conversation (ie both the data received through the ain port, and the echo port)

echo port controls

Signalling Winsock Connection state to Comport

When a telnet/winsock connection is being echoed to a physical comport, we can use one of the comports handshake output lines (DTR,RTS) to signal a remote system whether winsock is connected. You must make sure that this doesn't interfere with the operation of the handshake lines. (ie use DTR for signalling if you are using RTS/CTS handshaking for flow control)

back to contents

Monitor RX and TX data: Protocol Analyser

Realterm has two ways to monitor serial communications, and let you see the RXD and TXD data interleaved in the same terminal window:

Spy Mode

Spy mode allows you to monitor the communications between a program running on your PC and the com device, by installing a device driver to intercept the port messages,
Spy mode must be activated before opening the comport, and the comport must be closed before spy mode can be released. Spy button is on the port tab.

Port controls

Note that you cannot currently capture the spy mode. However you can copy and paste from the terminal window.

Monitor Mode

Monitor mode is useful to monitor communications between external devices by connecting to the RS232 cable.

The Echo port can be used to give you a second receiver. The data is put into the terminal screen, in a different color. Now you can see both sides of the conversation.

The interleaving on screen, only shows you when the data arrived at Realterms handlers. The indeterminate delays in Windows mean that you can't rely on the sequence being exactly as it happened. Obviously with slow data, or decent gaps between send and receive, it will work better than with very fast data streams.

Special Monitor Cable

You need a special adaptor with 2 plugs for the PC's 2 serial ports. Only connect RXD and GND on those plugs at the PC end.

Monitor and Echoing

You can select both Echo and Monitor. Now Realterm echos as normal, but the terminal window displays the data from both directions.

back to contents

Command Line Parameters

Realterm doesn't save its settings. Instead it is set up from either the command line, for basic setups, or using its extensive ActiveX interface. It is also possible to send commands to a running instance of Realterm from the commandline.

These examples show the command-line params you can use. Generally they set the corresponding widgets. For radiobuttons and checkboxes, a number selects the state. For booleans (eg visible) use either 1 or 0. (n.b. No "/" or "-" before parameters)

Errata V2.0.0.60 and below: Quoted strings are not working properly, and may not work if you need spaces in parameters and filenames

Check the Help (F1) to see a list of the commandline parameters which has been automatically generated. It may be more complete than the one below...



Set the baud rate. Non standard baudrates are fine



sets the port



Sets DataBits,Parity,StopBits. eg DATA=7E1 DataBits is 8-5, Parity is None,Even,Odd,Mark,Space, StopBits 1-2



terminal frame size



name of the capture file to use



Length of capture in bytes (either CAPCOUNT or CAPSECS)



Time of capture in SECS




Capture starts immediately. Stops at count OR secs. Can use CAPTURE=filename

Capture=0 is off; Capture=1 is ON; Capture=2 is APPEND



Capture (as above), but program quits when capture ends. If you manually stop capture, then Autoquit is cancelled. Can use CAPQUIT=filename


Capture as Hex ie turns all chars to a 2 char hex value.



During capture, Prepends a timestamp to each line.



starts hidden, only tray-icon is visible



sets the display format (ascii, hex,int etc). eg DISPLAY=5



set big-endian checkbox



sets hardware flow control mode



sets RTS pin



sets DTR pin



Starts with port closed (default is open)



Selects the opening tabsheet by name



Sets the echo port, and enables echoing



Set the baud rate for echo port.



Sets Echoport DataBits,Parity,StopBits. (not working properly yet)



Sets HALF Duplex



Sets window caption (can't accept spaces, use underscores)



Sends the file immediately. (capture started before sending starts)



Hide Controls and expand terminal window to full screen



Monitor Echo port RX onto terminal



Sets delay (in ms) after each character when sending files and strings



Sets delay (in ms) after each line when sending files and strings



Set number of rows in terminal window.



set delay (in ms) after file is sent, until next send begins. If Send Delay is set, SENDREP will be set to 0.



set number of times file will be sent. 0 sends for ever. Should follow after SENDDLY



quit when sendfile ends.If you manually stop send, then Autoquit is cancelled. Can use SENDQUIT=filename

SENDSTR "string" Loads "string" into the Send String comboboxes. Can be called more than once to load more strings. Does not send the string unless sent to a running instance using FIRST (see below)
SENDNUM "string" as SENDSTR above



Sends commands to running (FIRST) instance of Realterm or stops more than one instance running. Brings FIRST instance of realterm to front, and quits. Should be first param.



sets Newline Mode checkbox



Spy mode. Port you are spying on must be closed when starting. Be sure to specify the port on the command line with port=X  when using this.



realterm scans for actual comports by trying to open them all. This can cause problems with Bluetooth serial devices, because it takes a while before the OS can say that a port is not there. This option can be sued to suppress scanning


set the I2C Address. Should be hex string eg "0x40"


SCROLLBACK # Enable Scrollback. =0 disables; =N Sets SCROLLBACK lines=N
Terminal colors are set by a sting of color chars. The sequence is: Kbd,Port,SendStr,SpyTX,SpyRX,Background
Default is 'RYLRYK'   see Terminal Colors
HEXCSV "format" Sets format string for HexCSV formatting. (when implemented) will set the capture formatting sting to the same.

 Hints: Parameters that put a string into a drop down (eg SendStr,SendNum, HexCSV), can be called multiple times to push more than a single value into the drop down.

eg realterm.exe hexcsv=uv hexcsv=st hexcsv=ab

Controlling a Running Instance

When you begin a line with the FIRST parameter, the parameters will be sent to the existing (first) running instance, and the second instance will terminate. This allows you to pass many of the above parameters (not all will do anything), and some special ones below. Note that Windows Scripting/ActiveX is a better way to do complicated tasks. ( has fix for quoted string bugs)



Quits Realterm



same as Quit



Start/stop capture. 1 starts capture; 0 stops; filename starts and sets filename



start/stop send file



send string. (only when sent to a running instance)



send CR after string (sets for following strings)



send LF after string


"numeric string"

send numeric string as binary (only when sent to a running instance)













The best idea is to create a special shortcut for each setup you want to use, and set the params in its properties. If you need other parameters added, contact us.

back to contents

ActiveX/COM Interface

RealTerm is an out-of-process server. The active interface is more extensive than the command line. Use a property browser (eg from excel or delphi) to see what it can do. (must be registered first run: REALTERM /REGSERVER)

You can launch Realterm from another application, eg matlab, excel, VB,OpenOffice, delphi. Alternatively use windows scripting, and write a simple .SCP file to launch and control it. You could even launch it from a web page to use as telnet client!

Registering the COM interface

This should be done automatically when you run the installer. Sometimes this fails, or perhaps you don't have the right permissions under XP or Vista.

Why not the microsoft comms ocx

It has many problems. The best thing about using RealTerm is that you can see exactly what is happening when you want. Save yourself time and headaches. If you don't want people to see RealTerm, you can completely hide it.

Sending Strings, Chars and 0x00

Windows has one big problem for users of binary data. Strings are null-terminated. ie they end with 0x00. Amazing as it seems, you can't pass a string containing char 0 (0x00) through the activeX interface.

Putstring can send any 8 bit chars except 0. If you need to send char 0 to an application use the Putchar function.

From Matlab From Excel

Getting Data

With the ActiveX interface you can get data in several ways:
  1. Capture to File. Poll properties like CaptureCount to know when to read the file.
  2. Capture to File. Use Events to notify your application that the file can be read
  3. Use Data Trigger events
  4. Use WaitForDataTrigger.
Note that the capture file interface is mature, thoroughly tested and reliable.

Browsing the COM interface

Many  languages include a browsing tool to examine the properties and methods of the COM interface. Many properties and methods have help comments that you can see. Use the browser tool.
One free tool to do this is ActiveX/COM Inspector from Oakland Software
Browsing the interface will show you how it actually is, as this page may be out of date.
Some languages might want the type library. If you need it, it is part of the source package in the installer.

Properties & Methods @ V2.0.0.66

Open Realterm using a property editor/browser. Or open the typelibrary (.tlb) or the realterm_tlb.pas file, which are in the source directory.

property TimerPeriod: Integer dispid 1;
property EnableTimerCallbacks: WordBool dispid 2;
property CaptureFile: WideString dispid 3;
property Capture: EnumCaptureMode dispid 4;
property baud: Integer dispid 5;
property Port: WideString dispid 6;
property PortOpen: WordBool dispid 7;
property CaptureCountForCallback: Integer dispid 8;
property EnableCaptureCallbacks: WordBool dispid 9;
procedure Close; dispid 10;
procedure StartCapture; dispid 11;
procedure StartCaptureAppend; dispid 12;
procedure StopCapture; dispid 13;
property FrameSize: Integer dispid 14;
property DisplayAs: Integer dispid 15;
property CharCount: Integer dispid 16;
property CPS: Integer dispid 17;
property WindowState: EnumWindowState dispid 18;
property Caption: WideString dispid 19;
property Visible: WordBool dispid 20;
property CaptureEnd: Integer dispid 21;
property CaptureEndUnits: EnumUnits dispid 23;
procedure PutString(const S: WideString); dispid 22;
function SelectTabSheet(const TabCaption: WideString): WordBool; dispid 25;
function DiskFree(Drive: Integer): Double; dispid 24;
property CaptureTimeLeft: Integer readonly dispid 26;
procedure PutChar(C: Byte); dispid 27;
property TrayIconActive: WordBool dispid 28;
function DiskSize(Drive: Integer): Double; dispid 29;
property BigEndian: WordBool dispid 30;
property EchoPort: WideString dispid 31;
property EchoPortOpen: WordBool dispid 32;
property HalfDuplex: WordBool dispid 33;
property HideControls: WordBool dispid 34;
property Parity: WideString dispid 35;
property DataBits: Integer dispid 36;
property StopBits: Integer dispid 37;
property EchoBaud: Integer dispid 38;
property EchoParity: WideString dispid 39;
property EchoDataBits: Integer dispid 40;
property EchoStopBits: Integer dispid 41;
property FlowControl: Integer dispid 42;
property EchoFlowControl: Integer dispid 43;
property CharDelay: Integer dispid 44;
property LineDelay: Integer dispid 45;
property Rows: Integer dispid 46;
property SendFileDelay: Integer dispid 47;
property SendFileRepeats: Integer dispid 48;
property SendFile: WideString dispid 49;
property Send: WordBool dispid 50;
procedure ClearTerminal; dispid 51;
property MonitorOn: WordBool dispid 52;
property LinefeedIsNewline: WordBool dispid 53;
procedure NewlineTerminal; dispid 54;
property RTS: WordBool dispid 55;
property DTR: WordBool dispid 56;
property CaptureDirect: WordBool dispid 57;
function AddCannedSendString(const SendString: WideString; ControlNum:Integer): WordBool; dispid 58;
property Version: WideString readonly dispid 59;
procedure TimeStamp(Style: Integer; Delimiter: Byte); dispid 201;
procedure EnableDataTrigger(Index: Integer); dispid 202;
procedure DisableDataTrigger(Index: Integer);dispid 203;
function WaitforDataTrigger(Timeout: Integer): WideString; dispid 204;
property CaptureAsHex: WordBool dispid 205;
procedure DataTriggerSet(Index: Integer; const StartString: WideString;
                             const EndString: WideString; PacketSIze: Integer; Timeout: Integer;
                             AutoEnable: WordBool; IgnoreCase: WordBool; IncludeStrings: WordBool); dispid 206;

Callback Events

(V2.0.0.46+) Realterm can send events to an application. From the Events tab you can manually trigger events, to make it easier to test your software interface. The Events tab is only visible when Realterm started as an ActiveX.

Events usually have an associated property to enable them. By default they are disabled, so you will need to explicitly enable them before anything happens.

The Timer is a utility. It does nothing within Realterm, ie it only provides callbacks to your application. This exists as some languages do not have a convenient timer arrangement.

DataTrigger is new, and a work in progress, so the interface will change in future. Note that when you are capturing a lot of data, or the data rate is high, using the a capture file is probably a better approach than Data Triggers.

procedure OnTimer; dispid 1;
procedure OnCaptureCount; dispid 2;
procedure OnCaptureStop; dispid 3;
procedure OnDataTrigger(Index: Integer; Timeout: WordBool; Data: OleVariant; Size: Integer; Reenable: WordBool); dispid 201;

There are several properties and methods to control the events:

property TimerPeriod: Integer
property EnableTimerCallbacks: WordBool

procedure EnableDataTrigger(Index: Integer); dispid 202;
procedure DisableDataTrigger(Index: Integer);dispid 203;

procedure DataTriggerSet(Index: Integer; const StartString: WideString;
                             const EndString: WideString; PacketSIze: Integer; Timeout: Integer;
                             AutoEnable: WordBool; IgnoreCase: WordBool; IncludeStrings: WordBool);

Testing Events and Events Tab

When Realterm has been started as an ActiveX/COM server, there will be an event tab. On this are controls to manully send the various events. This makes testing your code very much easier, as you can getting the event handler going, without having to get the actual serial data working at the same time.

Events in Excel

Unfortunately it appears that you cannot practically use callback events in Excel or OpenOffice.
 If you know how to do this, please make an example for others.

WaitForDataTrigger was provided for this. See below.

Capture Events

OnCaptureCount and OnCaptureStop are provided to work with capture.

OnCaptureCount is used with the properties CharCount and CaptureCountForCallback.
OnCaptureEvent is fired when CharCount>=CaptureCountForCallback. At the end of the event handler you should update CaptureCountForCallback to a new value. Otherwise the event will not happen again. Alternatively it is possible to clear CharCount.

Data Trigger

The default trigger is a LF character at the end of line. So it is ideal to capture ascii data lines eg from the I2C2PC adaptor.
Before using Data Triggers you should enable them.
All the methods include an index, to support multiple triggers in future. At present there is only 1 data trigger and index is ignored. Index should be set to 1.

Data triggers can be automatically re-enabled or manually re-enabled.
In your OnDataTrigger handler you can reenable the trigger by setting Reenable.

DataTriggerSet is used to configure the trigger from the COM interface. The Events tab also has a button to edit these settings.
The TrayIcon changes to Yellow when Data Triggers or Binary Sync Matches occur.TrayIcon with Yellow Square


Timeout numbers are in "ticks" (18ms)


The Events tab will show when Realterm is started as an ActiveX/COM.
You can manually display it using the "show Events Tab" button on the misc tab.
Now you can edit and tests the trigger. The light will flash when a trigger is matched.


This function is provided for convenience. It is a blocking function. This means that your application will completely stall while it waits.
This is poor programming practice, and not recommended. But sometimes it is the only way.

function WaitforDataTrigger(Timeout: Integer): WideString;

Misc Notes

Don't rely on the defaults when using ActiveX (eg baud rate). These may change with different revisions.

This is only a snapshot when this web page was written. Always check your actual version using a browser, as new functions are always being added. If you need other parameters added, contact us.

back to contents

HexCSV2DEC Utility

This command line utility is installed with Realterm and is normally found at:
"c:\Program Files\BEL\Realterm\HexCSV2DEC.exe"

With no parameters it will display its help.
It converts a file of hexadecimal data values to decimal. Unlike some other hex2dec utilitys it converts the binary format of the hex into decimal numbers. It is especially useful to convert a file of hex captured by reading I2C data with the I2C2PC and BL233, into useful decimal numbers.

(c)2008 Broadcast Equipment Ltd

Converts HEX in CSV files to Decimal CSV files

Command Line may have these forms:
HexCSV2DEC <InFile> <OutFile>
HexCSV2DEC <InFile>
HexCSV2DEC -<option> <InFile> <OutFile>

Uses stdin, stdout if <file> is omitted
Only valid UPPERCASE hex substrings will be converted
Quoted strings, and non-hex data is passed through unchanged EXCEPT
explicit decimal/bcd strings can be passed though by preceding with "d"
 eg "d1234" will be passed through as "1234"
Floats (numbers with a decimal point) will pass through
Default is Big Endian, Unsigned
Precede hex with the special explicit chars to override the default
  "s" signed big endian  eg "s8000"
  "u" unsigned big endian eg "u8000"
  "t"  signed little endian eg "t0080"
  "v" unsigned little endian eg "v0080"
  "f" IEEE Floating point big endian (4byte singles only)
  "g" IEEE Floating Point little endian
  "b" Binary (only big endian)
  "a" ASCII Chars

The first parameter can be options -s,-u,-t,-v to set the default format
 eg HEXCSV2DEC -s <infile> <outfile>      Convert hex as signed bigendian
 Alternatively it can be a series of format chars for each hex substring
 eg HEXCSV2DEC -sufbd <infile> <outfile>      Convert hex using format string

back to contents

PIC Programmer

Realterm can has buttons for RESET and POWER if you are using the BEL Dual PIC Programmer.

Its watches the RB7 line.

This makes it easy to control a serial PIC when you are using ICP.

If you are using NT/2K/XP you need to install the DLPORTIO driver using its install program.

back to contents

Compiling Realterm

The current source code for your version is in the installer and will be installed in the "source" subdirectory. It is easy to recompile for specific setups.

You will need additional components. Async4.06 and Systools are on sourceforge. Other components are on the Download page.

V2.x is compiled with Delphi 7 and Apro 4.06 library (now free on Sourceforge)

Version 1.x was compiled with Delphi 3 and used the turbopower Async 2.11 library. 


Realterm has been tested with Wine 1.0, Opensuse 11.0, Realterm
A cursory test with Com1, running as root, was successful.

Borlands Kylix  has gone into limbo, so it is now unlikely Realterm will be ported to Linux. It is probably best to simply copy Realterms function using your favorite language eg for KDE.

back to contents



The translation component is not currently working, however if you would like to volunteer, I keep a list for the day it is working. Translators are wanted for all languages. I am not sure if this version will work with non-european languages.

Email if you can help:

Who Uses it? / What For?

If you are using Realterm in your company, please drop me a line(email) so I can include your company below...

Help Spread Realterm: Put a link on your companies web page today!

Also of Interest:



Old Versions

The latest version of a program isn't always the one you want. Sometimes it works differently, or isn't as stable as an older one.

Some of the older documentation can be found here:


Contact Us

back to contents