Legacy Data Acquisition Answers
Q: What does aggregate sampling rate mean for a multiplexed system ?
For acquisition systems with a single A/D converter and a
programmable analog multiplexer, quoting a per channel acquisition
rate can be tricky.
The best number to quote is the raw sampling rate of the single A/D.
In the case of the DSPA64/HLF system, this is usually 138 kHz, and
is referred to as the aggregate sampling rate. How this is spread out
over the input channels is under program control and up to the user.
For example, if the 138 kHz on the DSPA64 is spread out evenly over
the 64 input channels, then a sampling rate of 138/64 = 2.15 kHz
results on each channel. Of course the entire 138 kHz can be put on a
single channel if you like, with any other combination in between
being acceptable too.
Q: Do your A/D products work with European 220 vac power sources ?
The boards themselves require the following power supply voltages:
PARxCH: 9 vac or +12 vdc
PAR24B: 9 vac or +/-12 vdc
DSPA64: +/-12 vac and +5 vdc
We normally provide external wall style transformers that convert US
110 vac wall voltages to these board level requirements.
For the PARxCH or PAR24B we will (on request) provide wall
transformers with 220 vac Continental European style wall plugs, or
220 vac chassis mount transformers with wire leads for custom
For the DSPA64 we have only 110 vac type power supplies. For that
product users must provide a separate 220 to 110 vac step down
Q: Do your A/D products work with Win2K/XP or Linux ?
They do. We provide kernel mode device drivers which allow application
programs running on Win2K, WinXP or Linux to communicate with
our A/D hardware. We also provide some simple utility programs to make
installing and removing the driver very easy.
Q: Do your A/D products work with National Instruments LabVIEW ?
They do if you're willing to prepare small Call Library VI's to access
the DLL function libraries we provide.
All our A/D's come with function libraries written in C and available
as DLL's. These functions perform tasks such as initializing the A/D
and reading acquired data. They can be called from LabVIEW by setting
the properties of a Call Library VI to match the name and arguments of
the DLL functions.
All our DLL functions use the C calling convention which adds the
total size of the function arguments to the function name. So you
will need to check the list of DLL exports to determine the proper
function name for LabView.
Q: What is the format of OUT files ?
The .out file format contains the binary analog data values in
multiplexed format exactly as they come from the A/D board. For our
16 bit DSPA64 product data values are stored as 16 bit integers, while
for our 24 bit products they are stored as 32 bit integers.
The data is organized with the data for the first time point for each
channel, followed by the data for the next time point for each channel
and so on. This is referred to as time multiplexed format. All data
is written out in little-endian PC byte order, where the low byte is
When simp and scope write .out files, they also write a single
separate header file with a .hdr extension. This file contains
information such as sampling rate and number of channels that apply to
all the .out data files. The format of this header file can be seen by
looking at the HDR_data structure in the simp.h file in the
An easy way to see the information in a .out file and its
corresponding .hdr file is to use the out2asc utility program. This
utility converts a binary .out file into an ASCII text file you can
examine with any text editor. Out2asc is located in the
\sr\parxch\convert\ascii directory. A
conversion utility for IASPEI SUDS format is also available.
Q: What is the format of DAT files ?
The .dat file format is more complicated than the .out format because
it includes GPS time stamping information along with digital
recording. The best discussion of the .dat file format and the
defines and C structures used to implement it can be found in the
comments in \sr\parxch\include\srdat.h. But, here is a short overview:
The .dat file format is comprised of a leading header followed by data
records of differing types. All data is saved in standard
little-endian PC byte order, with the low byte written first.
The leading header is 4096 bytes long, and has the structure
SrDatHdrLayout as covered in srdat.h. The header includes information
for things such as sampling rate, number of channels and etc, which
are common across the file.
Following the leading 4096 byte header are the data records. Each
data record starts off with a short 128 byte RecordTag structure
identifying the format and size of the data following in the record.
The allowed data record formats currently include 24 bit analog, PPS,
and RS232 serial NMEA data. The most detailed of these is the 24 bit
analog record type, which besides 24 bit analog A/D data, may also
contain GPS marks and digital recording. See the comments in
\sr\parxch\include\srdat.h and \sr\pargps\include\pargps.h for
An easy way to see the information in a .dat file is to use the
dat2asc utility program. This utility converts a binary .dat file
into an ASCII text file you can examine with any text editor. Dat2asc
is located in the \sr\parxch\convert\ascii directory. A
conversion utility for IASPEI SUDS format is also available.
Q: Do you have a view and playback program ?
Yes, besides the PARxCH scope and simp programs that run the data
acquisition and generate files, we also have a viewing and playback
program for later viewing of data files. The view.exe Windows GUI
program is included with the standard PARxCH software distribution at
no additional cost.
View can also be used to excellent advantage across networks to check
in on "headless node" systems.
For viewing acquired SER1CH-UA data, we recommend the free GnuPlot
plotting utility described on the web (www.gnuplot.info).
Legacy PARxCH A/D Answers
Q: Can I use a USB to parallel dongle with the PARxCH ?
Sorry, but no. The PARxCH driver talks directly to the parallel port
hardware. All the USB to parallel software we're aware of works by
intercepting user space calls and would not see the calls our driver
Add-in parallel port cards should work fine as long as they properly emulate a
true motherboard parallel port. Add-in cards using the MosChip or NetMos
chipset are ok for BPP mode only, but are known to fail when using EPP mode or
interrupts. One PCMCIA parallel port card for a laptop that has worked for us
is the Quatech Parallel PCMCIA Card Spp-100.
Q: Is there a 2 channel PARxCH ?
No. The PARxCH family of products are available only in 1, 4, or 8
channel versions. For 2 or 3 channels, use the PAR4CH. For 5, 6, or 7
channels, use the PAR8CH.
Q: How much crosstalk is there between channels on the PAR4CH and PAR8CH ?
Almost none since each channel has its own individual A/D converter
chip. Basically, the channel to channel isolation is so complete that
the crosstalk is too small to measure.
Q: What is the analog input range of the PARxCH ?
Our PARxCH products support a +/-10v analog input range. This is a
popular standard for A/D systems.
Q: What is the overvoltage protection range of the PARxCH ?
On the PARxCH, overvoltage input protection is provided by input
series resistors and the protection diodes internal to the A/D
converters themselves. Usually the input series resistors are around
10K ohms. And since most internal IC protection diodes can pass at
least 10ma you get something like 100v of continuous protection.
Users needing protection beyond these sorts of limits should consider
their own external protection networks. However, be aware that at
high precision, many networks can degrade system resolution and TC
temperature performance. You should carefully evaluate the impact of
any protection network you select.
Q: Does the PARxCH have any digital input/output capabilities ?
Our PARxCH 1/4/8 channel 24 bit A/D systems have four digital input
bits and four digital output bits available on a DB15 connector on the
front panel. The output bits are latched while the input bits are
polled. In addition, the system also has a front panel LED that can be
toggled to provide a visual output. These bits are intended for
general purpose control applications of external equipment in
conjunction with analog data acquisition.
The digital input bit values can be accessed on the PAR1CH and PAR4CH
in a polled fashion by calling the ParXchUserIoRd library function
from software. While the PAR8CH supports this polled style of digital
input too, it has enhanced firmware to automatically sample the
digital input each time a new piece of analog data is acquired.
Our PAR24B 8 channel 24 bit A/D system has a digital output byte
available on a 13x2 pin header. The output value is latched, and can
be updated in the 100's of kHz range. The system also has an on board
LED to indicate the value of the lowest bit of the output byte.
Q: What factors affect the maximum achievable sampling rate on the PARxCH ?
For the PARxCH data acquisition systems, the maximum sampling rate is
in part determined by the PC and software you are running.
For example, consider saving data to the hard disk. If the PC and its
disk system is fast, then there will be less of a bottleneck in saving
the data. In general, we have found a 500 MHz or greater PC is
sufficient to sustain the 5 kHz rate. By comparison, a 25 MHz 386
PC104 card is only capable of something more like 800 Hz.
Note: The PC must also use one of the faster parallel port protocols, EPP
or ECP/EPP in order to achieve the 5 kHz rate. The BPP protocols are too
Q: What is the impedance of the PARxCH analog inputs ?
Around 10K to 20K ohms. While many users need high impedance inputs
(perhaps even in the 100+ Mohms range), we have found that it is not a
good idea to put them directly on the A/D system. For an explanation see
the Data Acquisition Background FAQ
"What is the trouble with high impedance analog inputs".
Q: What is the input sensitivity of the PARxCH ?
The input sensitivity for an A/D converter is the number of digital
output counts per analog input volt. While this definition seems
simple enough, some care is required with differential inputs.
With the PARxCH products, the output counts goes to positive full
scale when the + analog input pin is +10 volts and the - analog input
pin is at -10 volts. That is a total difference of 20 volts between
the + and - pins to achieve positive full scale output counts.
Conversely, the output counts goes to negative full scale when the
analog voltages are reversed with the + pin driven to -10 volts, and
the - pin driven to +10 volts. That is a total difference of -20
volts between the + and - pins to achieve negative full scale output
Since the number of counts between positive and negative full scale is
2**24, and the total voltage span between the two extremes is 40
volts, the number of counts per volt sensitivity is:
40 volts / 2**24 = 2.38 microvolts / count
If you are running at a sampling rate with a noise floor at the 21 bit
level, then the actual sensitivity you would be able to detect would
40 volts / 2**21 = 19.07 microvolts / count
To achieve greater sensitivities requires an amplifier such as our
AMP4CH-DF, which is specifically designed to work with the PARxCH
series of products. However, keep in mind higher signal voltages
result in a better signal to noise ratio. Always run with the highest
signal levels possible to obtain the best resolution, and put the
amplifier as close to the sensor as possible. This is particularly
true on long cable runs.
Q: How do I calibrate the PARxCH A/D converters ?
Even though an input range of +/-10v, or other range as appropriate,
may be generally spoken about for an A/D converter, calibration is
always required for precise counts/volt measurements on a particular
Calibration is required because input signal processing usually
involves resistors, and even precision tolerance resistors are only
available in stock catalog values. In addition, the PARxCH systems
bias their inputs with a permanent offset for best performance.
Our software for any particular system includes a program called
meter. The meter.c source code discusses how to perform a straight
line calibration for that system.
Q: What length parallel port cable can I use with the PARxCH and PAR24B ?
The parallel port cables supplied with the PARxCH and PAR24B are 6 ft
long, and this is the maximum length we usually recommend. The
supplied cable is a standard male to female DB25 with all 25 wires
connected straight through.
You may be able to run longer cables, and even string successive
cables together in a pinch. It depends on the characteristics of your
particular PC's parallel port. But generally a single cable of
shorter length will cause fewer troubles and is recommended.
In specific installations we may be able to increase the cable
length. The record is 50 ft with a PAR24B. Please contact us if
longer cable length is a design requirement for your installation.
Legacy Amplifier Answers
Q: Why would I need an amplifier with a 24 bit A/D converter ?
An amplifier can serve two useful purposes. First, it can increase
the input sensitivity (counts/volt) of the A/D. Second, it can
increase the input impedance of the A/D.
With the PARxCH series of products, the full differential input
sensitivity is: 40v / 2**24 = 2.38 microvolts per count. And
actually, if you have a noise floor at 21 bits, then it is 40v /
2**21 = 19.07 microvolts per count. For some applications this is not
enough sensitivity. Adding in an amplifier with a gain of 100
improves the 21 bit level sensitivity to 190 nanovolts / count. Of
course the amplifier also reduces the maximum differential input
voltage range to +/-100 millivolts.
In regard to input impedance, the normal impedance of the PARxCH
inputs are 16k ohms. For many applications this is a good match.
But, there are applications where higher input impedances are
desirable. With the AMP4CH-DF included in the signal processing path,
the input impedance can be set at any value desired. The amplifier
inputs are non inverting op amp inputs with impedance in the 100+ Meg
ohm range. There are provisions on the board for additional resistors
in parallel with the inputs to reduce the input impedance to any
suitable level. Normally we populate the parallel resistors with 51k
Do not assume that a higher input impedance is better. If you are
running cabling from an active sensor to the amplifier inputs, then
lower input impedance on the AMP4CH-DF or PARxCH is actually better.
With a lower input impedance, the currents from your signals are
larger and compete less with the noise currents from 50/60Hz noise and
leakage. The larger the signal is with respect to the background
noise the better. Of course if you are using a passive sensor, a
higher input impedance may be required so the sensor is not loaded
excessively. In those cases it is usually a good idea to experiment
to find the best match between signal current and sensor loading. The
parallel resistors on the AMP4CH-DF make it easy to optimally tune the
Q: How does an amplifier affect the noise level of acquired data ?
It is a basic fact that as an amplifier's gain increases it will add
more noise. At gains of 100 or less with the inputs shorted the
AMP4CH-DF does not add any noise that we can detect. At a gain of
1000 you will see the amp itself contribute noise.
In fact, beyond a gain of 100 with the AMP4CH-DF, it is almost a zero
sum game. For example, if you increase the AMP4CH-DF gain to 200, you
will see approximately one additional bit of noise on the A/D display
in scope. At first, one might be happy saying they can see smaller
signals at a gain of 200. But, if the amp starts contributing one bit
to the output noise floor, you really are effectively running with a
gain of 100. At a gain of 100 the AMP4CH-DF does not add to the noise
floor, yet still provides the benefits of an amplifier.
Also note that with the inputs shorted you will see one noise floor,
while with the inputs open you will see another. This is mostly
controlled by the 51K resistors in parallel with the inputs on the
AMP4CH-DF amplifier board itself. At these signal levels the Johnson
thermal noise of the input impedance becomes a consideration.
Changing the 51K resistors or the impedance of the driving signal will
correspondingly change the Johnson noise contribution.
Q: What type of analog input cable is best for the AMP4CH-DF ?
At a gain of 100 in front of a 24 bit A/D converter, signal levels are
small enough that flat ribbon cable becomes susceptible to 50/60Hz
noise pickup. In fact, even "twisted ribbon" can have 50/60Hz
problems because it has flat stretches of cable. When 50/60Hz flux
lines cross open loops of cable, noise voltages are generated by
Discrete twisted pair cable is ideal for analog inputs to the
AMP4CH-DF amplifier. A simple round shielded twisted pair cable is
available from Belden Wire for about $22/100ft. Actually, even
unshielded twisted pair made with single wires and a drill is very
effective. For best results make sure the twist runs all the way from
your sensor to the AMP4CH-DF inputs with no flat untwisted stretches.
Legacy Mini-ITX and PC104 Answers
Q: What are Mini ITX and PC104 ?
Many industry standards with the goal of defining the size, shape, and
connectors for small PC systems have been proposed and implemented
over the years.
Two of the more popular standards have been the PC104 at 3.5 x 3.75"
and more recently the Mini ITX at 6.7 x 6.7". Each of these two
standards have their own advantages. Both are compatible with SR A/D
Q: Does SR supply Mini ITX and PC104 turnkey systems ?
No. You will need good PC skills and hardware experience in order to
set up a successful Mini ITX or PC104 system. However, if you
are comfortable setting up a desktop machine you will have no problem
setting up a Mini ITX. Somewhat more skill is required for PC104
systems because of nonstandard connectors. Since these systems are
typically used for remote field situations, power and remote or
untended operation also become important issues.
Q: What skills are required to setup a Mini ITX or PC104 system ?
To set up a Mini ITX system you will need modest mechanical
skills to open the case and install a hard disk. You must also be
comfortable with correctly connecting ribbon cables. Once the initial
mechanicals are done, you must also be comfortable with installing the
Win2K/XP or Linux operating system. Overall, working with a
Mini ITX system is much like working on a desktop machine.
PC104 systems are typically more involved. Depending on the PC104
motherboard you are using, the connectors to keyboard and video may be
very nonstandard. Also, installing the OS is usually more involved
because of nonstandard CMOS and BIOS interfaces on many PC104 cpu
cards. You will want to be in contact with your PC104 cpu card
manufacturer to get support with these issues.
Q: Do you sell any PC104 related products ?
No. We are now focusing on new options like tablets and small SBCs
like the Raspberry Pi and Beagle Bone Black and no longer offer a line of
PAR4CH/PC104 Stack accessories
that can be used when building your own custom PC104 equipment stack.
These include adapter boards making it easy to connect a PC104 CPU
card to the PAR4CH, a disk mount board for adding a 2.5" hard disk,
and a power distribution panel allowing plenty of options for getting
power to the other boards in the stack. All these boards are the same
size as the PAR4CH.
Q: Where can I buy other Mini ITX or PC104 products ?
Both complete Mini ITX and PC104 systems and their individual
components are sold by many vendors which can be found by searching
The Mini ITX systems shown on our site were purchased from
CaseOutlet. We have used them in our lab and at trade shows with good
results. We also have several customers successfully using them in
field systems they designed and put together themselves.
Q: What features should I look for when buying Mini ITX or PC104 products ?
When choosing a PC104 CPU card, it is best to select one that has a
bi-directional parallel port located at one of the standard 0x278 or
Other features to check are whether or not Ethernet connections are
supported and how much power is required. Often increasing the CPU
speed means more power is needed. Mini ITX systems equipped with
the Eden C3 processor typically require less power than similar PC104
Q: Can I use a 2.5 hard disk in my Mini ITX or PC104 system ?
Yes. In fact, 2.5" disks are preferable because they use less power
than the 3.5" disks. This power savings can be on the order of 0.5
amp. The savings comes partly because the 2.5" disks are smaller and
lighter and partly because they tend to spin at slower speeds.
You can always use a 2.5" disk in place of 3.5" disk as long as you
can make the mechanical and electrical connections. For custom PC104
stacks, our PAR4CH-PC104-DISK card provides mounting holes for a 2.5"
disk and a pair of headers so you can use either 2mm or .1" cable to
conveniently connect with which ever PC104 CPU card you've selected.
Q: How much power does it take to run a Mini ITX or PC104 system ?
We have tried various PC104 cpu cards at different times. One PC104
cpu card from Ampro ran a 25 MHz 386 and idled at about 350 milliamps.
Another PC104 cpu card from Megatel ran a 100 MHz 486 and idled at
more than 1.0 amp. Both of those numbers without hard disks.
Increasing CPU speed and adding more memory both tend to increase the
The power consumption for PC104 cpu cards can also vary quite a bit
from one PC104 manufacturer to another, even for the same cpu speed.
However, none that we've seen so far have power specs as good as those
for the Mini ITX systems.
For example, the sample Mini ITX system shown on this site, set up in
a headless configuration (i.e. no keyboard or video), ran on less than
1 amp and included:
• Fanless Via Eden C3 533 MHz CPU
• Ethernet connection
• 30 Gb Hitachi 2.5" hard disk
Q: Can I run scope.exe on a headless system ?
No, you should run simp instead. Scope is a graphical program that
requires a video display when it opens windows and dialogs. But, when
a Mini ITX or PC104 system is run "headless" it has no video or
keyboard attached. Simp, on the other hand, is text only and works
well on headless systems.
You will probably want to configure your system so simp is one of the
tasks that runs automatically on start up. Alternatively, you can
start it manually over your remote Ethernet connection. In either
case, you'll want simp to be running in the background so be sure the
simp DisplayData and DisplayInfo ini file options are set to OFF.
When running under Linux and using telnet, use the ampersand character
(&) at the end of the simp command line to request background
processing. When running under Win2K/XP, you can run simp in the
background by using the task scheduler to start simp.
Once simp is running and acquiring data, you can copy the data files
to your local computer using a file transfer program like FTP under
Linux or Explorer under Win2K/XP. You can then use the Windows GUI
view.exe program to playback and review the acquired data in a
graphical display similar to that of scope.
Legacy DSP Answers
Q: What is DSP ?
DSP stands for Digital Signal Processing. You will often see the term
used loosely in the industry for anything that processes digital
signals, but technically it has a specific meaning.
A DSP chip is a processor that has a dedicated hardware multiplier
and pipeline optimized for inner product calculations. Multiplying
two numbers together digitally is a complex process, much more so
than other arithmetic operations like addition. In fact sometimes as
much as 70% of the silicon in a DSP chip is given over to the
In addition to the multiplier, DSP chips are equipped with a pipeline
so they can perform a multiply/accumulate operation in a single
instruction cycle. The collection of operations required for a
multiply/accumulate is referred to as a MAC pipeline, and is the core
calculation in computing an inner product. DSPs in addition have most
of the features of general purpose microprocessors and can also
execute general programs.
Inner products are the foundation of important numerical calculations
like convolutions, FIR filters, matrix multiplies and etc. The fact
that these operations can be performed at very high speed in real
time has been a significant advance in computing.
Many of the numerical operations performed by a DSP can also be done
with a general purpose microprocessor lacking a MAC pipeline. But
because it is highly pipelined, the DSP has more horsepower on
computations involving inner products. Most DSPs fetch two memory
operands, perform the multiply, accumulate the result and save it to
memory, all in the same instruction cycle! Even if a general
microprocessor was capable of performing each of these steps in
single clock cycle (which they are not), the DSP would still have 5
times the performance, because it is pipelined.
Q: Why are floating point DSPs easier to use than fixed point ?
DSP chips can be divided into two categories, fixed and floating
point. Fixed point processors basically handle only integer numbers.
This is a big limitation! Not only must you make sure your numerical
process can be represented with integer arithmetic, you must also
constantly guard against overflow.
The repeated accumulations that are done as part of an inner product
calculation get large. If the calculation overflows at any point, the
result becomes meaningless. Many fixed point DSP processors are
designed for 16 bit integers. A dynamic range of 0 to 65536 is not
very big. For this reason as a workaround you will see some fixed
point DSPs that have 24 bit or wider accumulators.
An even better solution though is to use floating point. Then you can
have a dynamic range spanning approximately 2**256 = 77 orders of
magnitude. Typically, programmers using a floating point processor do
not worry about overflow, and can compute inner products and FFTs of
much longer length. A general rule of thumb is that fixed point DSPs
are limited to inner products and FFTs of about 512 points, while
there are no such limits for floating point.
Of course fixed point DSPs have their advantages. They are lower in
cost, and if you can use a 16 bit integer device, may save on the
memory your algorithm requires. For these reasons, they are popular
for dedicated special purpose embedded applications. General purpose
DSP is invariably best done with floating point processing.
Q: What are algebraic assembler mnemonics ?
If it has been awhile since you've done assembler programming, things
have changed! The most recent trend has been to use algebraic
mnemonics for the instruction set, and free format for the input
syntax. What this means is now assembler code looks a whole lot like
For example, suppose you were adding two number in a traditional
assembler syntax. You might have an instruction like: add r1,r2. In
algebraic mnemonics you just write r1 = r1 + r2; When this is coupled
with symbolic memory references and register names, assembler
programming gets a lot easier.
The SR DSPASM DSP32C assembler takes the algebraic syntax one step
further and augments it with C like control statements. If then else
blocks read just like they do in a high level language.
Algebraic mnemonics are being used more and more in the industry as a
superior syntax for the low level instruction sets. Many claim it as
their innovation, however the approach was pioneered and developed at
AT&T Bell Labs.
Legacy GPS (PARGPS) Answers
Q: What do abbreviations like GPS, PPS, NMEA mean ?
Like any other technical field, GPS equipment has an array of
acronyms and abbreviations. Some of the more common are:
GPS: The Global Positioning System uses ground based
receivers and a collection of satellites in geosynchronous orbits to
determine the time and location at the receiver position.
PPS: The Pulse Per Second mark is a highly accurate
electrical signal that indicates the beginning of a second as
determined by the GPS satellites. Although it accurately indicates
when the second starts, it gives no indication of WHICH second is
starting. That information is carried in the NMEA messages described
NMEA: The National Marine Electronics Association has
defined a set of standard ASCII messages that marine electronics
equipment should use for communicating. This standard is very popular
and is used even in non marine applications. Many GPS receivers
output a small subset of the possible NMEA messages in RS232 serial
format. The information contained in these messages indicates the
current coarse time to the second and position.
Q: What NMEA messages are available with the PARGPS and what is their format ?
The PARGPS timestamping units default to providing 2 NMEA messages
every second. The most important of these is the GGA message which
typically looks like this:
The first field identifies the message, the next contains the time
shown as hours, minutes, and seconds. The latitude and longitude in
degrees, minutes, and seconds with their quadrants comprise the next
four fields. The following two fields contain a GPS data quality flag
and the number of currently acquired satellites. The rest of the
fields are related to altitude, except for the last one which is a
The second NMEA message provided by the GPS units varies depending on
the model of GPS receiver being used. The Garmin antenna used with
the Rev D PARGPS provides the RMC message, while the Trimble antenna
used with the earlier Rev C PARGPS provides the ZDA message. Both
messages include the date and time and typically look like this:
For both messages, the second field represents time as hours, minutes,
and seconds all packed together. The third RMC field is a validity
indicator. It is followed by 4 fields containing location information and
2 fields containing speed and course data. The 10th RMC field contains
the date written as DDMMYY. For the ZDA message, the date is recorded as
day, month, and year in fields 3, 4, and 5 respectively.
For a complete description of the supported NMEA messages and their
formats, please see Section 4.2 of the Garmin Users Manual or Appendix E
of the Trimble Ace-III Users Manual that are included in the docs
directory of the PARGPS software.
Q: How does your GPS time stamping work ?
Our systems maintain a high speed counter, and we record two values.
First, the number of counts per second between PPS pulses. This
calibrates the counter in terms of counts per second. Second, we
record the number of counts from a PPS pulse to the next acquired
With these two numbers the exact time of the acquired sample in
seconds can be computed to within the delta t of the counter.
Furthermore because the counts per second is recomputed every second,
unless you have a huge temperature change over a one second period,
the system tracks very well with temp.
The PAR1CH and PAR4CH systems use a 64 bit counter inside the PC
Pentium. Count values are recorded in response to interrupts occurring
on the PPS signal along with marking the corresponding analog value.
On the PAR8CH, we have a dedicated counter in the FPGA on board whose
count values are saved right along with the analog data stream without
Q: What GPS antennas can I use with your products ?
Our A/D products are designed to work with GPS antennas that provide
both a high precision Pulse Per Second (PPS) signal and industry
standard serial NMEA messages with coarse time and location. We
recommend using the GGA and RMC or ZDA messages.
Our GPS product selector page lists
the GPS antennas and accessories we carry. It also shows the
appropriate A/D for each item. See the PARPGS user manual for more
Q: Can I use the PARGPS by itself to get time without the PARxCH ?
No. The PARGPS PPS signal must be connected to the PARxCH digital IO
connector to work correctly.
Q: How does the PARGPS connect to the A/D ?
The PARGPS sends the PPS signal to the digital I/O header on the PARxCH
A/D boards. This is used for precisely time stamping the acquired
data. No analog inputs on the A/Ds are used for the GPS timing.
The NMEA coarse time and location messages are sent to the PC as RS232
strings and come up the PC serial port.
Q: Can I use a USB to serial dongle with the PARGPS ?
Sorry, but no. The PARGPS driver talks directly to the serial port
hardware. All the USB to serial software we're aware of works by
intercepting user space calls and would not see the calls our driver
Add-in serial port cards should work fine as long as they properly
emulate a true motherboard serial port.
Q: Why does the mouse go crazy when the PARGPS is connected ?
If the PARGPS is powered up and sending NMEA messages when a PC
running Windows is turned on, the mouse may appear to go crazy and zip
all around the screen. This happens because Windows automatically
checks the serial ports when it boots to see if a Microsoft
SerialBallPoint Mouse is attached. If Windows happens to see a NMEA
message containing an M, B, or Z character, it mistakenly concludes
the MS mouse is attached and treats every future NMEA message as a
If this happens, you can recover. First, disconnect the PARGPS serial
cable so you have control of the mouse. Then, bring up the device
manager, select the SerialBallPoint mouse, right click, and select
disable. Do not select uninstall or Windows will check for it again
the next time is boots. After the mouse driver is disabled, it is
safe to reconnect the PARGPS serial cable.
Another way of taking care of the problem is to download a free copy
of the COMDisable program provided by Microsoft. This command line
utility program both displays the available serial ports and marks in
the registry that the ports you specify should NOT be checked for a
mouse during bootup. Here is one link for downloading
Q: Why is PARGPS diag failing ?
The most common reason PARGPS diag fails is because the Garmin
antenna has not achieved satellite lock and is not outputting a PPS
There are two diagnostic programs in the PARGPS diags directory, diag
and diagser. We recommend running diagser first since it is simpler.
The PARGPS must be powered up with the antenna and PC serial cable
connected in order for diagser to work. Once diagser is running,
check the NMEA strings it returns. If the third field of the $GPRMC
message is a 'V', it means the GPS information is invalid because
satellite lock has not been achieved. When this field changes to 'A',
the GPS info is acceptable, and you should see the red led on the
front of the PARGPS begin blinking which indicates a PPS signal is
Once the red led is blinking, it is ok to run the more extensive
PARGPS diag program. At this point, both the PARxCH and the PARGPS
drivers should be installed and both units should be powered up with
all their cables connected including the 15 pin ribbon cable from the
PARGPS to the PARxCH digital I/O. Also, the PARxCH diag program
should have been run earlier to verify the A/D is working correctly.
Now PARGPS diag should run ok.
Q: What is the typical GPS time accuracy ?
The time accuracy for the PAR1CH and PAR4CH is typically 10
microseconds, while for the PAR8CH it is a guaranteed 800 nanoseconds.
Because they rely on PC interrupts, the PAR1CH and PAR4CH have some
time variation due to interrupt latencies. However, this occurs only
if the PC is experiencing heavy network or interrupt activity.
Furthermore, the error is restricted to that one value and is not
cumulative on succeeding values. Running a long term average can help
distinguish and remove any outlier time stamps.
The PAR8CH system maintains an 800 nanosecond clock tick and counter
on the A/D board with no latencies. The PAR8CH always has 800
nanosecond accuracy is not subject to any network or interrupt
Q: How can I set the PC time with the PARGPS ?
The PARxCH command line currtime program and the Visual Basic gpstime
program that report the current GPS time include an option for setting
the PC from the GPS time. If you have permission to change the PC
time, these programs will reset the PC time immediately after starting
and at the start of each new GMT day thereafter.
You can also set the PC time from your own programs using two of the
DLL functions included in the software which comes with the PARGPS.
Call ParGpsGetCurrentTime to get the current GPS time, then call
ParGpsSetPcTime using this newly retrieved GPS time to set the PC
time. Note that ParGpsSetPcTime will not work unless you have
proper file and execution permissions.
Q: Can I use the PARGPS with Win95/98/ME ?
No. Our PARGPS software support is only under the Win2K/XP and Linux
Q: Can I use the PARGPS in my basement ?
The PARGPS antennas we supply must have a sky view "line of sight"
access to at least four satellites to work correctly. That won't
happen if the antenna is located in a basement or inside a building.
However, it is ok to hang the antenna out a window and have the coax
cable coming inside.
The Garmin GPS 18x receiver used with the Rev D PARGPS does not output
PPS until is has achieved satellite lock at least once, so it won't
work in the basement at all. But, the older Trimble Ace-III GPS
receiver used with the Rev C PARGPS puts out a steady pulse-per-second
(PPS) signal once per second. Without satellite lock, the PPS isn't
referenced to anything, but is does have a reasonable one second
period. So, you can use that in the basement as long as you don't
need absolute time corresponding to the GPS satellite clock but are
happy with relative time.
Q: What if the antenna cable is too short to reach the window ?
The solution is very easy for the Rev D PARGPS with the Garmin GPS 18x
antenna. Just purchase a DB9 male-female RS232 serial cable and
connect it between the end of the antenna and PARGPS. We have
successfully received the antenna signals with more than 60 feet of
serial cable between the antenna and the PARGPS.
Unfortunately, the older Rev C PARGPS with the Trimble Ace-III
receiver requires coax for its antenna connection which is
significantly more difficult. We actually recommend reorganizing your
entire setup to be closer to the window or upgrading to the newer Rev
D PARGPS before trying to extend the coax antenna. If extension is
your only option, you may be able to find suitable coax parts through
a company called Pasternak.
Return to the
for links to more answers