GPS software development page

May 2015

darkgps has been released as Version 2.0.4. Download from here: here.

June 27 2006

darkgps has been released as Version 2.0. GS3 Technologies has agreed to host the download section as well as the support and discussion forum.

View screenshots and download by clicking here.

April 29 2006

To all users of darkgps: There is a new version of the software in the works. Please email me at: if you want to get a beta version for testing. New features include: HPZ3801A Support and graphs, 6,8 and 12 channel support for Motorola receivers, serial port connection etc.

The current project is called darkgps. This is a suite of programs that allow for the display of GPS data from Motorola Oncore GPS receivers. Output options include HTML or curses based displays. Input methods include serial port and shared memory(from ntpd).

Download darkgps Version 0.943 (December 31 2005) by clicking here.

We need beta testers! If you like to participate, please email us.

Software details
The "ntp.oncore" configuration file, has the option: "STATUS /var/log/ntp/ONCORE" enabled. What this does is create a shared memory file which allows other programs to access the raw data coming in from the serial port. This is great since the Oncore provides a lot of useful GPS data. For instance, it would be nice to see how many satellites are being tracked, the antenna status and other stuff.

When I first saw this option, I started thinking about how I can use it to share my GPS data with others. The obvious choice was to create a socket and just allow others to connect and just push the data to them. This part was the connector between the Oncore NTP driver, and the net.

The next part would be to have a program that would connect to the socket and convert the raw data to a useful format. HTML was the obvious choice for the output format.

After a bit of thought, I decided to use port number: "12321" which is a palindrome of the NTP port: "123"

Just a reminder that all code is released under GPL.

Our advanced shared memory driver

In the NTP documentation, there is some code which demonstrates how to go about accessing the NTP Shared Memory. This code is only a sample so I decided to write a complete implementation.

My program is made up of two parts. The first is called: "ntpscon". It is written in C and basically connects with the Oncore shared memory and waits for connections from port: 12321. Because it forks a new process for every new connection, there is no limit on how many people can connect at the same time.

The second part is called "gpsdisplay" and is written in Perl. It opens a socket to a machine on port 12321 and processes the raw data. It generates a HTML file that has the GPS data in a nice format.

July 2 2002 The code for both programs is still in beta mode. You can download the complete set from the download links in the left frame or click here (darkgps_0.943.tgz)

After you download the file, do:

user $ tar -xzvf darkgps_(version_number).tgz

Please read the "README" file for any changes and how to compile the program. Even before you compile the program you should be able to do:

user $ ./gpsdisplay -n -d

You should see the gps data streaming in from the Oncore at the site.

Now, you should compile the "ntpscon" program. Just do:

user $ make

Make sure that ntpd is running. If you didn't see any problems with the make, you should be able to do:

user $ ./gpsdisplay -n

Now, try this:

user $ ./gpsdisplay -n -d localhost

You should see the Oncore raw data coming in.

How to share the GPS data with friends

July 2, 2002. The software is still very "beta". Even in this stage though, it still generates the GPS part of my home page. This is what I'd like the software to do:

  • Allow for the generation of a web page that reflects many simultaneous connections to other sites.
  • Display connection stats. Done!
  • Provide a way to view the GPS data from a curses front end. Done!
  • Automatically generate the satellite area picture.
  • Parse all the Oncore messages. Right now only a few are processed. working ...
Right now, you can generate a simple dynamic web page by just invoking:

user $ ./gpsdisplay

This will create a dynamic page: /var/www/htdocs/GPS/GPStable.html

Feel free to email me with suggestions. I will try to implement all of your requests.