Skip to content

Instantly share code, notes, and snippets.

@Intyre
Last active March 20, 2022 10:11
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Intyre/aefc6cced18f0610df57adcb70a11453 to your computer and use it in GitHub Desktop.
Save Intyre/aefc6cced18f0610df57adcb70a11453 to your computer and use it in GitHub Desktop.

Wahoo backup format

uint8 Field ID Type
uint16 Profile ID

uint16 field
for each field
  uint16 or uint32 Field ID // depends on Field ID type, 0=uint16 1=uint32
  uint16 data size
  bytes field data // use the data size as the length

uint16 field count
for each field
  uint16 or uint32 Field ID // depends on Field ID type, 0=uint16 1=uint32
  uint32 timestamp

Bolt ID's

ID Type Name
0 uint8 BACKLIGHT
1 bool AUTO_UPLOAD_ENABLED
2 uint8 BOLT_BATTERY
4 uint8 LED_MODE
5 bool TOP_LED_WORKOUT
6 bool TOP_LED_NOTIF
7 bool TOP_LED_NAV
8 bool BUZZ_WORKOUT
9 bool BUZZ_NOTIF
10 bool BUZZ_NAV
11 bool BUZZ_MARIO
12 float AUTO_PAUSE_SPEED
13 bool ALERT_PHONE
14 bool ALERT_MSG
15 bool ALERT_EMAIL
17 uint8 AUTO_SHUTDOWN_DURATION
18 bool MUTE
19 string BOLTAPP_VERSION
20 bool KICKR_MODE_OVERRIDE_ALLOWED
21 uint8 LED_MODE_OVERRIDE
22 uint8 ZOOM_MIN_LEVEL
23 uint8 FIRST_RUN_STATE
24 AUTO_LAP_CFG
25 uint16 AUTO_LAP_DIST
26 uint16 AUTO_LAP_TIME
27 uint8 BACKLIGHT_DURATION_SEC
28 uint8 UPGRADE_STATE
29 uint8 UPGRADE_DOWNLOAD_PERCENT
30 uint32 DND_END_TIME
31 uint32 DND_INTERVAL
32 bool FOLLOW_WITH_HEADING
33 bool SEGMENTS_ENABLED
34 bool SEGMENTS_AUTO_PAGE_CHANGE
35 bool SEGMENTS_NOTIF_ON_OTHER_PAGES
36 bool SEGMENTS_LEDS
37 bool SEGMENTS_MUTED
38 uint16 WORKOUT_TYPE
39 uint8 USER_OUTDOOR_MODE
41 PAGE_DEFN
42 uint8 WIFI_NW_COUNT
43 bool INCLUDE_ZERO_IN_AVG_CADENCE
44 bool PLANS_NOTIF_ON_OTHER_PAGES
45 bool PLANS_BUZZER
46 bool PLANS_LEDS
47 bool SEGMENTS_DURING_PLAN
48 bool PLAN_AUTO_LAP_ON_INTERVAL
49 bool INCLUDE_ZERO_IN_AVG_POWER
50 []uint16 PROFILE_IDS
51 uint16 PROFILE_ID
52 string PROFILE_NAME
53 DISPLAY_CFG
56 bool AUTO_UPDATE
57 WATCHFACE_CFG
58 uint16 POOL_LENGTH_CM
59 uint8 THEME_COLOR
62 byte LOG_MASK
63 uint16 PROFILE_ID_NEXT
64 uint8 GPS_OVERRIDE
65 bool ENABLE_OPTICAL_HR
66 uint8 APP_PROFILE
67 uint8 RUNNING_MODE
68 uint16 RACE_LENGTH
69 uint16 TRACK_LENGTH
70 uint32 LAST_INTERACTION_TIME_SEC
72 bool AUTO_SET_ENABLED
74 uint8 BOLT_BATTERY_STATUS
75 string SERIAL_NUMBER
76 bool AUTO_REROUTE
78 ALARM_NOTIF_TYPE
79 byte SOUNDS_MASK
80 byte VIBRATIONS_MASK
81 uint16 SCHEDULED_DND_START_TIME_MIN
82 uint16 SCHEDULED_DND_END_TIME_MIN
83 byte DND_MASK
84 RADAR_CFG
85 PMS_CFG
86 uint8 PMS_SESSION_INDEX
87 uint8 BODY_POSITION
88 string SPECIALIZED_AUTH_KEY
89 string SPECIALIZED_STAGING_URL
90 bool GPS_POS_ASSIST_VALID
91 uint8 UPGRADE_STATE_ROM
92 BOLTAPP_WSM_ENABLED
93 byte LOG_LEVEL
94 RELEASE_CHANNEL
96 GPS_POS_ASSIST_DATA_REQ

Comp ID's

ID Name
1 HEIGHT_CM
2 WEIGHT_HG
3 DOB
4 MALE
5 METRIC_SPEED_DISTANCE
6 LOCALE
7 POWER_FTP
8 HR_RESTING
9 HR_ZONE_1_CEIL
10 HR_ZONE_2_CEIL
11 HR_ZONE_3_CEIL
12 HR_ZONE_4_CEIL
13 HR_MAX
15 LIFESTYLE
17 TIME_FMT
19 HR_BURN_RATE
20 HR_BURST_RATE
22 PHONE_BATTERY
23 BOLT_TIME
24 BOLT_TIME_ZONE
25 SPD_ZONE_1_CEIL
26 SPD_ZONE_2_CEIL
27 SPD_ZONE_3_CEIL
28 SPD_ZONE_4_CEIL
29 PWR_ZONE_1_CEIL
30 PWR_ZONE_2_CEIL
31 PWR_ZONE_3_CEIL
32 PWR_ZONE_4_CEIL
35 METRIC_ELEVATION
36 METRIC_TEMPERATURE
37 METRIC_WEIGHT
38 PWR_ZONE_5_CEIL
39 PWR_ZONE_6_CEIL
40 PWR_ZONE_7_CEIL
42 PWR_ZONE_COUNT
43 BOLT_TIME_INFO
45 FIRST_DAY_OF_WEEK
46 AUTO_UPLOAD_MASK
47 TARGET_DAILY_STEPS
48 TARGET_WEEKLY_BIKE_DISTANCE
49 TARGET_DAILY_CALORIES
50 TARGET_WEEKLY_RUN_DISTANCE
51 TARGET_WEEKLY_SWIM_DISTANCE
52 TARGET_WEEKLY_CALORIES
53 TARGET_WEEKLY_ACTIVE_TIME
55 LOCATION_LAT
56 LOCATION_LON
57 PAIRED_ELEMNT_CFG
58 _247_WEEK_SUMMARY
59 TODAYS_PLAN_WORLD_TOUR

DisplayCfg

uint8  // expects 0
uint16 // current page index
uint8  // total pages

for total pages
  uint8  // expects 0
  uint16 // page ID
  uint8  // page type
  uint8  // zoom level
  bool   // enabled
  uint16 // flags
    if page type == 3 // BOLTAPP_MAP
      flag&1 // show map elevation 
    if page type == 25 // BOLTAPP_PEDAL_MONITOR
      flag&7 // pedaling mode graph type

  uint8 // field count
  for field count
    uint16 // field type    

Page types

ID Name
0 BOLTAPP_WORKOUT
1 BOLTAPP_LAP
2 BOLTAPP_CLIMB
3 BOLTAPP_MAP
4 BOLTAPP_KICKR
5 BOLTAPP_ZOOM
6 BOLTAPP_GRAPH
8 BOLTAPP_SEGMENT
9 MINI_WORKOUT
10 MINI_LAP
11 MINI_CADENCE
12 MINI_HEARTRATE
13 MINI_CALORIES
14 MINI_CUSTOM
15 BOLTAPP_PLANNED_WORKOUT
16 RNNR_WORKOUT
17 RNNR_CADENCE
18 RNNR_LAP
19 RNNR_CLIMB
20 RNNR_HEARTRATE
21 RNNR_POWER
22 RNNR_CUSTOM
23 RNNR_LAP_LIST
24 RNNR_TRAINER
25 BOLTAPP_PEDAL_MONITOR
26 RNNR_ACTIVE_SET
27 RNNR_RESTING_SET
28 RNNR_MULTISPORT
29 BOLTAPP_MULTISPORT
255 NONE

Field types

ID Name
1 SPEED_LAP_AVG
2 SPEED_AVG
3 SPEED_LAST_LAP_AVG
4 SPEED_BEST_AVG
5 SPEED_MAX
6 SPEED_LAP_MAX
10 DISTANCE
11 DISTANCE_LAP
20 ROUTE_DISTANCE_REMAINING
21 ROUTE_DISTANCE_NEXT_COURSE_POINT
24 HEADING_GPS
25 HOR_ACC_GPS
30 TIME
31 DURATION_TOTAL
32 DURATION_ACTIVE
33 DURATION_PAUSED
34 DURATION_ACTIVE_LAP
35 DURATION_ACTIVE_LAST
36 DURATION_ACTIVE_BEST
40 ASCENT
41 DESCENT
42 ASCENT_LAP
43 DESCENT_LAP
44 GRADE
45 ELEVATION
46 ELEVATION_MAX
47 VERT_SPEED
50 TEMPERATURE
51 TEMPERATURE_MAX
52 TEMPERATURE_MIN
53 TEMPERATURE_AVG
60 CADENCE
61 CADENCE_AVG
62 CADENCE_LAP_AVG
63 CADENCE_MAX
64 CADENCE_LAP_MAX
70 HEARTRATE
71 HEARTRATE_AVG
72 HEARTRATE_LAP_AVG
73 HEARTRATE_MAX
74 HEARTRATE_LAP_MAX
75 HEARTRATE_ZONE
76 HEARTRATE_PERC
77 TIZ_HR1
78 TIZ_HR2
79 TIZ_HR3
80 TIZ_HR4
81 TIZ_HR5
90 CALORIES
91 MECHANICAL_WORK_BIKE
92 CALORIE_RATE
101 POWER_TO_WEIGHT
102 POWER_AVG
103 POWER_LAP_AVG
104 POWER_MAX
105 POWER_LAP_MAX
106 POWER_BIKE_TSS
107 POWER_BIKE_NP
108 POWER_BIKE_IF
109 POWER_BIKE_LR_BALANCE
110 POWER_BIKE_LR_BALANCE_AVG
111 POWER_BIKE_LR_BALANCE_LAP_AVG
112 POWER_BIKE_LR_BALANCE_03S
120 KICKR_ERG
121 KICKR_LVL
122 KICKR_RES
130 BATTERY_LOCAL
131 BATTERY_REMOTE
141 START_TIME
154 LAP_NUMBER
155 SPEED_CMP_LAP_AVG
156 POWER_CMP_LAP_AVG
157 POWER_CMP_AVG
158 SPEED_CMP_AVG
159 POWER_BIKE_LR_BALANCE_20S
160 POWER_BIKE_LR_BALANCE_30S
161 POWER_05S
162 POWER_20S
163 POWER_30S
164 POWER_60S
165 POWER_05M
166 POWER_20M
167 POWER_30M
168 POWER_60M
169 POWER_05S_MAX
170 POWER_20S_MAX
171 POWER_30S_MAX
172 POWER_60S_MAX
173 POWER_05M_MAX
174 POWER_20M_MAX
175 POWER_30M_MAX
176 POWER_60M_MAX
177 POWER_KICKR
179 TORQUE_BIKE
180 POWER_03S
181 POWER_BIKE_LR_BALANCE_05S
182 TORQUE_BIKE_03S
183 TORQUE_BIKE_05S
184 TORQUE_BIKE_20S
185 TORQUE_BIKE_30S
186 POWER_03S_MAX
187 MUSCLE_OXYGEN_TOTAL_CONCENTRATION
188 MUSCLE_OXYGEN_TOTAL_CONCENTRATION_AVG
189 MUSCLE_OXYGEN_TOTAL_CONCENTRATION_LAP_AVG
190 MUSCLE_OXYGEN_TOTAL_CONCENTRATION_MIN
191 MUSCLE_OXYGEN_TOTAL_CONCENTRATION_LAP_MIN
192 MUSCLE_OXYGEN_TOTAL_CONCENTRATION_MAX
193 MUSCLE_OXYGEN_TOTAL_CONCENTRATION_LAP_MAX
194 MUSCLE_OXYGEN_SATURATED_PERCENT
195 MUSCLE_OXYGEN_SATURATED_PERCENT_AVG
196 MUSCLE_OXYGEN_SATURATED_PERCENT_LAP_AVG
197 MUSCLE_OXYGEN_SATURATED_PERCENT_MIN
198 MUSCLE_OXYGEN_SATURATED_PERCENT_LAP_MIN
199 MUSCLE_OXYGEN_SATURATED_PERCENT_MAX
200 MUSCLE_OXYGEN_SATURATED_PERCENT_LAP_MAX
201 SPEED
210 GEAR_SELECTION_NUMBER
211 GEAR_SELECTION_NUMBER_WITH_TOTAL
212 GEAR_SELECTION_NUMBER_FRONT
213 GEAR_SELECTION_NUMBER_FRONT_WITH_TOTAL
214 GEAR_SELECTION_NUMBER_REAR
215 GEAR_SELECTION_NUMBER_REAR_WITH_TOTAL
216 GEAR_SELECTION_NUMBER_VISUAL
217 GEAR_SELECTION_RATIO_NUMBER_OF_TEETH
237 ELEVATION_MIN
238 SEGMENT_DURATION_ACTIVE
239 SEGMENT_AHEAD_BEHIND_TIME
240 SEGMENT_DURATION_TARGET
241 SEGMENT_DISTANCE_REMAINING
242 SEGMENT_DURATION_ESTIMATED
243 HEARTRATE_TIZ_VISUAL
244 POWER_ZONE
245 POWER_TIZ_VISUAL
246 TIZ_PWR1
247 TIZ_PWR2
248 TIZ_PWR3
249 TIZ_PWR4
250 TIZ_PWR5
251 TIZ_PWR6
252 TIZ_PWR7
253 TIZ_PWR8
254 DISTANCE_LAST_LAP
255 ASCENT_LAST_LAP
256 DESCENT_LAST_LAP
257 GRADE_AVG
258 GRADE_LAP_AVG
259 GRADE_LAST_LAP_AVG
260 POWER_LAST_LAP_AVG
261 POWER_BIKE_LR_BALANCE_LAST_LAP_AVG
262 POWER_TO_WEIGHT_AVG
263 POWER_TO_WEIGHT_LAP_AVG
264 POWER_TO_WEIGHT_LAST_LAP_AVG
265 TORQUE_BIKE_AVG
266 TORQUE_BIKE_LAP_AVG
267 TORQUE_BIKE_LAST_LAP_AVG
268 HEARTRATE_LAST_LAP_AVG
269 CADENCE_LAST_LAP_AVG
270 ROUTE_TARGET_POWER
271 ROUTE_TARGET_SPEED
272 POWER_BIKE_NP_LAP
273 POWER_BIKE_PERCENT_FTP
274 POWER_BIKE_PERCENT_FTP_AVG
275 POWER_BIKE_PERCENT_FTP_LAP
276 POWER_BIKE_PERCENT_FTP_LAST_LAP
277 POWER_BIKE_03S_PERCENT_FTP
278 POWER_BIKE_05S_PERCENT_FTP
279 POWER_BIKE_20S_PERCENT_FTP
280 POWER_BIKE_30S_PERCENT_FTP
281 POWER_BIKE_NP_LAST_LAP
282 POWER_BIKE_PEDAL_SMOOTHNESS
283 POWER_BIKE_PEDAL_SMOOTHNESS_AVG
284 POWER_BIKE_PEDAL_SMOOTHNESS_LAP_AVG
285 POWER_BIKE_PEDAL_SMOOTHNESS_LAST_LAP_AVG
286 POWER_BIKE_TORQUE_EFFECTIVENESS
287 POWER_BIKE_TORQUE_EFFECTIVENESS_AVG
288 POWER_BIKE_TORQUE_EFFECTIVENESS_LAP_AVG
289 POWER_BIKE_TORQUE_EFFECTIVENESS_LAST_LAP_AVG
291 LAT
292 LON
293 WORKOUT_TYPE
294 PLAN_TARGET_POWER
295 PLAN_TARGET_CADENCE
296 PLAN_TARGET_HEARTRATE
297 PLAN_INTERVAL_REMAINING
298 PLAN_WORKOUT_REMAINING
299 PLAN_INTERVAL_COUNT
300 SWIM_STROKE_RATE
301 SWIM_STROKES
302 SWIM_STROKES_SET
303 SWIM_STROKES_LAST_SET
304 SWIM_POOL_LENGTHS
305 SWIM_POOL_LENGTHS_SET
306 SWIM_POOL_LENGTHS_LAST_SET
310 POWER_BIKE_VI
311 GAP
312 GAP_AVG
313 GAP_LAP_AVG
314 GAP_LAST_LAP_AVG
316 TYRE_PRESSURE
317 RELATIVE_EFFORT
318 PIONEER_PM_EFFICIENCY
319 PIONEER_PM_EFFICIENCY_AVG
320 PIONEER_PM_EFFICIENCY_LAP_AVG
321 GLUCOSE
322 SWOLF
323 SWOLF_SET
324 SWOLF_LAST_SET
325 SWOLF_LENGTH
326 SWOLF_LAST_LENGTH
327 LENGTH_IS_ACTIVE
328 DURATION_ACTIVE_LENGTH
329 DURATION_ACTIVE_LAST_LENGTH
330 SWIM_STROKES_LENGTH
331 SWIM_STROKES_LAST_LENGTH
332 SWIM_STROKE_RATE_AVG
333 SWIM_STROKE_RATE_SET_AVG
334 SWIM_STROKE_RATE_LAST_SET_AVG
335 DURATION_SET
336 DISTANCE_SET
337 SET_NUMBER
338 HEARTRATE_SET_AVG
339 HEARTRATE_LAST_SET_AVG
340 HEARTRATE_SET_MAX
341 HEARTRATE_LAST_SET_MAX
342 HEARTRATE_LAST_LAP_MAX
367 TRAVEL_ASSIST_LEVEL
368 REMAINING_RANGE
369 LEV_BATTERY_PERC
371 DURATION_ACTIVE_WORKOUT
374 DURATION_ACTIVE_LAST_LEG
375 DURATION_ACTIVE_LATEST_TRANSITION
376 DURATION_ACTIVE_PREVIOUS_TRANSITION
377 CALORIES_WORKOUT
378 BATTERY_WATCH
379 DURATION_TOTAL_WORKOUT
380 MA_GCT_MS
381 MA_GCT_MS_AVG
382 MA_GCT_MS_LAP_AVG
383 MA_GCT_MS_LAST_LAP_AVG
384 MA_GCT_MS_MAX
385 MA_GCT_MS_MIN
386 MA_VERT_OCS_CM
387 MA_VERT_OCS_CM_AVG
388 MA_VERT_OCS_CM_LAP_AVG
389 MA_VERT_OCS_CM_LAST_LAP_AVG
390 MA_VERT_OCS_CM_MAX
391 MA_VERT_OCS_CM_MIN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment