Acknowledgements

PGPemu builds on earlier work reverse-engineering the Pokémon GO Plus protocol, and the companion app is built using a number of open-source projects. Thanks to everyone who works on them.

Prior work

ProjectContribution
yohane's pgpemu The original Pokémon GO Plus emulator this project is based on.
spezifisch's fork Further protocol work carried forward into this project.
paper183's fork Further protocol work carried forward into this project.
pogoplusle A compatible client PGPemu is tested against for auto reconnect and handshake behavior.

Companion app & Bluetooth

ProjectUsed forLicense
Nordic Android BLE Library (Nordic Semiconductor) Handles the Bluetooth Low Energy connection, pairing, and the command/response protocol used to talk to the device. BSD 3-Clause

Language & async

ProjectUsed forLicense
Kotlin (JetBrains) The programming language the entire app is written in. Apache 2.0
Kotlin Coroutines (JetBrains) Handles background work and the app's real-time connection state. Apache 2.0

UI & architecture

ProjectUsed forLicense
Jetpack Compose (Google) The toolkit used to build every screen in the app. Apache 2.0
Material 3 (Google) Provides base interface components used throughout the app. Apache 2.0
Hilt (Dagger) (Google) Internal framework that connects the app's components together. Apache 2.0
AndroidX Lifecycle (Google) Manages how the app responds to screen rotation, backgrounding, and other Android lifecycle events. Apache 2.0

Device firmware

ProjectUsed forLicense
ESP-IDF (Espressif Systems) The framework the device's firmware, including its Bluetooth Low Energy stack, is built on. Apache 2.0