Home page
Memory Testers



Tech Support
Software Downloads

Calibration & Upgrades
Application Notes
Development Logs
Service & RMA Policy

News Releases
Site Map


Contact us at
(281) 879-6226



This application note discloses partial information regarding the RAMCHECK Serial Interface Protocol. This information should be sufficient for advanced users wishing to implement their own computer interface program. The information may also be used for serial interface troubleshooting.

RAMCHECK Serial Protocol is proprietary information of INNOVENTIONS Inc. and copyright, patent pending, and trade secret protection cover it. Users are hereby granted the use of the enclosed information only in conjunction with INNOVENTIONS' RAMCHECK units. INNOVENTIONS Inc. reserves the right to incorporate any change in said protocol without prior notice.


RAMCHECK: The serial communication setup is 38,400 Baud, 8 data bits, 1 stop bit, and no parity.

The 9-pin D-SUB serial connector for the RAMCHECK uses pin 2 as Transmit, pin 3 as Receive, and pin 5 as Ground. NO OTHER PIN IS USED. The serial cable supplied with the unit has straight connections (pin 1 to pin1, pin 2 to pin 2, etc.).


The PC Communications program for the RAMCHECK includes a communications diagnostic tool, which allows you to view the serial streams between the PC and the tester, as well as sent characters stream to the tester in accordance with this document.

Diagnostics Screen

The Communications Diagnostics can be activated from the RAMCHECK menu, or using the associated speed button.

Protocol Overview

The main design constraint of the Serial Protocol was to avoid any task overhead on the RAMCHECK main memory test routines, in order to retain the stand-alone advantage of our architecture. Therefore it is implemented with short communication streams (typically 4 to 6 characters) from the PC to RAMCHECK. All lengthy communications of test results from RAMCHECK to the PC are made only between test subroutines.

The second design constraint of the Serial Protocol was to create a loose, non-time-critical communication between RAMCHECK and the PC in order to retain RAMCHECK full independence. Also, the memory test will not be interrupted even if communication is lost (or intentionally ignored) for some time. The only result of communication being lost will be a gap in the PC Test Log data. You will find this feature to be very useful in simplifying your own interface program!

SERIAL INTERFACE PROTOCOL (partial disclosure)


All character streams are denoted within a pair of quotation marks, like this "[r0". The quotation marks are NOT PART of the protocol. All characters are in standard ASCII presentation.

Individual character (byte) values, which are cumbersome in ASCII, are written between '<' and '>' markers like "[t<07>". In this example, a byte equal to 122 is transmitted after the letter 't'.

A <cr> is the carriage return character (=13).

A <variable 1> is a variable value between 0 and 255.

We use the h notation for hexadecimal numbers, for example 23fh.

General Stream Format

All the Realtime Interface streams between PC and RAMCHECK must start with the character '[' or '{'. Thus, your own program may safely ignore all the streams which do not include the '[' or '{' prefix.


Once RAMCHECK is turned on, the serial channel is inactive. The PC turns it on by sending any command. From that point, RAMCHECK will send various data via the serial interface. Your custom PC does not need to respond to these commands.

The following table outlines the most useful commands from the PC program (which you may create) to RAMCHECK.

NOTE: Please select the top text section on the Communications Diagnostics window when entering the serial commands. This can be done by simply clicking the text section with your mouse.
PC Command String RAMCHECK response
Get RAMCHECK version "[r0<cr>" "a<version><cr>"where the version char is 100-255 for version 1.00 to 2.55
Esc "[r1<cr>" Similar to RAMCHECK Esc key.
Jump to Basic Test "[r101<cr>" RAMCHECK performs Basic Test.
Jump to Extensive "[r102<cr>" RAMCHECK goes to the title screen of Extensive Test.
Jump to Voltage Cycling "[r103<cr>" RAMCHECK performs this phase of the Extensive Test.
Jump to Mode Test "[r104<cr>" RAMCHECK performs this phase.
Jump to Voltage Bounce "[r105<cr>" RAMCHECK performs this phase.
Jump to March Up Down "[r106<cr>" RAMCHECK performs this phase.
Jump to Relative Refresh "[r107<cr>" RAMCHECK performs this phase.
Jump to Relative Spikes "[r108<cr>" RAMCHECK performs this phase.
Jump to Final Test "[r109<cr>" RAMCHECK performs this phase.
Jump to Auto Loop Test "[r10a<cr>" RAMCHECK performs Auto Loop Test.
Jump to Single Bit Test "[r10b<cr>" RAMCHECK performs Single Bit Test.
RAMCHECK Halt "[r2<cr>" RAMCHECK program halts at its current state. Screens including a timer will show the timer running but any test animation or test stage will remain.
RAMCHECK continue "[r3<cr>" Terminate the halt command.
Note: the jump-to command will be changed in future RAMCHECK revisions as we add more test phases.


RAMCHECK Test Log Data

RAMCHECK II provides test results to the PC in strings of plain text (with a special header) which are placed in the PC Test Log by our standard Realtime Interface. It should be very easy for your program to intercept these messages which, in effect, contain all the test results.

The format of such a test log data stream is as follows:


The header portion is "[l<length>..." where length is the number of characters in the current message. The message terminates with a carriage return. The message may contain several lines of characters; each terminated with a null character (equal to 0). We use short lines in order to conform to the 20 character per line limit of the RAMCHECK's LCD display. Your program can decode the lines differently.

RAMCHECK Short Message Streams

RAMCHECK II also sends several short messages that provide Speed, Cycle Time and Voltage information to the graphic meter portion of our standard Realtime Interface program. The following table provides some listing of these messages:

Message Type Format Notes
voltage "[v<value><cr>" Value is converted to voltage x.xxV by: (value * 2+ 125)/100
speed "[s<speed><cyc_l><cyc_h><cr>" Speed is the access time in the range 0-255 nS. Cycle information is send via two bytes: Cyc_h (ms byte) and cyc_l (ls byte). Cycle=256 * cyc_h + cyc_l. If cyc_l=cyc_h=0 - only speed info is valid.
Send RAMCHECK serial number "[n<snum_l><snum_h><cr>" Sends a 16 bit representation of the RAMCHECK II serial number: Serial #=256 * snum_h + snum_l.
RAMCHECK error code "[e<error code><cr>" This message indicates that an error was encountered and the error code is used to identify the type of error it was.
RAMCHECK internal status "[u<code><cr>" Special code transmitted from RAMCHECK to enable our Realtime Interface program to perform Change-on-the-fly. You can ignore it in your program.
RAMCHECK current test stage "[x<test_lev><cr>" Test_lev variable encodes the current RAMCHECK test level. The following is a partial list: 00=STANDBY 10h=BASIC TEST 20h=EXTENSIVE 30h=SINGLE BIT 40h=AUTO LOOP 60h=DEMO 90h=SETUP ffh=DIAGNOSTIC

Activating various debug flags in the RAMCHECK configuration setup may create various streams of information in the serial channel at particular points in the RAMCHECK program. These are special purpose streams for our research and they do not conform to the above list. You can avoid them by setting RAMCHECK to default configuration, or have your program ignore all streams that are not understood. With this you will find the main benefit of our open (loose) protocol which does not require message acknowledgement during realtime operation.

This document does not cover the use of the serial interface with our standard PC Downloader program to download RAMCHECK firmware and to transfer bitmaps from/to RAMCHECK.

Quick Tutorial

We recommend that if you plan to write your own interface, use a standard communication software package (e.g. ProComm Plus or Windows Terminal program) to experiment with our Serial Protocol. Set your communication program for CR-LF so that each line received from RAMCHECK is scrolled. Enter chat mode to conveniently separate the messages coming from RAMCHECK and your messages.

Try our PC commands by typing "[r101<cr>"(without the quotation mark). RAMCHECK will start Basic Test. Then type "[r1<cr>" to exit the test. Type "r102<cr>" to start with the Voltage Cycling test phase. Immediately enter "[r2<cr>" to halt the test. Note how the RAMCHECK timer runs normally while the animation characters are supsended. Type "[r3<cr>" to continue the test. Type "[r10b<cr>" to visit the Single Bit Test. Return to standby mode by typing "[r1<cr>". Check the RAMCHECK version with the command "[r0<cr>". If RAMCHECK's version is 1.28, you will see a string for SIMCHECK like '[aç'. The last character represents byte=128 in my computer.

For more information, please call us at (281) 879-6226 M-F 9:00-5:00 Central Time, or send your E-mail to support@innoventions.com, or fax your message to (281) 879-6415. Please remember to include your phone and e-mail.

Products |  What's New  |  Sales  |  Tech Support |  Downloads  |  Employment  |  Company  |  Contact Us
©1995, 2012 INNOVENTIONS, INC.  All rights reserved.