{"id":21853556,"url":"https://github.com/lupin3000/micropython-i2c-gnss","last_synced_at":"2026-05-13T07:31:34.261Z","repository":{"id":221966304,"uuid":"755879120","full_name":"Lupin3000/Micropython-I2C-GNSS","owner":"Lupin3000","description":"MicroPython I2C library and example for Gravity: GNSS module","archived":false,"fork":false,"pushed_at":"2024-02-17T12:55:27.000Z","size":102,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-21T18:52:04.381Z","etag":null,"topics":["dfrobot","esp32","gnss","gravity","i2c","micropython"],"latest_commit_sha":null,"homepage":"https://softwaretester.info","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lupin3000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-11T11:13:19.000Z","updated_at":"2024-02-11T11:16:06.000Z","dependencies_parsed_at":"2024-11-28T01:27:37.680Z","dependency_job_id":"9606a89a-77c2-4d89-aba3-265506af3587","html_url":"https://github.com/Lupin3000/Micropython-I2C-GNSS","commit_stats":null,"previous_names":["lupin3000/micropython-i2c-gnss"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lupin3000/Micropython-I2C-GNSS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lupin3000%2FMicropython-I2C-GNSS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lupin3000%2FMicropython-I2C-GNSS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lupin3000%2FMicropython-I2C-GNSS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lupin3000%2FMicropython-I2C-GNSS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lupin3000","download_url":"https://codeload.github.com/Lupin3000/Micropython-I2C-GNSS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lupin3000%2FMicropython-I2C-GNSS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32972740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T06:31:55.726Z","status":"ssl_error","status_checked_at":"2026-05-13T06:31:51.336Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dfrobot","esp32","gnss","gravity","i2c","micropython"],"created_at":"2024-11-28T01:25:41.173Z","updated_at":"2026-05-13T07:31:34.246Z","avatar_url":"https://github.com/Lupin3000.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MicroPython I2C library and example for Gravity: GNSS Receiver Module\n\nThis repository contains the MicroPython I2C library for the Gravity: GNSS Receiver Module from DFRobot, as well as a very simple example of how to use it. The original repository from DFRobot is located [here](https://github.com/DFRobot/DFRobot_GNSS) (_for Arduino and Raspberry Pi_).\n\n## Why this repository?\n\nThe original version of DFRobot uses Python serial (_UART_) and Python SMBus (_I2C_), which are not compatible with MicroPython. Also, I was not so happy with the Python code style/quality. That's why I created this version.\n\n## Prerequisite\n\n- [Gravity: GNSS Receiver Module](https://www.dfrobot.com/product-2651.html?tracking=Mszf2HlGMStAAKkFfhNgg3QhFFchlilhR47u9vXX9o9Ko6giJYRJQdmwZjbDIvMV)\n- ESP32 (_MicroPython compatible device_)\n- MicroPython firmware installed (_min. 1.20.0.*_)\n- USB cable (_for connection between ESP32 and sensor_)\n- latest [VCP](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads) driver installed\n\n![GNSS.jpg](img/GNSS.jpg)\n\n## Installation\n\nClone this repository to your local computer.\n\n```shell\n# clone repository\n$ git clone https://github.com/Lupin3000/Micropython-I2C-GNSS.git\n\n# change into local repository folder\n$ cd Micropython-I2C-GNSS/\n```\n\nYou can optionally install other helpful Python packages.\n\n- esptool (_to flash the MicroPython firmware to the ESP32_)\n- rshell (_to establish a serial connection between the local computer and the ESP32 and to transfer data_)\n- micropython-esp32-stubs (_to facilitate local development, for example: code completion_)\n\n```shell\n# install python packages (optional)\n$ pip install -r requirements.txt\n```\n\nConnect the sensor to the ESP32. Make sure that you have set the communication mode on the sensor to I2C and use the correct connections (_ESP GPIO's/Sensor interface_)! Only then connect the ESP32 to your local computer via USB.\n\n\u003e In the example `main.py`, the GPIOs pins 21 (_SDA_) and 22 (_SCL_) are used. However, you can adapt these to your needs at any time.\n\nThen start the serial connection and load the example and the library onto the ESP32 device.\n\n```shell\n# start rshell connection\n$ rshell -p /dev/cu.usbserial-0001\n\n# upload files and folder\n/YOUR/LOCAL/PATH\u003e cp main.py /pyboard/\n/YOUR/LOCAL/PATH\u003e cp -r lib/ /pyboard/\n```\n\n\u003e The example device/path `/dev/cu.usbserial-0001` could be different for you! Please adapt before your execute the commands!\n\n## Usage\n\n```shell\n# start the Python REPL\n/YOUR/LOCAL/PATH\u003e repl\n```\n\nNow press the keys `CTRL` + `d` on your local device, to trigger the soft-reset of the ESP32. If there are no errors, you should see the GNSS values in the terminal after a very short time.\n\n```python\nEntering REPL. Use Control-X to exit.\n\u003e\nMicroPython v1.20.0 on 2023-04-26; ESP32 module with ESP32\nType \"help()\" for more information.\n\u003e\u003e\u003e \n\u003e\u003e\u003e \nMPY: soft reboot\n```\n\nIf you found few satellites, the output looks similar to this example:\n\n```python\n---\nGNSS mode: 1\nSatellite number: 7\nDate: 2024-02-11 Time: 09:43:23\nlatitude degree: 47.48249° latitude direction: E\nlongitude degree: 8.767172° longitude direction: N\naltitude: 93.09 meters\nspeed over ground: 0.0 N\ncourse over ground: 207.37 T\n```\n\nAdditional information:\n\n- [DFRobot: Product Wiki](https://wiki.dfrobot.com/SKU_TEL0157_Gravity_GNSS_Positioning_Module)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flupin3000%2Fmicropython-i2c-gnss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flupin3000%2Fmicropython-i2c-gnss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flupin3000%2Fmicropython-i2c-gnss/lists"}