Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(gfps_service): Add Google Fast Pair Service #161

Merged
merged 3 commits into from
Feb 29, 2024

Conversation

finger563
Copy link
Contributor

@finger563 finger563 commented Feb 29, 2024

Description

  • Add google/nearby submodule under external folder
  • Add gfps_service component implementing the device specific google/nearby support as well as a wrapper service for GFPS
  • Add gfps_service example
  • Update and rebuild docs (and clean up some extraneous files)
  • Update CI

Motivation and Context

Now that we have a BLE server (#157), being able to pair quickly and with a nice interface (supporting app matching) would be great. On Android, this can be provided by using the google:nearby/embedded framework and supporting the Google Fast Pair Service (GFPS). This PR adds support for that. GFPS doesn't preclude standard settings-menu-based pairing, but offers an alternative and is based on proximity of the android device to the bluetooth peripheral. It also still supports standard pairing on iOS as well.

NOTE: you will have to register your own device on the google nearby devices dashboard.

NOTE: this uses NimBLE as the BLE stack of choice. If you want to see a bluedroid implementation, see finger563/esp-gfps-example

How has this been tested?

Building and running the new example on a QtPy ESP32s3.

Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):

CleanShot 2024-02-29 at 09 51 07

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update
  • Hardware (schematic, board, system design) change
  • Software change

Checklist:

  • My change requires a change to the documentation.
  • I have added / updated the documentation related to this change via either README or WIKI

Software

  • I have added tests to cover my changes.
  • I have updated the .github/workflows/build.yml file to add my new test to the automated cloud build github action.
  • All new and existing tests passed.
  • My code follows the code style of this project.

* Add google/nearby submodule under external folder
* Add gfps_service component implementing the device specific google/nearby support as well as a wrapper service for GFPS
* Add gfps_service example
* Update and rebuild docs (and clean up some extraneous files)
* Update CI
Copy link

✅Static analysis result - no issues found! ✅

@finger563 finger563 merged commit f6a9c21 into main Feb 29, 2024
54 checks passed
@finger563 finger563 deleted the feature/gfps-service branch February 29, 2024 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant