170 Serial.begin(115200);
176 Serial.println(
"Initializing Sensors...");
179 bhy.setFirmware(bosch_firmware_image, bosch_firmware_size);
190 Serial.println(
"Initializing Sensors...");
192#ifdef USE_I2C_INTERFACE
197 Serial.print(
"Failed to initialize sensor - error code:");
198 Serial.println(
bhy.getError());
205#ifdef USE_SPI_INTERFACE
208 Serial.print(
"Failed to initialize sensor - error code:");
209 Serial.println(
bhy.getError());
216 Serial.println(
"Initializing the sensor successfully!");
219 BoschSensorInfo info =
bhy.getSensorInfo();
222 ArduinoStreamPrinter printer(Serial);
223 info.printInfo(printer);
225 info.printInfo([](
const char *format, ...) ->
int {
227 va_start(args, format);
228 int result = vprintf(format, args);
235 float sample_rate = 1.0;
236 uint32_t report_latency_ms = 0;
238#ifdef USING_DATA_HELPER
240 stepCounter.enable(sample_rate, report_latency_ms);
243 bhy.configure(BoschSensorID::STEP_DETECTOR_LOW_POWER, sample_rate, report_latency_ms);
245 bhy.configure(BoschSensorID::STEP_COUNTER_LOW_POWER, sample_rate, report_latency_ms);
247 bhy.onResultEvent(BoschSensorID::STEP_DETECTOR_LOW_POWER, step_detector_process_callback);
248 bhy.onResultEvent(BoschSensorID::STEP_COUNTER_LOW_POWER, step_counter_process_callback);
251#ifdef USING_SENSOR_IRQ_METHOD
264 Serial.println(
"Get Step Counter configuration.");
266 Serial.println(
"Failed to get Step Counter configuration");
269 Serial.println(
" Step Counter configuration:");
270 Serial.print(
" - <env_min_dist_up>: ");
271 Serial.println(conf.env_min_dist_up);
272 Serial.print(
" - <env_coef_up>: ");
273 Serial.println(conf.env_coef_up);
274 Serial.print(
" - <env_min_dist_down>: ");
275 Serial.println(conf.env_min_dist_down);
276 Serial.print(
" - <env_coef_down>: ");
277 Serial.println(conf.env_coef_down);
278 Serial.print(
" - <step_buffer_size>: ");
279 Serial.println(conf.step_buffer_size);
280 Serial.print(
" - <mean_val_decay>: ");
281 Serial.println(conf.mean_val_decay);
282 Serial.print(
" - <mean_step_dur>: ");
283 Serial.println(conf.mean_step_dur);
284 Serial.print(
" - <filter_coeff_b2>: ");
285 Serial.println(conf.filter_coeff_b2);
286 Serial.print(
" - <filter_coeff_b1>: ");
287 Serial.println(conf.filter_coeff_b1);
288 Serial.print(
" - <filter_coeff_b0>: ");
289 Serial.println(conf.filter_coeff_b0);
290 Serial.print(
" - <filter_coeff_a2>: ");
291 Serial.println(conf.filter_coeff_a2);
292 Serial.print(
" - <filter_coeff_a1>: ");
293 Serial.println(conf.filter_coeff_a1);
294 Serial.print(
" - <filter_cascade_enabled>: ");
295 Serial.println(conf.filter_cascade_enabled);
296 Serial.print(
" - <peak_duration_min_walking>: ");
297 Serial.println(conf.peak_duration_min_walking);
298 Serial.print(
" - <peak_duration_min_running>: ");
299 Serial.println(conf.peak_duration_min_running);
300 Serial.print(
" - <step_duration_max>: ");
301 Serial.println(conf.step_duration_max);
302 Serial.print(
" - <step_duration_window>: ");
303 Serial.println(conf.step_duration_window);
304 Serial.print(
" - <half_step_enabled>: ");
305 Serial.println(conf.half_step_enabled);
306 Serial.print(
" - <activity_detection_factor>: ");
307 Serial.println(conf.activity_detection_factor);
308 Serial.print(
" - <activity_detection_thres>: ");
309 Serial.println(conf.activity_detection_thres);
310 Serial.print(
" - <step_counter_increment>: ");
311 Serial.println(conf.step_counter_increment);
312 Serial.print(
" - <step_duration_pp_enabled>: ");
313 Serial.println(conf.step_duration_pp_enabled);
314 Serial.print(
" - <step_dur_thres>: ");
315 Serial.println(conf.step_dur_thres);
316 Serial.print(
" - <en_mcr_pp>: ");
317 Serial.println(conf.en_mcr_pp);
318 Serial.print(
" - <mcr_thres>: ");
319 Serial.println(conf.mcr_thres);
320 Serial.print(
" - <sc_26>: ");
321 Serial.println(conf.sc_26);
322 Serial.print(
" - <sc_27>: ");
323 Serial.println(conf.sc_27);
324 Serial.println(
"Change Step Counter configuration.");
325 conf.env_min_dist_up = 10;
327 Serial.println(
"Failed to set Step Counter configuration");
330 Serial.println(
"Get Step Counter configuration again.");
332 Serial.println(
"Failed to get Step Counter configuration");
335 Serial.println(
" Step Counter configuration:");
336 Serial.print(
" - <env_min_dist_up>: ");
337 Serial.println(conf.env_min_dist_up);
338 Serial.print(
" - <env_coef_up>: ");
339 Serial.println(conf.env_coef_up);
340 Serial.print(
" - <env_min_dist_down>: ");
341 Serial.println(conf.env_min_dist_down);
342 Serial.print(
" - <env_coef_down>: ");
343 Serial.println(conf.env_coef_down);
344 Serial.print(
" - <step_buffer_size>: ");
345 Serial.println(conf.step_buffer_size);
346 Serial.print(
" - <mean_val_decay>: ");
347 Serial.println(conf.mean_val_decay);
348 Serial.print(
" - <mean_step_dur>: ");
349 Serial.println(conf.mean_step_dur);
350 Serial.print(
" - <filter_coeff_b2>: ");
351 Serial.println(conf.filter_coeff_b2);
352 Serial.print(
" - <filter_coeff_b1>: ");
353 Serial.println(conf.filter_coeff_b1);
354 Serial.print(
" - <filter_coeff_b0>: ");
355 Serial.println(conf.filter_coeff_b0);
356 Serial.print(
" - <filter_coeff_a2>: ");
357 Serial.println(conf.filter_coeff_a2);
358 Serial.print(
" - <filter_coeff_a1>: ");
359 Serial.println(conf.filter_coeff_a1);
360 Serial.print(
" - <filter_cascade_enabled>: ");
361 Serial.println(conf.filter_cascade_enabled);
362 Serial.print(
" - <peak_duration_min_walking>: ");
363 Serial.println(conf.peak_duration_min_walking);
364 Serial.print(
" - <peak_duration_min_running>: ");
365 Serial.println(conf.peak_duration_min_running);
366 Serial.print(
" - <step_duration_max>: ");
367 Serial.println(conf.step_duration_max);
368 Serial.print(
" - <step_duration_window>: ");
369 Serial.println(conf.step_duration_window);
370 Serial.print(
" - <half_step_enabled>: ");
371 Serial.println(conf.half_step_enabled);
372 Serial.print(
" - <activity_detection_factor>: ");
373 Serial.println(conf.activity_detection_factor);
374 Serial.print(
" - <activity_detection_thres>: ");
375 Serial.println(conf.activity_detection_thres);
376 Serial.print(
" - <step_counter_increment>: ");
377 Serial.println(conf.step_counter_increment);
378 Serial.print(
" - <step_duration_pp_enabled>: ");
379 Serial.println(conf.step_duration_pp_enabled);
380 Serial.print(
" - <step_dur_thres>: ");
381 Serial.println(conf.step_dur_thres);
382 Serial.print(
" - <en_mcr_pp>: ");
383 Serial.println(conf.en_mcr_pp);
384 Serial.print(
" - <mcr_thres>: ");
385 Serial.println(conf.mcr_thres);
386 Serial.print(
" - <sc_26>: ");
387 Serial.println(conf.sc_26);
388 Serial.print(
" - <sc_27>: ");
389 Serial.println(conf.sc_27);