Frothingham Electronics Corp Customer Support
Frothingham Electronics | For more information, visit us at



The FEC testers always produce readings for each test. If the tester is being used only for sorting or screening, these readings are compared with the test limits then discarded. There are several ways that you can make further use of the readings. This page describes the available functions built into MAXX software. It also makes reference to some external utilities for post processing of files produced by MAXX.



There are many different uses for the logger in MAXX and for the related post-processor software STATS. In addition, different users do the same job in different ways. Therefore there is no one “right” way to setup either program. This document describes a few applications in order to identify and explain some of the issues.


In this instance let’s assume that the parts have been pre-tested so that almost all parts are good going in. Still a reject might creep in or you may get a faulty contact to a part while making the file.

You want a file with consecutive serial numbers and 100% good parts. If a reject is encountered it will be replaced with a good diode.

You will be using a scanner to test the parts on a burn-in board. If the scanner stops on a bad part the part will be accessible to be changed.

You will later do a delta report involving two tests but there are five tests altogether that must pass. You have a test program that makes these five tests and no others. The bin sort for good parts is “bin 1".

Please note how many assumptions we have already made. Later I will repeat this same basic application with some of these assumptions changed.


You can customize each tester running MAXX by editing the file CUSTOM.TXT. There are two relevant items effecting this application. You should choose data FORMAT2 and you should choose to test “contact fails”.

Select the multiplex station you will use and join the test program to it. Now open the LOGGER by pressing <F8>. Set the Mode to 1. This will cause the tester to stop on any part whose bin sort is greater than 1.

Enter a unique file name for the new file you will make and set the serial number to the first number on the first burn-in board.

You can enter or edit the three-line header to be placed in the data file.

When you are satisfied with the setup, press <F10> to leave the logger setup screen. You will note that the MAXX screen now shows “Logging Mode 1" beside your multiplex station.

Start the station and the scanner to start logging data. It is a good idea to check the serial number displayed by MAXX at the end of each board. Note that the number shown is for the “next” part.

If for any reason you find that the serial number does not match, you can go back to an earlier number that you know was right and retest the parts from that point. To do this, re-enter the logger setup by pressing <F8> and change the serial number then <F10> to resume testing.

If you scan a bad part or if you get a bad contact, the scanner will stop and you will get a message on the MAXX screen saying that the station is stopped for a bad part. In this application, you should replace the part or fix the contact and then enter Sn to resume, where n is the number of tour multiplex station. If the problem has been corrected the scanning will resume and the serial numbers will still be correct.

You must close the file you are working on when you are finished or you may wish to close it temporarily at some point and resume later. You can do this as many times as you wish. However be careful to use the identical test program each time you reopen the file and to be sure to set the serial number correctly.

To close the file, make sure you have selected the correct multiplex station, then press <F8> and set the Mode to “0", then press <F10> or <Esc>.

By the way, please be sure to check the multiplex station selection each time you use <F8>. Using the wrong station is a common and sometimes very serious error.


Even though this file is intended for eventual comparison with a post burn-in file, you may want to check it to mace, especially while you are first learning the system.

After you close the file, you can enter STATS from MAXX to open the post processor software and choose VIEW FILE 1 and enter your filename. The details of this use are given elsewhere. You can, if you wish, chose to see just the statistics for each test in your file, although you can see all of the readings if you wish.


Making the post burn-in file for this same application is nearly the same but with one very important change. Obviously you can’t remove rejects this time since they must be in the final report. You may still want to fix any bad contact problems and that brings you to a decision point.

You can set the Mode this time to 32. This will log everything, bad parts as well as bad contacts since it is impossible to have a bin sort greater than 32. There are two other possibilities. You can stop on any failure to evaluate the reason for the failure or in some cases, just stop on bad contacts.

To stop on and evaluate all failures, use Mode 1. If you decide that the part is really bad, enter An where n is the number of your station. The part will be tested again but this time it will be accepted even though it is bad. If you think that the problem was a bad contact, fix the contact then enter Sn to try again. If the problem was corrected the scanner will restart and go on.

If it is still bad, it will stop again. Eventually you will have to enter An to accept the reading since you must have a reading for each part (even if the part is missing).

If you can write your MAXX test program to make a distinction between bad contacts then you can have the scanner stop only on bad contacts. Let’s say that bad parts go into bin 2 and contacts into bin 3. In that case use Mode 2. Bin sort 2 will be accepted but the scanner will stop on sort 3 or higher.

Note: I have mentioned the scanner “stopping” several times above. This does not depend on any special characteristic of the scanner. It stops because MAXX does not send out an “End of test” signal.


If you want to make some pre and post burn-in files described above but will be testing the parts “by hand” with no scanner, there is one important difference. You will setup the logger the same way but you must be sure to stop testing when you get a bad part.

If you are not looking at the computer screen while you work then you must depend on the bin lamps or EOT lamp to alert you when a failure occurs. If the tester stops and displays a message but you don’t see it, and you remove the diode and put in another, then the serial numbers will be wrong.

Normally the EOT lamp goes off when you press the test button but comes back on in a short time. If the lamp goes out and stays out then the part was probably bad. Look at the computer screen to confirm this.

You can also watch the bin sort lamps to be sure that you don’t see one that indicates a bad part.

It is possible to make a fairly simple hardware change that will make an audible alarm if a bad bin


If your parts have been pre-screened and you can tolerate a small number of bad readings in your files, then just set up the logger to use Mode 32. Nothing can ever exceed bin sort 32, so everything will be recorded. The pass/fail information for each test and the bin sort decision will be recorded so that the STATS program can still include this information in the final report.

There is another way to record all parts that I will mention here although it has an important disadvantage. You can write your test program with no requirements for bin sort 1. Every part will then be a bin1, so the tester will never stop. You can still see the rejects of the individual tests in STATS. The disadvantage is that if you turn off three of the five test in STATS (as suggested in the example described above) then you will not see the fail flags for parts that fail one or more of the turned-off tests.

If you had used the Mode 32 method instead you could have marked the failures of the turned-off tests based on the bin sort decision. In fact that is the reason that I suggested that you might have five tests in your program even though you need delta information on only two. Often other tests will be required to pass the absolute tester limits after burn-in even though they have no delta limits. The “maximum bin sort #” in STATS allows you to mark bad parts even though the tests causing the high bin sort are turned off in STATS>


If the part corresponding to a certain serial number is missing from the sample, in most cases you will want dummy readings (failures) to be inserted for the missing part. If you are using Mode 32 (or other arrangement that does not stop on fail) then there is no problem. Just test the empty socket and the dummy readings will be recorded and the serial number advanced.

If the tester does stop when you do this then enter An to accept bad readings.

The n in An, is your multiplex station number.


Once you have made two or more data files from the same lot of parts (and with the identical test program) you can use the program STATS to produce a delta report using two files as input.

You will also need a file with delta limits specific to the part and test program used to make the data files. Please read the file SAMPLE.DEL in your \MAXX directory to examine a typical limits file documented with many explanatory notes.

When you write such files it is very useful to make the file name identical to the TITLE of the test program used to produce the data files. In this case the limits file will be loaded automatically when you use STATS to produce the delta report.

There are a number of options to be setup in STATS but the following three are the most important:

  1. Choose DELTA REPORT or SUMMARY ONLY. The complete delta report outputs all of the original readings from both files and the absolute and recent deltas and also all of the summary data.

    The summary includes all of the header information, file names, date, etc., regarding the input files, the list of tests performed with limits, and the delta limits. Also the count of failed parts broken down by the test failed and the type of failure (test limits, delta, or percent delta or failure for bin sort decision). Finally a list of the serial numbers, (up to 512 maximum), of the failed parts.

    The Summary Only report contains all of this summary data but does not include the individual readings. Please note that if you keep the data files you can print the readings anytime in the future that they are needed.

  2. The next decision to be made (you will see a suitable menu when you start the report) is which of the tests whose readings are in the data files will have deltas computed. In the typical example described earlier we tested five parameters but needed deltas on only two. Just turn off the other three in the filter menu.
  3. The third major decision regards the maximum bin sort number (also appears in the filter menu). This allows you to count as failures as many parts whose bin sort numbers exceed the value you set. This allows you to require that certain tests pass even if they are not tests whose deltas are computed. Recall that we said earlier in the example that all good parts would be in bin sort 1. So in this case you would set the maximum bin sort number to 1.

    If you don’t want to reject parts for bin sort, just set the number to 32. Nothing can fail bin sort 32.

    Please note also that parts will be rejected if they failed the tester limits for the tests whose deltas are computed. This will be true regardless of the number chosen for maximum bin sort number. This is accomplished by a fail flag, associated with each individual reading.


When you are collecting data for statistical purposes there are fewer constraints on the tester and program setup. There are still a few constraints however so let’s cover those first.

Our post processor STATS expects a fixed record size within a single file. That is, each part recorded must produce the same number of readings. For this reason, you should avoid conditional jumps in your test program, which could cause some parts to produce fewer readings than others.

The maximum number of tests that STATS can process is sixteen (currently).

Generally it is not necessary to worry about serial numbers or screening out rejects so you will probably use Mode 32 in order to record everything tested. STATS will allow you to filter out just about anything you don’t want in your final report(s).

It is usually a good idea to record everything in one pass through the tester and then make as many different reports as you wish using the filter and other options.

In STATS you can choose the test or tests that you want included in a particular report and exclude readings that fall outside of limits that you set. Also, you can exclude parts whose bin sort number is greater than a value that you enter.


Suppose that you are interested in the distribution of VZ in a lot of nominal 39V zeners. You have a file containing the VZ as well as several other parameters.

In the STATS filter, you can turn off all tests except VZ. Also, you don’t want your data to be corrupted by VZ readings such as, for example 3V. If a lot of 39V zeners contains a VZ of 3V there is something wrong with that part that has nothing to do with distribution of VZ, so you would like to eliminate it.

You can set upper and lower limits for each test. In this case you might want to set values such as 30V to 50V.

If the values you choose don’t turn out well then you can reset them and reprint the report. You may find it useful to preview the setup on the screen first and then print it when you are satisfied with the format of the report.


If you want to do some statistical analysis that is beyond the capability of STATS, you may want to export your data to another program. At this writing STATS has a single export format. More may be added later. The format is described below.

The header on the output file is separated from the data by a separator string that may be changed in the CUSTOM.DEL FILE. The default is ###. A terminator string follows the data. It default is $$$.

The data section contains one line for each part consisting of the serial number and a series of unit-less numbers separated by commas. Missing or invalid readings are, represented by commas only. We send the numbers in the most appropriate of the following basic units in the target program:

The standard data-log file contains a header in ASCII followed by readings and serial numbers in a special binary format. Both sections are described below.


The header is in ASCII and may be any length. The end of the header is marked by a record mark consisting of 2 successive bytes of FFh.

The header may or may not contain CR and LF as line terminators. Our own utilities such as STATS.COM can accommodate wither option. Files produces by our LOGGER allow the operator to fill in 3, 80 character lines, which make up a 240 byte header with no separators.


The header is terminated by a record mark (FFFFh). The data follows, consisting of any number of sets of readings. Each set consists of a serial number followed by some number of 3-byte readings. The set is terminated by a record mark.


The serial number is a 16 bit unsigned integer as defined by FreeDOS. It should be noted that the “next” serial number is written to the file after writing a set of readings. The serial numbers are not necessarily consecutive.


The set of readings consists of some number of 3 byte DATA VALUES. This 3 byte data type is described fully in a separate document. The end of the set of readings is marked with a record mark (FFFFh).


The design of this format allows for any size header, however if produced by our LOGGER the header will use 244 bytes counting the record mark and the first serial number. Each set of readings will add three times the number of readings in a set plus two bytes for a record mark and 2 bytes for the “next” serial number.

Suppose a set of readings is sent through a serial “COM” port at 19,200 Baud, and consists of 3 readings and a serial number. This will take about 6.8mS. This is substantially faster than the same amount of data sent in ASCII.


This, optional, datalog file format, starts with a copy of the binary test program used to produce the readings. A separate document describes the format for this binary program. Next in the file is a header in ASCII followed by readings and serial numbers in a special binary format. The latter two sections are described below.


The header begins at offset 3072d in the file. It is in ASCII and is 244d bytes including the record mark and the first serial number. The end of the header is marked by a record mark consisting of 2 successive bytes of FFh.

The header starts with 240 bytes of ASCII data with no line terminating characters. However, we have treated this as three 80 character lines. This is followed by 2 bytes of FFH and a 2 byte unsigned integer representing the serial number of the first part in the file.


The header is terminated by a record mark (FFFFh). The data follows consisting of any number of sets of readings. Each set consists of a serial number (2 bytes), a bin sort number (1 byte), followed by some number of 4 byte readings. The set is terminated by a record mark.


The serial number is a 16-bit unsigned integer defined by FreeDOS. It should be noted that the “next” serial number is written to the file after writing a set of readings. This means that the file will contain an unused final serial number.

The serial numbers are not necessarily consecutive.


The set of readings consists of some number of 4 byte readings. Each reading starts with a byte representing the binary value of the test sequence number. This is followed by a 3 byte DATA VALUE. The end of the set of readings is marked with a record mark (FFFFh).


The binary program uses 3072 bytes and the following header uses 244 bytes counting the record mark and the first serial number. Each set of readings will add four times the number of readings in a set plus two bytes for a record mark, two bytes for the “next” serial number, and one byte for the bin sort number.


DV is a 3 byte data structure devised by FEC to represent engineering values such as Volts, Amps, etc. DV is used in MAXX, VFS, and all other FEC software that does data-logging.

In memory, the first byte is the “range” or “scale” byte, which represents the sign, decimal point location, and unit of measure. There is also a set of three codes set aside for representing certain invalid conditions such as “Upscale.”

The next two bytes are a 15-bit unsigned integer. The 16th bit is a flag which when true indicates “out of spec.”

When a DV is on the stack in FORTH, the range bit is on top.


Bit 7 is the sign bit
The value (0-3) of bits sets the decimal point location.
The value (0-31) of bits 2-6 sets the unit of measure. If this value is 31 the reading is invalid.
0 none nn.nnn
1 NA nnn.nn
2 UA nnnn.n
3 MA nnnnn
4 A  
5 UV  
6 MV  
7 V  
8 KV  
10 Ω  
13 %  
14 NS  
15 US  
16 MS  
17 S  
18 /W  
19 mW  
20 W  
21 KW  


Each 10 byte sort spec. Is an 80 bit, bit map. Bit 0 of the first byte represents test #1. Bit 7 of the last byte represents test 80. Tests 1-75 are the ones explicitly programmed. Tests 76-80 are pre-defined tests associated with the Polarity and Kelvin contact check.
A true bit means that the corresponding test must pass in order for the part to fall into the bin being checked. The bin sorts are prioritized with bin 1 having the highest priority.
Test 76 is Kelvin contact check
Test 77 is Reverse polarity
Test 78 is Short check
Test 79 is Open check
Test 80 is Normal polarity


0 b Type of test code (which see)
1-3 dv Forcing value #1
4-6 dv Forcing value #2 if used or forced range*
7-9 dv Expected maximum readout (forced range)*
10-12 dv Minimum limit if used.*
13-15 dv Maximum limit if used.*
16-17 bb Soak time in milliseconds (except for PCV where it is microseconds)
18-19 bb Auxiliary #1 (usually 1/K for THETA)
20-21 bb Auxiliary #2 (usually TMD for THETA or DVF)
22 b Options #1 (see detail)
23 O Reserved
24 b Options #2 (see detail)
25 b Destination for Unconditional jump
26 b “ “ Jump on pass
27 b “ “ Jump on fail
* If a value is entered for a maximum expected voltage or current and there is no 2nd forcing value, then the expected value will be placed in bytes 4-6. In any event you can find the readout range by looking at the scale byte for any of the 3 DATA VALUES in bytes 7-15.

If no minimum limit is entered the value will be zero on the selected readout scale. If no maximum limit is entered the digits part of the maximum limit will have a value of -2. Neither of these limits could possible fail, regardless of the actual reading.

The 1/K entry if used may be interpreted as microvolts per degree Celsius.

The TMD if used will be in microseconds.


If bit 0 is true the orientation of the part will be “flipped” before testing. It will remain in this state until flipped again by another test with bit zero or until the start of the next test sequence.
If bit 1 is true, the limiting resistor normally in series with the “IR METER” is removed. It will be replaced, however, immediately after the current test.
The functions of these two bits may be combined (that would be function F3).


This byte controls the jump enables. Bits 0-1 control unconditional jumps. Bits 2-3 control jump on pass and Bits 4-5 control jump on fail. Within each 2 bit group the meanings are as follows:
0 = No jump, 1 means jump absolute, 2 jump + relative, and 3 jump – relative

Frothingham Electronics Corporation
44 Crystal Lane
PO Box 629
Wakefield, NH 03872-0629
FAX: (603) 522-9710
Phone: (603) 522-6620

email Frothingham
email Webmaster
Last Updated September 12, 2007
Copyright 1997, 2006