GPS Free-Flight Verification System

Christian Quest ( - 26-Sept-2001

Table of content


System requirements

Macintosh: any PowerPC based Macintosh (PowerPC G3 recommended). 32 MB of free RAM

PC: any Pentium PC (Pentium III and above recommended), 32 MB of free RAM

Serial ports and GPS cables are required to transfer track logs from GPS receivers.

Additional serial ports for PC or Macintosh

CheckIn has been tested with several kind of additional serial ports:

The simplest to setup is the last one, the USB adapter. It works on both desktop and laptop computers, on PC and Macintosh. It is the most universal solution I've used so far.

I highly recommend you to have a look at the Edgeport from IO Networks which provides 2, 4 or 8 additional serial ports. It doesn't need an external power supply (usefull if you plan to do GPS flight verification on the landing field with a laptop) and is very easy to setup (thanks to USB plug-and-play feature).


Check'in design goals

Check'in has been written with these main goals in mind:

The current version has been used in PWC competitions and only one person and one computer was needed to do the run report of 120 pilots in less than 2 hours.

With the current version of Checkin, during runreport (the critical moment) you simply plug the pilot GPS, press 1 key and read the result after download... nothing else to do !


Check'in current features

Check'in has been developed with the following goals :

What does Check'in checks and computes ?


Future features

The next major features will include:


Installing Check'in

All files required by Check'in are located in one single folder/directory with one sub-folder or sub-directory.

On Windows:

Check'in comes as a self-extracting file (ending with ".EXE") or a "ZIP" file (in that case you must "unzip" it using a tool like WinZip or Stuffit Expander)

After decompressing Check'in, open the selected directory and launch the "CHECKIN.EXE" file. That's all !

To uninstall Check'in, simply delete the folder containing "CHECKIN.EXE", no other files (DLL or whatever) are installed on your hard-disk.


On MacOS:

Check'in comes as a Stuffit compressed file. Use Stuffit Expander to decompress this file. Check'in will be decompressed in a single folder, with one subfolder.

To uninstall Check'in, simply delete the folder containing Check'in, no other files are installed on your hard-disk.


Selecting or creating a new datafile

Check'in stores all its data (parameters, waypoints, pilots, tracklog, results) in a datafile.

It is highly recommended to use one datafile per competition event as this datafile can get large very quickly.

Everytime you'll launch Check'in, you'll be asked to select a datafile or to create a new one (using the "New..." ou "New datafile" button in the file selection dialog).

If your datafile is damaged, you can use the "4DTools" utility to verify it and/or repair it. Always make a copy of your datafile before using 4DTools.


Using Check'in...

Check'in Main menu
The program is separated in 6 parts:

These parts are logically organised as "steps". The first step at the top, and the last at the bottom... and they are generally used in that order.


Competition setup

This first step allows you to define parameters and informations that will be used for one competition event.

This step contains 3 screens, and you can go from one screen to the next using the "<<" and ">>" buttons.

Warning : To validate your changes, you must go up to the 3rd screen and press the "OK" button.

Competition Setup (1/3)

The first screen in the competition setup step allows to define :

The "Full Export..." button can be used to export all the content of Checkin's data into a compact text file much smaller than the normal datafile. This text file can be sent by email or by FTP for debugging purpose or to check special cases.

The "License number" button allows you to change your license number.


Competition Setup (2/3)

On the left side, up to 5 GPS connection can be setup up using 2 pop-up menus (MacOS) or combo-box (Windows), one to select the serial port, the other to select the kind of communication protocol (Garmin, Top Navigator or MLR). A "Test" button allows to check that each GPS setup is correct (this test is not available for TopNavigator).

At the bottom of these GPS settings, 2 check box allow to force CheckIn to use the slowest speed for MLR protocol (19200bps instead or 38400bps) and a fast Garmin mode. Check the "slow MLR" if you encounter some problems during downloads. The "Fast Garmin" is EXPERIMENTAL, uncheck it if you encounter download problems.

On the right side, the list of official waypoints is displayed. Three button allow to get this list from a Garmin or MLR GPS (setup as GPS number 1 on the left side of the screen), to import (or export) this list from an Ozi Explorer ".wpt" file, or to edit manually the list of waypoints.

Warning: The coordinates must be in decimal degrees and in the WGS 84 datum. North and East coordinates are positive values, South and West ones are negative values.

As long as pictures are still used in competition, GPS Flight Verification can only work if the turnpoints coordinates are accurate. The best way to have accurate turpoint coordinates is to go on the turpoint place and measure the coordinate using a modern 12 channels GPS. Measuring coordinates on a map can be accurate if the map is accurate and if the measurment is done properly. The worst way to measure coordinates is by marking them while flying "above" the turnpoint.

If picture are not used (even for backup), the pilot must turn around the turnpoint coordinates, not around the physical object (if existing). In that case, coordinates accuracy is not needed.

Competition Setup (3/3)

The last competition setup screen allows you to import the pilot list from a text file. The text file can be TAB Delimited or in CSV format with the following fields: Competitor number, Last name, First name, Country. It can also be an XML file coming from Race 2000 sp2 (see Race2000 Import/Export chapter).

Example (CSV format):

ID;LASTNAME;FIRSTNAME;COUNTRY <-- this first line is mandatory

Warning: Competitor numbers must be unique !

The "Edit..." button allows to manually edit the list of pilots, add new pilots, delete and modify existing ones.

Press the "OK" button to validate the competition Setup


Pilot Registration

At the beginning of the competition, pilots are registering with the organization. During the registration process, Check'in can be used to keep track of the pilot GPS serial numbers, send the official competition waypoints to the pilot GPS, create a special "pilot waypoint" to accelerate run reports.

This step is really usefull to simplify and accelerate run-reports.

The whole list of pilots is displayed. The "Find..." button (keyoard shortcut = Ctrl-F on PC or Cmd-F on Mac) can be used to find a pilot by its first name or his competitor number.

By double-clicking you can also acces to a pilot record:

The last field names "GPS sn#" can be used to keep track of the pilot GPS serial number(s). This information will show-up automatically during track log download at the run report.

The "Send WP to GPS#1" and "Send WP to GPS#2" buttons can be used to automatically send the official competition waypoints to the pilots GPS (only for Garmin or MLR models) setup as GPS#1 or GPS#2 in the Competition Setup. The special "pilot waypoint" will also be created automatically and on MLR GPS, the serial number of the GPS will be read automatically.

The "WP" button can be used to send only the official waypoint, without creating the pilot waypoint. This button is usefull to update the pilots GPS without changing their pilot waypoint, or to provide the official waypoints to a team leader that will then copy them to some pilots GPS.

Task setup

This step is used before a run report to define the task of the day. It will first show the already defined tasks (in order to modify one by double-clicking on it), or will directly go in a new empty task record if no tasks have been defined yet (otherwise, use the "New task..." button to create a new task).

The "Delete..." button allows you to delete a task with all attached data. Be carefull when you delete a task, all downloaded tracks for this task will also be delete permanently !

List of currently defined tasks

Task record window

Explanation of task fields:

Then you have to define the list of waypoints for the task, including take-off (mandatory), turnpoints before start (if needed), start point (if needed), turpoints (if needed), goal (mandatory), turpoint after goal (if needed). This is done by selection a waypoint in the left list, then use the ">" button to add it in the right list or "<" to remove the waypoint selected in the right list. The "<<" button clears the current right list. You can also move a waypoint up or down in the right list using the "Up" and "Down" buttons.

The right list has two columns, the first one is the waypoint name, the second one indicates what kind of turn-point it is based on the task definition (T = TakeOff, B0 = Safety TP, S = startpoint, #1..#n = turn-point #1..#n, G = Goal, BA = Safety TP after goal). This second column allows to verify that the list of waypoint is correct.

The total task length is automatically calculated to check that the correct waypoint have been entered.

You can also specify the distance type for the task ("normal" taks distance, distance on axis, free distance).

The "Generate Random films" buttons allows to automatically select which pilot will have to give their films during runreport (to follow PWC 2000 rules). Check'in will ask how many films must be requested, then the selected pilots will be displayed. Check'in will remind you during run report if a pilot must provide his film.


Run report

This is the most important step. Time is the limited resource during runreport. If it takes 2 minute to check a pilots flight and there is 100 pilots in the competition, is will take more than 3 hours to check all pilots !

A lot of work has been invested in Check'in to reduce as much as possible the time needed to check one pilot flight during run report.

Run report step

First of all, it is required to select the current task in the right list. Task are sorted in the right list so that the last one appears at the top of the list.

To check a pilot flight:

During download, the white rectangle will display progress informations (Getting pilot ID, Getting marked waypoints) then the track log will be transfered and the progress bar will be updated. As soon as the transfer is finished, the received data are checked and the result is displayed in the progress rectangle.

Tip: You can look at the progress bar to know which GPS will finish download first.


Warning: Be aware that Check'in will not check the next turnpoint if the previous one is bad (including startpoint).

After this result is displayed, you can unplug the GPS receiver and start again with another GPS.

You can start up to 5 transfers and checks at the same time !!!

Tip: It is recommended to put some ID (#1, #2, #3, #4) on each GPS cable to avoid mixing them.

The "Manual Check" button allows you to go directly to the "Flight Check" step to do a manual check if needed (see below).


Flight Check

This part is used when you want to manually check one pilot flight. It can be used while other GPS transfers and flight checking are taking place, which is usefull during runreport to explain to a pilot what is wrong with his track.

First, select in the left list the task for which you want to check a pilot track.

Then select which track you want to check in the right list.

Then select your checking options:

The "Check All" button will force Check'in to execute the same check options to all tracks. Be sure to select your options correctly first !
Checking all tracks can take several minutes.



This step is used to collect results for a task, display them, print them or export them.

Results screen

Select a task in the top list, the results for each pilot track is displayed in the bottom list.

The "Print..." button can be used to print this result list, the "Export..." button can be used to export these results in a text file (TAB delimited).

The "Exp. Race2000..." button allows to export the results into an XML file that can be imported directly into Race2000 (see Race2000 Import/Export chapter).


Checkin results

When checking a pilot flight, Check'in displays a text string giving the checking result.

This result can contain the following informations:


-> B0 -> S (14:40:10) -> #1 -> G (16:45:14) T=02:15:14 t=02:05:04

TP before start is OK, last time in start at 14:40:10, then TP#1 is OK and goal reached at 16:45:14. Task result time is 2:15:14 and the time really spent by the pilot in the speed section is 2:05:04 (usefull to check average speed).

-> S (14:20:10) !!!! -> #1 -> G (16:45:14) T=02:15:14 t=02:25:04

Last time in start at 14:20:10 but it was before the official start time (the !!!! are there to show it), then TP#1 is OK and goal reached at 16:45:14. Task result time is 2:15:14 and the time really spent by the pilot in the speed section is 2:25:04 (usefull to check average speed).


FAI sector checking algorithm

The checking algorithm is based on 1999 FAI Sporting code section 7.

For each coordinates logged by the GPS receiver, the pilot position is compared to the FAI sector using the following techniques:

  1. check if the position given by the GPS is on or out of the sector
  2. check if the 4 square corners around the position given by the GPS to which a pilot position error is added or substracted are in or out of the sector. This square represent the possible pilot position given the GPS positionning error.
  3. check if the shortest path between two consecutive squares crosses the sector

Then the position is diaplayed using a color code:


North is up. The grey disk represents a 1km circle around the turnpoint (center of disk).

The two blue lines are the sector borders (90° angle oriented according to FAI sporting code).

Squares are pilot positions as recorded by the GPS receiver, the square size represent the maximum GPS position error.

In the above example, the dark green square indicates that the pilot was completely inside the sector, the 2 orange squares indicates that the pilot could be in the sector due to the position error margin.

On the top right of the drawing, the time for these 3 squares is also indicated. This information is usefull if the same turnpoint is used twice in the task or if the pilot flies in the turnpoint area during the task but before turning the turnpoint.


Cylinder checking algorithm

For each coordinates logged by the GPS receiver, the distance from this point to the TP is computed. If this distance is less than the cylinder radius minus the error position both defined in "Comp. Setup" screen, then a dark green circle is draw around the pilot position (this circle has its radius being equal to the error position).

If the distance is less than the cylinder radius, the circle is draw in light green, and if this position is less than the cylinder radius plus the error position, then it is drawn in orange, and if the distance is above the cylinder radius plus the error position, it is drawn in red (pilot out).


North is up. The grey disk represents the cylinder around the turnpoint. The blue cross represent the exact position of the turnpoint.

Small circles are pilot positions as recorded by the GPS receiver, the circle radius represents the maximum GPS position error.

In the above example, the dark green circles indicate that the pilot was completely inside the sector, the 2 orange squares indicate that the pilot could be in the sector due to the position error margin.

On the top right of the drawing, the time for these positions is also indicated. This information is usefull if the same turnpoint is used twice in the task or if the pilot flies in the turnpoint area during the task but before turning the turnpoint.

A visual check example:

CheckIn has been designed to avoid required visual checks, but it can help understand the results given by the automatic check algorithm.

Here is an example of visual check:


This represents the full flight. Take-off is at the bottom (letter "T"), the start is at WNW of take-off and you see the FAI Sector drawn in dark blue (FAI sectors were used in that competition). The pilot track starts around the startpoint because all point before the official start time are not drawn.

TP #1 if at NE of the startpoint, then goal is at ESE of TP#1.

Here is the detailed view of each turnpoint:

This is the startpoint. Red squares are outside of the start sector.

The yellow arrow shows you the line between the last point in start and the first out. The pink arrow show the corresponding time computed by interpolating these two points. Each part of the track log showing that the pilot is leaving the start will be displayed like this. This means that you can have more than one (Start @). The automatic flight checking will use the last one after the start time and before reaching TP#1.


This graphics show the first turnpoint in the task. The red squares are outside of the sector, the orange one has less than 50% in the sector, the green ones are fully in the sector. The time for the orange and green squares is shown in the top right list.

When the pilot track crosses the turnpoint area several times, be sure to check the time in this list and compare it to the previous turnpoint times. This is done automatically in the automatic flight check.

This graphics show the goal line crossing. In this task, goal line were using (instead of goal cylinders).

The dark blue thick line represents the goal line and is perpendicular to the last TP (represented by the thin black line with the arrow).

The green dots indicate pilot positions recorded in the tracklog. One of them as a black thin line representing the goal crossing.

The top right list gives a goal time of 16:45:14 computed by interpolation and/or extrapolation, the other times are the ones of the points inside the goal recorded after reaching goal.

When the pilot track crosses the goal line several times, be sure to check the time in this list and compare it to the previous turnpoint times. This is done automatically in the automatic flight check.


Race2000 Import/Export

Software versions

To be able to import and export data between CheckIn and Race2000, you need at least the following versions for both software:

Importing the pilot list from Race2000

The first step is done in Race 2000, where you must setup your competition, enter the pilot list with the pilot "glider" number entered for each pilot, create a dummy task (and do not erase it), then you can export data using "Export task..." menu item in the "File" menu in Race2000.

Now, in CheckIn, in the competition setup screen, go to the pilot list and click on the "Import..." button and select the file you exported previously from Race2000. CheckIn will automatically recognize the file and import the pilot list.

The other parameters for the competition are not currently used by CheckIn.

It is mandatory to import the pilot list from Race2000 if you want to be able to export the results back into Race2000 because Race2000 uses an internal "ID" that is different from the pilot "glider" number.

Exporting task results to Race2000

You can export any task result from CheckIn to Race2000 at any moment. You don't have to wait for all the pilots to have reported and downloaded their GPS before exporting some results to Race2000. This allows you to have provisional results. CheckIn will ask you if you want to export only new results computed since last export. This allows to avoid having previous changed done directly in Race2000 to be erased in the next import.

To export results from CheckIn, go in the "Result" screen, select the task you want to export, then click on the "Exp. Race2000..." button and save the results. If you already exported some results, CheckIn will ask you if you want to export only the new results. this will avoid to overwrite possible updates made directly to the results in Race.

In Race2000, select "Import task results..." in the "File" menu and select the file you've just exported. Race will import the results directly. You may need to fix some possible incorrect CheckIn calculations directly in Race2000. Be aware that these fixes may be overwritten if you import results again later unless you export only new results computed in CheckIn (as explained above).


Check'in and this manual are (C) 1999-2002, all rights reserved by Christian Quest.
Check'in has been developped using 4th Dimension.

Should you have any question, please contact: Christian Quest (