Review of KIWI - Precision Timestamp Utility

The following is a review of a "prototype" version of KIWI. It is written by Art Lucas (IOTA). Art is also conducting more thorough tests on accuracy. I will post those here as soon as I receive them - Geoff...

Tests of a GPS Based Event Timer KIWI by Arthur C. Lucas


This report describes hardware construction and performance
testing of the KIWI software designed for precise and accurate
timing of astronomical events. the software is provided by Geoff
Hitchcox with instructions for hardware implementation. The
software and associated hardware perform well as implemented by
this author.

2.0  Parts List

        Garmin 35HVS, OEM GPS detector
        Laptop PC,  I used Toshiba Satellite
        DB25 female connector with solder pots
        DB9 male connector with solder pots
        9-pin serial connection cable
        Project box 4x6x2
        Battery, 6 volts or greater
        Banana Jacks (3)
        Toggle switch for battery power
        resistors, 10K, 15k, 4.7k,
        LED's (2)
        Pushbutton switch

3.0  Information Resources.

        KIWI instructions
        Garmin Tech manual from web site.  Excellent 37 pages.
        Go to
        GPS Standard sentences from web are useful but not required

4.0  Construction.  

I chose a working box to interface between the GPS sensor and
the computer.  Make it roomy so construction is easy and
adaptations are allowed. I used a 6x4x2 inch plastic box.  The
long, multi-conductor wire from the sensor has color coded
wires.  The tech manual tells what each color means. Contrary
to the KIWI instructions (my copy) you need to connect both rx
and tx from serial port 1 of the Garmin 35.  This allows
downloading the data as it arrives and setup which is required

4 wires need to be connected

        time 1pps

Note that rx1 from the Garmin 35 must be connected to tx from
the computer serial port. I have a tattered copy of RS-232
Simplified by Byron W. Putnam which I use to verify pin
connections although they are given in the KIWI instructions.
Don't try to work with the other pins that make RS-232 very

I chose a rather heavy, 6 volt, sealed, lead acid motorcycle
battery as I use these for a lot of field instrument projects.  
My battery was Yuasa NP4-6, 6 volt, 4.0 Ampere-hour.  
Alternatively, 4 or 5 D cells will do the job.  You could use 
one 9-volt battery but you'll be constantly wondering if its 
going to run down.  My arrangement gives about 20 hours of run 
time on a full charge.  I charge at 7 volts until the charging 
current goes to zero.

I provided for charging with banana plugs and brought out the
1PPS signal on an RCA audio connector.  If you elect not to use
a rechargeable battery, you might consider using the banana 
plugs as battery check points so as to determine the status of 
the batteries.  There are many options in putting the box 
together but none of the decisions involve complicated 

The pushbutton switch and cable need careful consideration.  I
chose a switch which mounts in a -inch hole.  Before soldering
the 2 connections to it I slipped a 3-inch length of Tygon
tubing onto the wire.  After soldering I pushed the Tygon tubing 
up onto the threaded barrel of the switch so as to make a solid 
gripping surface for my fist as I press the pushbutton with my 
thumb.  Think about it.

I did include an npn transistor to invert the 1PPS signal.
That's the only active element in the box except for 2 led's.
One blinks the 1PPS and the other indicates power on.

5.0  Programming of the GPS.  When turned on and fed to the KIWI
the GPS will transmit.  If you select option 2 on KIWI you will 
see data strings stream across the screen.  The 1PPS signal will 
likely not be enabled.  Mine was not.

A WINDOWS based program is available from Steve Preston which is
useful in programming these functions.  I describe what I did as
a matter of record.

5.1.  Disable some sentences.  A lot of time is used up in
transmitting the many sentences. Being frugal,  I elected to
disable all but two of them, $GPGGA and $GPRMC.  I believe only
the latter one is required by KIWI.  To disable sentences refer
to the Tech manual.  I did this using a short Microsoft
QUICKBASIC 4.5 routine.

  'myread4 see text for ENABLING/DISABLING

10   OPEN "com1:4800,n,8,2,RS,CS,DS,CD" FOR RANDOM AS #1 LEN = 14000

100 IF LOC(1) < 1 GOTO 100
a$ = INPUT$(1, #1)
IF a$ = CHR$(13) GOTO 100
c$ = INKEY$: IF c$ <> "" THEN GOSUB 2000

GOTO 100
'strike e to enable GPRMC.  Change to 0 to disable
'strike P to enable 1pps at 60 ms pulse width
2000 'act on keystroke
if c$ = "e" THEN PRINT #1, "$PGRMO,GPRMC,1"
IF c$ = "p" THEN PRINT #1, "$PGRMC,,,,,,,,,,,,2,12,10"; CHR$(13); CHR$(10);

IF c$ = "v" THEN PRINT #1, "$PGRMCE"; CHR$(13); CHR$(10);

5.2.  Enable the 1PPS.  Again, my 1PPS signal was not enabled.
To enable it I referred to the tech manual and wrote this short
Microsoft QUICKBASIC 4.5 routine.  It did not immediately
respond.  I turned power off and then back on and it was

6.0  Tests.

While an ultimate test of the accuracy and precision of the
method is well beyond this laboratory, tests in the frame of 
reference of the amateur observer have been performed.

6.1.  Compare to WWV.  A 2-channel, 100 MHz, oscilloscope was
used to compare the GPS pulse to the radio received, WWV signal.
The 1PPS, GPS signal was fed to channel 1 and the oscilloscope
synchronized on the negative going leading edge of the signal.
The earphone output of a radio receiver tuned to 10,000 kHz was 
then input into channel 2.  Using a sweep speed of 1 ms/cm, the 
1 second tick was seen to appear in steady form at approximately 
4 ms after the start of the sweep.  This is consistent with the 
time delay in propagation from Ft. Collins, CO to Stillwater, 

Further, a limitation of the WWV signal which has been discussed
among timing afficionados was observed by switching to a
frequency not receiving well at that time.  The WWV signal was
seen to waver in phase and delay as propagation moved from 
direct to bounce off the upper atmosphere.  While these effects 
are well beyond the accuracy and precision required by the IOTA 
task, the observations do demonstrate the proper performance of 
the system.

6.2.  Repeated test vs 1 min on WWV.  The absolute value of the
reported time was checked by using the pushbutton switch to find
the Universal Time of start of each WWV minute.  The values
reported for 10 successive minutes were:


My average response time was:   0.189 seconds late
The std dev on my response was: 0.030 seconds

6.3.  To check for response to short events I timed each 1 
second click from WWV starting from the 1 minute tone.  The 
values reported were:


My response varied as I fell into step with the metronome, but
all values were sensible indicating that KIWI will time 
intervals as small as or smaller than the human response.

My average response time was:   0.0168 seconds early
The std dev on my response was: 0.117 seconds

In a subjective test of the ability of the program to report
timings, I pressed the pushbutton as rapidly as I could in order
to press the largest number of observations into a single
second.  I was able to get 5 reports into a single second.

7.0.  Alternate Computers.

The program was operated on 4 separate computers.

        Toshiba Satellite PS 225U-M91J0 (1 yr old)
        Zenith Mastersport 286 vintage 1985
        Packard Bell Desktop PC
        Toshiba Satellite PA1224UV (7yrs old)

There was no difference in performance on any of these computers.

8.0 Change Recommendations.

On the surface, it would seem easy to put an option in the menu
to change the sense of the input, 1PPS, sensing.  This would 
obviate the need for the user to implement a hardware inverter.  
The Garmin 1PPS goes high on the time mark while the software 
requires a negative going signal.  The user should pay 
particular attention to seeing that this happens properly as an 
unsuspecting user would see all else work except that the 
measurement would be a large fraction of a second in error.

A few functional changes were made by the author of KIWI.EXE
during the conduct of these studies.  The spirit of cooperation
and skill in making those changes was commendable.

9.0 Summary.

Construction of the interface was easy, requiring about one day
including shopping for parts.  Human factors of the software are
good, centering around simple menu selection.  The final
operating mode takes one away from the computer which needs no
attention, to the telescope with pushbutton in hand.  The
precision and accuracy of the method is well beyond the human
response limit.  An observation of an occultation is finally
limited by knowledge of the personal equation only.  With that
equation in hand, one is immediately prepared to report an
observation in Universal Time at latitude and longitude.

Geoff (author of KIWI) makes the following comments in reply! Regarding the 1PPS Polarity situation: -------------------------------------- Because of the high speed assembler code used throughout, changing the polarity in software is a non trivial software change (it would also compromise accuracy). It would also mean if a person did not configure the software correctly then readings could be up to nearly a second out (most PPS pulses are short duration). Also most new OEM boards are 3.3 volt, connecting to the PC without a "buffer" would damage the GPS. So I feel for the cost and time of adding a single buffer transistor, much needed isolation is provided, and once wired and tested there is NO possibility of subsequently getting the phase wrong. Many thanks to Art who has provided a thorough document of his implementation of the KIWI software. I'm sure it will be of great help to those designing their own project.