After almost two months of work since the last version, we finally released one of the biggest releases of all time!

Multiple device connections

Gadgetbridge could traditionally only connect to one device at one moment. That was mostly enough since not many people would need to connect to two smart watches at the same time. But Gadgetbridge has expanded, and there are a lot of non-smartwatch devices supported by now. For example smart headphones with various settings or the Mijia e-paper watch. If you wanted to connect to those devices, you always needed to disconnect your daily driver smart band/watch first. Thanks to Daniel Dakhnod who worked on multiple device connection support for over a month, we finally felt that it was time to merge his branch. We assume there are still some problems and regressions when more than one device is connected at a time - so consider this experimental and please report bugs into our bug tracker.

Vast device improvements


José Rebelo did a lot of further improvements for Huami devices, most notably tethered GPS support (sending GPS data from the phone to the device after a workout has been started from the band). This is only enabled for the Mi Band 5 right now but it will be expanded to other devices as we test them.

Fossil Hybrid HR

The Fossil Hybrid HR also received a lot of bug fixes and improvements, mainly thanks to code contributed by Arjan Schrijver who also did a lot of work on the Fossil front in the past. One highlight here is definitely the much improved watch app manager which now shows versions and watchface previews. Another great addition is an integration between the Workout app on the watch and OpenTracks - when you start a Workout on the watch, OpenTracks will start a GPS recording of your workout.


Bangle.js got improvements thanks to multiple contributors. One big new feature is the webview based app-loader for the internet enabled builds. Also, among other changes and fixes, calendar sync and sending emoji as images is supported now.

Other notable changes

There actually have been very many general non-device specific improvements in this release - too much for writing about everything. Refining of the UI and reorganizing some per-device settings, making more formally global settings per-device settings, bug fixes, icons etc.

As we always write:

For all user-facing changes since the previous blog post, check the following list :)

Many thanks to everyone for their contributions and support!


  • Multi device support (experimental), allows connecting to multiple devices simultaneously
  • Fossil Hybrid HR: Allow installation of newer watch apps
  • Fossil Hybrid HR: Allow workout app the be added as a shortcut
  • Fossil Hybrid HR: Generate watchface preview image and show it in the app manager
  • Fossil Hybrid HR: Request custom menu config on watchface initialization
  • Fossil Hybrid HR: Invert widgets color when the background image is inverted
  • Fossil Hybrid HR: Show app versions in app manager
  • Fossil Hybrid HR: Make 2nd TZ widget clock duration configurable and fix wrong offset
  • Fossil Hybrid HR: Add option to share a cached watchface/app to another app
  • Fossil Hybrid HR: Allow switching already uploaded watchfaces with Intent
  • Mi Band 6: Fix night mode on latest firmware
  • Mi Band 6: add sleep menu item (also to shortcuts)
  • Mi Band 5: Send GPS location to band during workout
  • Mi Band 5: Start fitness tracking on phone when workout starts on band
  • Mi Band 5: Fix missing Portuguese language
  • Mi Band 5: Add missing breathing shortcut
  • Mi Band 4: Add password support
  • Huami: Fix setting heart rate measurement interval on connection
  • Huami: Fix track name being replaced by album
  • Huami: Display native alarm notification
  • Huami: Fix MTU update on device connection
  • Roidmi 3: Recognize "Roidmi C BLE" as Roidmi 3
  • Bangle.js fix message REPLY option
  • Bangle.js: Keep a log of data sent from the watch, and allow it to be saved with from the debug menu
  • Bangle.js: Support for color dithered bitmaps, and converting emoji->bitmaps
  • Bangle.js: Adding built-in app-loader view. (Only available on internet-enabled builds)
  • Bangle.js: fix null pointer issue for debug messages
  • Bangle.js: Enable calendar sync for bangle
  • Bangle.js: Add icon
  • Pebble: fix configuration of some watchfaces (might break other again)
  • FitPro: add MTU based chunking, add more device names (Sunset 6, Watch7)
  • UM25: fix missing firmware version
  • Support for incoming call notification delay
  • Make calendar blacklist configurable per device
  • Support folders in device list
  • Separate device settings which are specific to the application into Set preferences in device card
  • When pairing devices with auth key requirements, only show Auth key menu related items on long press
  • Provide access to the FW/App Installer via Set preferences in device card
  • Animate card movement in device list
  • Make transliteration configurable per-language
  • Widget: do not show sleep if not recorded
  • Pop up a dialog asking about Location permissions
  • Fix sharing log files on newer android versions
  • Allow to set Bluetooth discovery scanning level to prevent freezing
  • Various UI tweaks and fixes
  • Add monochrome themed icon
  • Add device menu item to get to the FW/App Installer via an explanation activity


  • Huami: Fix long music track names not displaying
  • Amazfit Bip U/Pro/Band 5: Enable extended HR/stress monitoring setting
  • Pebble: Fix calendar blacklist, view and storage
  • FitPro: Fix crash, inactivity warning preference to string