{"id":28418797,"url":"https://github.com/worthwhile/geo-bound","last_synced_at":"2025-07-20T19:34:38.417Z","repository":{"id":83451329,"uuid":"143469296","full_name":"worthwhile/geo-bound","owner":"worthwhile","description":"Geo-Bound: A Particle Firmware for GPS Tracking that saves readings offline and then sends when cell comes available","archived":false,"fork":false,"pushed_at":"2018-08-06T12:30:51.000Z","size":8,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-06-25T02:08:07.192Z","etag":null,"topics":["firmware","gps","particle"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/worthwhile.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2018-08-03T20:11:20.000Z","updated_at":"2023-06-28T18:32:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"c7c6cd42-87e9-4321-960b-a7445fd166e6","html_url":"https://github.com/worthwhile/geo-bound","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/worthwhile/geo-bound","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/worthwhile%2Fgeo-bound","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/worthwhile%2Fgeo-bound/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/worthwhile%2Fgeo-bound/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/worthwhile%2Fgeo-bound/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/worthwhile","download_url":"https://codeload.github.com/worthwhile/geo-bound/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/worthwhile%2Fgeo-bound/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266187650,"owners_count":23890011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["firmware","gps","particle"],"created_at":"2025-06-04T12:47:48.168Z","updated_at":"2025-07-20T19:34:38.412Z","avatar_url":"https://github.com/worthwhile.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Geo-Bound\n\n* records GPS location and sends to [particle cloud](https://www.particle.io/)\n* designed to work with Photon + Asset Tracker Kit v2\n* works with no cell service saving up to 2000 readings\n* sends readings when cell becomes available\n\n## Getting the tools needed to compile\n\nAssuming you have the latest xcode and homebrew installed,\n\n- brew install dfu-util\n- sudo npm install -g particle-cli\n- particle login\n\n\n## Project Structure\n\nEvery Particle project is composed of 3 important elements that you'll see have been created in your project directory for geo-bound.\n\n#### ```/src``` folder:  \nThis is the source folder that contains the firmware files for your project. It should *not* be renamed. \nAnything that is in this folder when you compile your project will be sent to our compile service and compiled into a firmware binary for the Particle device that you have targeted.\n\nIf your application contains multiple files, they should all be included in the `src` folder. If your firmware depends on Particle libraries, those dependencies are specified in the `project.properties` file referenced below.\n\n#### ```.ino``` file:\nThis file is the firmware that will run as the primary application on your Particle device. It contains a `setup()` and `loop()` function, and can be written in Wiring or C/C++. For more information about using the Particle firmware API to create firmware for your Particle device, refer to the [Firmware Reference](https://docs.particle.io/reference/firmware/) section of the Particle documentation.\n\n#### ```project.properties``` file:  \nThis is the file that specifies the name and version number of the libraries that your project depends on. Dependencies are added automatically to your `project.properties` file when you add a library to a project using the `particle library add` command in the CLI or add a library in the Desktop IDE.\n\n## Adding additional files to your project\n\n#### Projects with multiple sources\nIf you would like add additional files to your application, they should be added to the `/src` folder. All files in the `/src` folder will be sent to the Particle Cloud to produce a compiled binary.\n\n#### Projects with external libraries\nIf your project includes a library that has not been registered in the Particle libraries system, you should create a new folder named `/lib/\u003clibraryname\u003e/src` under `/\u003cproject dir\u003e` and add the `.h` and `.cpp` files for your library there. All contents of the `/lib` folder and subfolders will also be sent to the Cloud for compilation.\n\n## Compiling your project\n\nWhen you're ready to compile your project, make sure you have the correct Particle device target selected and run `particle compile \u003cplatform\u003e` in the CLI or click the Compile button in the Desktop IDE. The following files in your project folder will be sent to the compile service:\n\n- Everything in the `/src` folder, including your `.ino` application file\n- The `project.properties` file for your project\n- Any libraries stored under `lib/\u003clibraryname\u003e/src`\n\n**To compile the firmware:**\n\n- cd GPSTracker \n- particle compile electron . --saveTo firmware.bin\n\nThis will compile the files in the current directory and create firmware.bin for flashing.\n\n## Flashing your project\n\nFirst, attach the micro USB to the particle, and plug it into your computer.\n\nMake sure you are in the **geo-bound** folder, where your firmware.bin resides.\n\nIf you have a brand new electron, its **system** firmware will be outdated.  The electron has a system firmware and project \nfirmware and these are flashed separately. \n\n**DFU Mode**\n\nIn order to flash the electron, it must be in DFU mode. To put the electron into DFU mode position the electron so the usb connector is pointing away from you.  \nPress both buttons on the particle at the same time, then release the button on the right. \n\nKeep holding the left button until the breathing light starts flashing yellow.  When it is flashing yellow, the electron is in \nDFU mode and is ready to be flashed.\n\n**To update the firmware, run the following:**\n- (Enable DFU Mode)\n- particle update\n\n**To flash the firmware**\n- (Enable DFU Mode)\n- particle flash --usb firmware.bin\n\n\n## Debugging\n\nUse **particle serial monitor** while connected to usb cable to see what is going on.  You can put Serial.printlnf statements in your code and you'll \nsee the output on the serial monitor.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworthwhile%2Fgeo-bound","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworthwhile%2Fgeo-bound","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworthwhile%2Fgeo-bound/lists"}