- The programs and information provided here are not official Wahoo products; this is a private, non-commercial project.
- Use at your own risk: It may void your warranty, damage your device, or cause unexpected issues.
- The programs have not been tested in all environments and are not specifically optimized or fault-tolerant.
(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 toyour_route.geojson
. I test results withpoi2tcx
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
- POI generation and updating the Bolt takes only a few seconds and uses very little disk space
- 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 fromwater
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:
- adding POIs manually via smartphone companion app = pain
- self generated maps with POI-symbols = best approach but nasty setup and regular generation requires significant time and disk space
- custom navigation cues in FIT or TCX (not GPX) files will give a text warning when approaching the point + water tap icon
- I could neither reproduce that with FIT nor TCX on my Bolt (in non-riding route-map overview mode; TCX food and water icons showed up in GPSVisualizer only)
- afaik Wahoo shows icons only within a pretty small radius along the route (poi2db isn't limited)
- RwGPS premium feature? $$$
-
<CoursePoint> <Name>Water</Name> <Time>2023-10-19T17:13:09Z</Time> <Position> <LatitudeDegrees>x.xxxx</LatitudeDegrees> <LongitudeDegrees>y.yyyy</LongitudeDegrees> </Position> <PointType>Water</PointType> <!-- or: Food, Danger --> <Notes>Water!</Notes> </CoursePoint>
- navigate to POIs with your smartphone when hungry/thirsty = increased battery usage; needs mounting options on the handlebar; increased risk of damage
- 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:
- power up without USB-Cable plugged in,
- press POWER+UP+DOWN simultan. (1 or 2 times)
- plug in cable
- 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)
- my stared cycling tools on GitHub: https://github.com/stars/andre-st/lists/cycling
- screen recording on Wahoo devices: https://www.youtube.com/watch?v=dSMxnPvunco