diff --git a/README.md b/README.md index 0e9d94c..ec82c27 100755 --- a/README.md +++ b/README.md @@ -1,26 +1,44 @@ # Navpoint Desktop -This is a simple Python program that will run two HTTP servers. One listens on -the computer's local IP address (e.g. `192.168.x.x`), port 8888, to receive -location updates from the [Navpoint -Mobile](https://gallery.appinventor.mit.edu/?galleryid=2c18ee4d-4eed-452a-9228-de8e813820d1) -Android app. The other listens on `127.0.0.1` (i.e. `localhost`), also on port -8888, for connections from a digital globe program such as [Google Earth -Pro](https://www.google.com/earth/about), allowing that program to track the -user's location. (Navpoint is not developed or endorsed by Google.) +Navpoint makes the user's current location available in KML format over +a local HTTP server (listening on `127.0.0.1`; external devices cannot +connect). Its main purpose is to allow GPS tracking from a digital globe +program such as [Google Earth Pro](https://www.google.com/earth/about). +(Navpoint is not developed or endorsed by Google.) -Navpoint Desktop has a minimal GUI consisting only of a QR code. Simply scan -the code in Navpoint Mobile to establish a connection. The phone and computer -must be on the same Wi-Fi network; if a router is not available, enabling -mobile hotspot on the phone and connecting the computer to that network should -work well. An Internet connection is not needed; Navpoint works over a LAN. - -Navpoint Desktop makes the geographic data available in KML format at +Navpoint makes the geographic data available in KML format at `http://127.0.0.1:8888/navpoint.kml`. The `navpoint_link.kml` file in this repository contains a link to this URL configured to update every three seconds; simply open this file in Google Earth or another compatible program to connect to Navpoint Desktop. +## Connection modes + +Navpoint can obtain location information from two different sources. The first, +recommended where possible, is from a USB GPS receiver that supports the [NMEA +0183](https://en.wikipedia.org/wiki/NMEA_0183) protocol. (A handheld GPS +receiver connected to a computer may or may not work; it does not work with my +Garmin GPSMAP 64st. Any common USB GPS dongle, such as [this one available from +Amazon](https://www.amazon.com/VK-162-G-Mouse-External-Navigation-Raspberry/dp/B01EROIUEW/) +should work, although, of course, I cannot guarantee that any particular device +will be compatible with Navpoint. On Windows, USB mode should work +out-of-the-box with a compatible GPS receiver; on Linux, your user account +needs to be a member of the `dialout` group. If you get "Permission denied" +errors from Navpoint, run `sudo usermod -a -G dialout $USER`, then log out and +back in. + +Alternatively, you may use the [Navpoint +Mobile](https://gallery.appinventor.mit.edu/?galleryid=2c18ee4d-4eed-452a-9228-de8e813820d1) +Android app. This uses an Android phone's GPS receiver to obtain location data; +however, it is typically less accurate than a USB module, and more likely to +have problems. Navpoint Desktop runs a second HTTP server listening on the +computer's local IP address (e.g. `192.168.x.x`), and the phone connects to +this server and sends location updates via HTTP requests. If you want to use +Navpoint Mobile, choose that option when opening Navpoint Desktop, then scan +the QR code from Navpoint Mobile. (Make sure that your phone and computer are +on the same Wi-Fi network, or that your phone's hotspot is on and your computer +is connected to it.) + ## Licensing Navpoint Desktop is released under the [GNU General Public License