Skip to content

andre-st/wahoo-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 optimized or fault-tolerant.

Auto-generated Points of Interest with gpx2poi & poi2db

Automated POIs on a Wahoo Bolt bike computer
(my Bolt with a rubber protective cover: low zoom level of the entire island of Bornholm 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 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
  • Cons / Known issues:
    • the Bolt uses a single heart icon for all POI types, so different types aren’t visually distinguished. (Setting poiType to 1 instead of 0 in the database has no effect. Reversing the Bolt app might reveal why)
    • currently, it's better to restrict to either --poi-types=food,water or --poi-types=camp for example – not both – so the heart icon meaning 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. (1 or 2 times)
    3. plug in cable
    4. check with adb devices
  • 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