Skip to content

Latest commit

 

History

History
108 lines (89 loc) · 6.24 KB

File metadata and controls

108 lines (89 loc) · 6.24 KB

Wahoo Elemnt Bolt v2 Utils

Maintenance

Disclaimer

  1. The programs and information provided here are not official Wahoo products; this is a private, non-commercial project.
  2. Use at your own risk: It may void your warranty, damage your device, or cause unexpected issues.
  3. The programs have not been tested in all environments and are not specifically fault-tolerant.

Auto-generated Points of Interest with gpx2poi & poi2db

Automated POIs on a Wahoo Bolt bike computer
Fig: my Bolt (w/ rubber protective cover): low zoom level of the entire island of Bornholm (588 km²) plus street-level view as if riding

A distance or bikepacking cyclist could miss nearby food and water if POIs aren’t marked on their map.

  • Finding --poi-types=water,food within a 500-meter --poi-radius along your route:
    OpenStreetMap servers can be queried for features within a geographic polygon using the Overpass API. Gpx2poi constructs a simplified polygon (a buffered line) from all route points in a GPX file downloaded from Komoot or similar services. It retrieves hundreds of features within this polygon and writes them to your_route.geojson. I test results with poi2tcx and a TCX viewer
  • Getting POIs onto the Bolt:
    Poi2db adds these features as POIs to the Bolt’s "Save my location" table on the device. The SQLite database file is accessible via Android Debug Bridge (credit: AndroidAndyUK).
    Manual POIs are not affected.
  • Pros:
    • POI generation and updating the Bolt takes only a few seconds and uses very little disk space
      (tested in real life with several 60 km tours; usually recommended to split long distances for smoother re-routing on a bike computer)
    • POI visibility is independent of the zoom level
    • no additional POI-capable device is required
    • freely definable POI radius in contrast to navigation cues
    • easy installation (probably), zero configuration and hardly any RTFM
  • Cons / Known issues:
    • the Bolt uses ♥ for all POI types, so different types aren’t visually distinguished. (poiType in the database seems either 0=SAVED_LOCATION or 1=PREVIOUS_SEARCH or n>1 UNKNOWN_$n, that is app logic / not problem domain; too, the resource directory with the ♥ icon 'map_poi_{color,light}.webp' does not contain any other POI icon)
    • currently, it's better to restrict to either --poi-types=food,water or --poi-types=camp for example – not both – so the meaning of ♥ is more predictable (still you cannot tell a restaurant apart from a fuel station); I've excluded bars/pubs from water because of bike safety, you might want to re-add it.
    • extra step required: when updating routes in Komoot or similar, you must copy them to this project and rebuild the POI list
    • no auto-POIs available when detouring (outside the specified POI radius)
    • at low zoom levels, too many POIs can clutter the map, though this isn’t an issue at street level. Not sure if Bolt allows you to hide all POIs.
    • manual POIs added before auto-generation get buried under hundreds of auto-POIs. However, manual ‘save-my-location’ POIs added during rides (e.g., ‘bring me back to this tent pitch after checking out the city for food’) appear at the top and are easy to find.
  • Installation:
     	$ ./setup.sh     # installs ADB, python-libs etc to the project's subdir 'local', so your system stays clean
     	$                # requires Linux, Python 3 with pip
     	$ ./gpx2poi.py --help
     	$ ./poi2db.py  --help
     	$                # 1. download _selected_ GPX files to "routes"-directory
     	$                # 2. enable Bolt's debug mode and connect USB cable
     	$ ./gpx2poi.py routes/*.gpx      # Saves POIs for all GPX tracks to local geojson-files
     	$ ./poi2db.py  routes/*.geojson  # Recreates POI-list on the Bolt
  • Other approaches:

Wahoo Basics

  • Bolt runs an old Android operating system which is accessible via USB-Cable and the Android Debug Bridge (ADB) tool
  • consider WebADB via Chrome browser (using WebUSB) when unable to install or run ADB for some reason (though some security/privacy risk)
  • Bolt authorizes ADB in debug mode:
    1. power up without USB-Cable plugged in,
    2. press POWER+UP+DOWN simultan. (2 times)
    3. plug in cable
    4. check with ./local/opt/platform-tools/adb devices (remove cable and repeat 2. if 'unauthorized')
  • Bolt supports file formats:
    • FIT (newer Garmin binary with smaller filesize), annoyingly requires Garmin FIT SDK
    • TCX (older easy Garmin plaintext XML)
    • GPX (easy plaintext XML)

See Also