{ "info": { "author": "Adafruit Industries", "author_email": "circuitpython@adafruit.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries", "Topic :: System :: Hardware" ], "description": "Introduction\n============\n\n.. image:: https://readthedocs.org/projects/adafruit-circuitpython-gps/badge/?version=latest\n :target: https://circuitpython.readthedocs.io/projects/gps/en/latest/\n :alt: Documentation Status\n\n.. image :: https://img.shields.io/discord/327254708534116352.svg\n :target: https://discord.gg/nBQh6qu\n :alt: Discord\n\n.. image:: https://travis-ci.com/adafruit/Adafruit_CircuitPython_GPS.svg?branch=master\n :target: https://travis-ci.com/adafruit/Adafruit_CircuitPython_GPS\n :alt: Build Status\n\nGPS parsing module. Can parse simple NMEA data sentences from serial GPS\nmodules to read latitude, longitude, and more.\n\n\nDependencies\n=============\nThis driver depends on:\n\n* `Adafruit CircuitPython `_\n\nPlease ensure all dependencies are available on the CircuitPython filesystem.\nThis is easily achieved by downloading\n`the Adafruit library and driver bundle `_.\n\nUsage Example\n=============\n\nSee examples/gps_simpletest.py for a demonstration of parsing and printing GPS location.\n\nImportant: \nFeather boards and many other circuitpython boards will round to two decimal places like this:\n\n.. code-block:: python\n\n >>> float('1234.5678')\n 1234.57\n\nThis isn't ideal for GPS data as this lowers the accuracy from 0.1m to 11m. \n\nThis can be fixed by using string formatting when the GPS data is output.\n\nAn implementation of this can be found in examples/gps_simpletest.py\n\n.. code-block:: python\n\n import time\n import board\n import busio\n\n import adafruit_gps\n\n RX = board.RX\n TX = board.TX\n\n uart = busio.UART(TX, RX, baudrate=9600, timeout=30)\n\n gps = adafruit_gps.GPS(uart, debug=False)\n\n gps.send_command(b'PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0')\n\n gps.send_command(b'PMTK220,1000')\n\n last_print = time.monotonic()\n while True:\n\n gps.update()\n\n current = time.monotonic()\n if current - last_print >= 1.0:\n last_print = current\n if not gps.has_fix:\n print('Waiting for fix...')\n continue\n print('=' * 40) # Print a separator line.\n print('Latitude: {0:.6f} degrees'.format(gps.latitude))\n print('Longitude: {0:.6f} degrees'.format(gps.longitude))\n\n\nThese two lines are the lines that actually solve the issue:\n\n.. code-block:: python\n\n print('Latitude: {0:.6f} degrees'.format(gps.latitude))\n print('Longitude: {0:.6f} degrees'.format(gps.longitude))\n \n\nNote: Sending multiple PMTK314 packets with gps.send_command() will not work unless there is a substantial amount of time in-between each time gps.send_command() is called. A time.sleep() of 1 second or more should fix this.\n\nAbout NMEA Data\n===============\nThis GPS module uses the NMEA 0183 protocol.\n\nThis data is formatted by the GPS in one of two ways.\n\nThe first of these is GGA. GGA has more or less everything you need.\n\nHere's an explanation of GGA:\n::\n\n 11\n 1 2 3 4 5 6 7 8 9 10 | 12 13 14 15\n | | | | | | | | | | | | | | |\n $--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh\n\n\n1. Time (UTC)\n2. Latitude\n3. N or S (North or South)\n4. Longitude\n5. E or W (East or West)\n6. GPS Quality Indicator,\n\n * 0 - fix not available,\n * 1 - GPS fix,\n * 2 - Differential GPS fix\n \n7. Number of satellites in view, 00 - 12\n8. Horizontal Dilution of precision\n9. Antenna Altitude above/below mean-sea-level (geoid)\n10. Units of antenna altitude, meters\n11. Geoidal separation, the difference between the WGS-84 earth ellipsoid and mean-sea-level (geoid), \"-\" means mean-sea-level below ellipsoid\n12. Units of geoidal separation, meters\n13. Age of differential GPS data, time in seconds since last SC104 type 1 or 9 update, null field when DGPS is not used\n14. Differential reference station ID, 0000-1023\n15. Checksum\n\nThe second of these is RMC. RMC is Recommended Minimum Navigation Information.\n\nHere's an explanation of RMC:\n::\n\n 12\n 1 2 3 4 5 6 7 8 9 10 11|\n | | | | | | | | | | | |\n $--RMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxx,x.x,a*hh\n\n1. Time (UTC)\n2. Status, V = Navigation receiver warning\n3. Latitude\n4. N or S\n5. Longitude\n6. E or W\n7. Speed over ground, knots\n8. Track made good, degrees true\n9. Date, ddmmyy\n10. Magnetic Variation, degrees\n11. E or W\n12. Checksum\n\n\n`Info about NMEA taken from here\n`_.\n\nContributing\n============\n\nContributions are welcome! Please read our `Code of Conduct\n`_\nbefore contributing to help this project stay welcoming.\n\nBuilding locally\n================\n\nTo build this library locally, you'll need to install the\n`circuitpython-build-tools `_ package.\n\n.. code-block:: shell\n\n python3 -m venv .env\n source .env/bin/activate\n pip install circuitpython-build-tools\n\nOnce installed, make sure you are in the virtual environment:\n\n.. code-block:: shell\n\n source .env/bin/activate\n\nThen run the build:\n\n.. code-block:: shell\n\n circuitpython-build-bundles --filename_prefix adafruit-circuitpython-gps --library_location .\n\nSphinx documentation\n-----------------------\n\nSphinx is used to build the documentation based on rST files and comments in the code. First,\ninstall dependencies (feel free to reuse the virtual environment from above):\n\n.. code-block:: shell\n\n python3 -m venv .env\n source .env/bin/activate\n pip install Sphinx sphinx-rtd-theme\n\nNow, once you have the virtual environment activated:\n\n.. code-block:: shell\n\n cd docs\n sphinx-build -E -W -b html . _build/html\n\nThis will output the documentation to ``docs/_build/html``. Open the index.html in your browser to\nview them. It will also (due to -W) error out on any warning like Travis will. This is a good way to\nlocally verify it will pass.", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/adafruit/Adafruit_CircuitPython_GPS", "keywords": "adafruit gps module latitude longitude breakout hardware micropython circuitpython", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "adafruit-circuitpython-gps", "package_url": "https://pypi.org/project/adafruit-circuitpython-gps/", "platform": "", "project_url": "https://pypi.org/project/adafruit-circuitpython-gps/", "project_urls": { "Homepage": "https://github.com/adafruit/Adafruit_CircuitPython_GPS" }, "release_url": "https://pypi.org/project/adafruit-circuitpython-gps/3.4.1/", "requires_dist": null, "requires_python": "", "summary": "CircuitPython library for GPS modules.", "version": "3.4.1" }, "last_serial": 5863027, "releases": { "3.1.0": [ { "comment_text": "", "digests": { "md5": "2095e188b355247f1fc13592ad878a3f", "sha256": "c2ad9e625a001e03e07fb81ef7525f9ecec2682807b465e7a8b9c47b092d5be3" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.1.0.tar.gz", "has_sig": false, "md5_digest": "2095e188b355247f1fc13592ad878a3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22913, "upload_time": "2018-08-07T00:44:07", "url": "https://files.pythonhosted.org/packages/62/fe/eccaa9029800f7d76c77506b0c661ffe68d81d4320101603c29bbc446c1a/adafruit-circuitpython-gps-3.1.0.tar.gz" } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "accc19411bba7ff06d6e91aa4de8e07d", "sha256": "1ea2c99e995512e18ed917d5e7bab4f7857ee7a6ef11f8b99f03b091111e2a6a" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.1.1.tar.gz", "has_sig": false, "md5_digest": "accc19411bba7ff06d6e91aa4de8e07d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23533, "upload_time": "2018-08-19T20:15:49", "url": "https://files.pythonhosted.org/packages/7a/47/c07dd01431e3d467a1d8b7319066e94dae45e010797d109856911fadaae4/adafruit-circuitpython-gps-3.1.1.tar.gz" } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "752b85415b75203de0693ec511849d22", "sha256": "4eaf31de23d5faa4797eb9a6ece4e58c4e195a1d6ea80d8afc771a762509ac57" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.2.0.tar.gz", "has_sig": false, "md5_digest": "752b85415b75203de0693ec511849d22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23917, "upload_time": "2018-11-12T22:54:44", "url": "https://files.pythonhosted.org/packages/da/b0/ce05c7fd7d361ea4027507d3f63468f95b1027ff1337c15b644a1b2f81d1/adafruit-circuitpython-gps-3.2.0.tar.gz" } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "6d2b1412a4bf3a68c5521bee46aebf15", "sha256": "78b5d767d0673e2e2a3dcda6330bdc890bbf9b084dbeaa953363f3f3a02d71c4" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.2.1.tar.gz", "has_sig": false, "md5_digest": "6d2b1412a4bf3a68c5521bee46aebf15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23331, "upload_time": "2019-01-16T02:07:30", "url": "https://files.pythonhosted.org/packages/97/cc/35052a5a6e53aa2b840e6bc8828562339421fe9bff02863f7f59a8bba69c/adafruit-circuitpython-gps-3.2.1.tar.gz" } ], "3.2.2": [ { "comment_text": "", "digests": { "md5": "dba1c5adac139d61fd32290de960d6a4", "sha256": "f4d9570d8d358b2743fcf9d7cd8331ae170f02fc4ebf2eedbcd15bae172fbec4" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.2.2.tar.gz", "has_sig": false, "md5_digest": "dba1c5adac139d61fd32290de960d6a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23345, "upload_time": "2019-03-22T22:47:31", "url": "https://files.pythonhosted.org/packages/94/82/6b4b0047844a6c66da06828b61ea6d20157fd7f3d81c848cb9ac224fb3d0/adafruit-circuitpython-gps-3.2.2.tar.gz" } ], "3.2.3": [ { "comment_text": "", "digests": { "md5": "eb27630449b6598749488fb0cf5702c8", "sha256": "aaf0e74439cbb8f299665f9edd03f4a4b273d4e5dcd98a8ab0c4870a4af659b1" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.2.3.tar.gz", "has_sig": false, "md5_digest": "eb27630449b6598749488fb0cf5702c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24112, "upload_time": "2019-05-07T19:46:37", "url": "https://files.pythonhosted.org/packages/18/a5/1482da3d445b784cb8fb26e7c4888d616164360c2f65dd4229e7913e7f0f/adafruit-circuitpython-gps-3.2.3.tar.gz" } ], "3.2.4": [ { "comment_text": "", "digests": { "md5": "1e964dae1dba4da9bddf8389e33b8f7f", "sha256": "668b720d643629bbc5a7f6277673a6012c03c5f3c0559f2d5886026400822e3b" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.2.4.tar.gz", "has_sig": false, "md5_digest": "1e964dae1dba4da9bddf8389e33b8f7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25896, "upload_time": "2019-05-13T05:07:43", "url": "https://files.pythonhosted.org/packages/9c/7f/a5cd598732fc6c26d9f1d35766e3c1e774d1a6973edb136f20dc5fb0de65/adafruit-circuitpython-gps-3.2.4.tar.gz" } ], "3.3.0": [ { "comment_text": "", "digests": { "md5": "82d5a3e6b16a34ff65ba5402deb511f5", "sha256": "e473127539a154ae817e62d43b0e255203e942835b57692e3484c62e68c2980e" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.3.0.tar.gz", "has_sig": false, "md5_digest": "82d5a3e6b16a34ff65ba5402deb511f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27215, "upload_time": "2019-05-16T16:50:49", "url": "https://files.pythonhosted.org/packages/d4/60/c33923c21126dc57bbc2338a4ab6a15ea0496a0ea85036d1df4ba1257a05/adafruit-circuitpython-gps-3.3.0.tar.gz" } ], "3.4.0": [ { "comment_text": "", "digests": { "md5": "74a499b7d666903fb671584b96f29678", "sha256": "3ba8fe539779a6e8c0dbecc1fe6b7328f8b94df8536d9e6a59eb73abda93a170" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.4.0.tar.gz", "has_sig": false, "md5_digest": "74a499b7d666903fb671584b96f29678", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27182, "upload_time": "2019-09-16T21:48:21", "url": "https://files.pythonhosted.org/packages/fe/03/61e0c4346f5145fb6dcf7458c04be755c2f2ababfa07c91425323d892d07/adafruit-circuitpython-gps-3.4.0.tar.gz" } ], "3.4.1": [ { "comment_text": "", "digests": { "md5": "f6c9c97b814d0b2789ec54d88ca0c2b1", "sha256": "00fb5ebbc1d979f19f9d5b9d4cd331ee61ef9e2744f0e88db92d0b7904e0d104" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.4.1.tar.gz", "has_sig": false, "md5_digest": "f6c9c97b814d0b2789ec54d88ca0c2b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27188, "upload_time": "2019-09-20T15:51:35", "url": "https://files.pythonhosted.org/packages/d5/a6/d030ad559256a3d73a3b7b5e8b27b16a0960a6c6d0ddd160e2f471c3b77c/adafruit-circuitpython-gps-3.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f6c9c97b814d0b2789ec54d88ca0c2b1", "sha256": "00fb5ebbc1d979f19f9d5b9d4cd331ee61ef9e2744f0e88db92d0b7904e0d104" }, "downloads": -1, "filename": "adafruit-circuitpython-gps-3.4.1.tar.gz", "has_sig": false, "md5_digest": "f6c9c97b814d0b2789ec54d88ca0c2b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27188, "upload_time": "2019-09-20T15:51:35", "url": "https://files.pythonhosted.org/packages/d5/a6/d030ad559256a3d73a3b7b5e8b27b16a0960a6c6d0ddd160e2f471c3b77c/adafruit-circuitpython-gps-3.4.1.tar.gz" } ] }