Compare commits

..

2 Commits

Author SHA1 Message Date
05d0032876 Update README for USB 2024-07-22 16:04:30 -07:00
6f822b59d1 Fix minor mistake in README 2024-07-22 15:33:17 -07:00

View File

@ -1,31 +1,49 @@
# 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
v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html), except the files
`navpoint/get_ip.py` and `navpoint.fix_path`, which are released under
`navpoint/get_ip.py` and `navpoint/fix_path.py`, which are released under
[Creative Commons Attribution-ShareAlike 4.0
International](https://creativecommons.org/licenses/by-sa/4.0/) due to use of
code published on Stack Overflow