- Kotlin 99.6%
- Shell 0.4%
|
bg443
8214a40154
All checks were successful
Build debug / build (push) Successful in 3m10s
|
||
|---|---|---|
| .forgejo/workflows | Fix CI | |
| .idea | Update .idea | |
| app | Fix crash on ScanScreen | |
| assets | Update README | |
| docs | Update support.md | |
| fastlane/metadata/android/en-US | Add passkey write for Shimano EP8 | |
| gradle | Add Bosch LDI protobuf scaffolding | |
| scripts | Preserve alignment in apksigner | |
| .gitignore | BikeBridge | |
| .woodpecker.yml | BikeBridge | |
| build.gradle.kts | Add protobuf scaffolding and Bosch LDI protobuf ( #10 ) | |
| gradle.properties | Add Bosch LDI protobuf scaffolding | |
| gradlew | BikeBridge | |
| gradlew.bat | BikeBridge | |
| LICENSE | BikeBridge | |
| README.md | Update README | |
| settings.gradle.kts | BikeBridge | |
BikeBridge
Companion for e-bikes using BLE
⚠️ This app is a work in progress ⚠️
Please read below about bike support
About
BikeBridge is a companion app for your e-bike, providing real-time information from your bike and components.
All raw data received from the bike, and sent to the bike (by BikeBridge) is transparent and viewable.
All Bluetooth data and parsers can be found below:
You are also able to send custom payloads to any Bluetooth characteristic on the bike.
Features
- See statistics (e.g. speed, total distance, gear) in real-time
- See all raw data transmitted/received to/from bike
- Send custom payloads
- Change settings on bike (see support)
- See bike info (e.g. serial number, MAC address, etc.)
- HUD
Install
Prebuilt binaries
- Available to download in the releases tab
- You can see the steps of the build on BikeBridge's CI page
Build from source
./gradlew :app:assembleRelease
Screenshots
Bike Support
| Manufacturer | Series | Supported |
|---|---|---|
| Shimano | EP8 | Yes |
| SRAM | Eagle AXS | Yes |
Note: even if your manufacturer/series isn't explicitly listed above, BikeBridge will still try to fetch and display as much information as possible.
For a more detailed table, see advanced support
BikeBridge has only been tested on a Shimano EP8 (Canyon) as that is all I have access to.
Any features added to a bike (e.g. reading total distance) are added through reverse engineering, and can therefore take some time to develop.
Submitting logs
BikeBridge allows you to see all data transmitted to or received from the bike by enabling logs in the settings screen.
Please enable Log GATT table as this shows possible data points that could be queried/written to by BikeBridge.
Censor the log to hide your device serial number and MAC address.
Capturing BLE communication
The most useful information comes from a sniffed connection as it represents what BikeBridge will need to do under the hood.
There are numerous RF sniffers that support Bluetooth low energy or an Android device can be used.
For encrypted/bonded BLE connections, crackle can be used in post to brute-force the temporary key, provided the pairing process was observed.
BikeBridge has Wireshark Post-Dissectors to aid in reverse engineering.
Permissions
BikeBridge requires a few permissions in order to function:
BLUETOOTH/BLUETOOTH_SCAN/BLUETOOTH_ADMIN- used to send and receive data to and from the bikeACCESS_COARSE_LOCATION/ACCESS_FINE_LOCATION- required for Bluetooth scanning
BikeBridge does not, and never will, require an internet connection.
License
BikeBridge is free software: you can redistribute it and/or modify it under the terms of the GNU GPL-3.0-or-later License as published by the Free Software Foundation.
This software is provided with no warranty.