wasp-os is an open-source firmware, based on MicroPython, for smart
watches that are based on the nRF52 family of microcontrollers.
Currently this includes the hacker friendly PineTime from Pine64 as
well as the Colmi P8, which is a popular device with watch modders.
For GadgetBridge integration wasp-os is very similar to handling
Espruino/BangleJS: the watch will interact with the bridge by
providing REPL-over-BLE via the Nordic UART service.
wasp-os implements the same JSON-wrapped-in-GB()-function-call
protocol used for BangleJS buy the differences in capability
between the two firmwares lead us to introducing a different
device type... and also a different icon since the lead devices
for wasp-os are square!
I plan to keep as aligned as possible with the BangleJS device
type, however at present the major differences include:
1. Specify the bonding style (wasp-os currently does not support
bonding... so no need to ask).
2. Disable some of the not-yet-implemented features.
3. Reduce the minimum packet size to fix communication reliability
issues with the MicroPython NUS implementation.
4. Switch the date/time setting syntax from JavaScript to MicroPython.
Merge branch 'master' into master
Added support for Amazfit GTR 2e.
Co-authored-by: Jochen S <tsalin@noreply.codeberg.org>
Co-authored-by: arisel <arisel@arisel.de>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2182
Co-Authored-By: Jochen S. <tsalin@noreply.codeberg.org>
Co-Committed-By: Jochen S. <tsalin@noreply.codeberg.org>
Merge branch 'amazfit_neo' of codeberg.org:xaos/Gadgetbridge into amazfit_neo
updated menu items and settings, also disabled music info
added some classes, strings, etc. for Amazfit Neo (shows up but does not connect)
Merge branch 'amazfit_neo' of codeberg.org:xaos/Gadgetbridge into amazfit_neo
Merge branch 'master' into amazfit_neo
updated menu items and settings, also disabled music info
Merge branch 'authkey_errmsg' into amazfit_neo
refined error message for invalid authentication keys
added some classes, strings, etc. for Amazfit Neo (shows up but does not connect)
Co-authored-by: xaos <xaos@xaos.tech>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2117
Co-Authored-By: xaos <xaos@noreply.codeberg.org>
Co-Committed-By: xaos <xaos@noreply.codeberg.org>
The current GATT characteristic list mentions it was up to date as of populated 2015-09-28. In the last 6 years, significantly more characteristics have been added to the Bluetooth spec. While it's not necessary to have all these constants available in Gadgetbridge, it's useful while implementing new features for a device or adding support for a new device
This was retrieved from https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf. The GATT characteristics were parsed from that PDF and converted to constants with names via:
```
String description = uuid.description.trim().toUpperCase().replace(' ', '_').replace('-', '_');
System.out.println("public static final UUID UUID_CHARACTERISTIC_" + description + " = UUID.fromString((String.format(AbstractBTLEDeviceSupport.BASE_UUID, \"" + uuid.uuid + "\")));");
```
This fixes the Verge Lite id back to 29 and changes Amazfit Bip U Pro to 30 (and Live View to 320)
Liveview has no activity data and proably has very few if any users. So re-pairing should be acceptable
- rename to Data management in menu and activity
- expand texts and explain files meaning
- add confirmation screen to export
- change layout to Linear, rather then Grid
- add listing of file content in the /files directory
- allow Data management activity to rotate
Add missing widget string to strings
Pairing some devices requires a PIN to be entered. E.g. the flow is: confirm you'd like to pair, pass off to Android which prompts for a PIN to pair with (typically shows up on the non-phone device's screen or is hard coded in the manual), then return back to the app.
When this pairing request screen pops up, it takes focus. This invokes onPause and onStop in the DiscoveryActivity, which removes the BlueTooth broadcast receivers. Returning focus (after successful pairing), there's nothing to listen to the event. Practically speaking, GadgetBridge last saw the device as BOND_BONDING, so it's out of sync. If queried, the device is BOND_BONDED, so it's good to move on to the next step.
Many existing pairing activities (Lenovo, MiBand, Pebble, Watch9) have an implementation of onResume() to presumably tackle this issue, this adds it to `DiscoveryActivity` as well. Testing with some other supporting code, this allows a Garmin vivosport to appear in Gadgetbridge.