powerpods/main/bosch456.h
simon ee38ce551a Add accelerometer deadzone via UART and ESP-NOW.
Filter BMA456 logs by configurable LSB threshold; master can set deadzone
for local sensor or slaves using ACCEL_DEADZONE (UART) and ESP-NOW broadcast
until unicast delivery is restored.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-18 23:06:25 +02:00

26 lines
648 B
C

#ifndef BOSCH456_H
#define BOSCH456_H
#include "driver/i2c_types.h"
#include "esp_err.h"
#define TOUCH_1 9
#define TOUCH_2 8
#define BMA456_ADDRESS 0x18
#define BMA456_DEFAULT_ACCEL_DEADZONE 100u
/** Initialize BMA456 on the shared I2C bus. Returns ESP_OK or logs and skips sensor use. */
esp_err_t init_bma456(i2c_master_bus_handle_t bus_handle);
bool bma456_is_ready(void);
void bma456_set_accel_deadzone(uint32_t deadzone_lsb);
uint32_t bma456_get_accel_deadzone(void);
/** Log accel sample only when any axis changed more than deadzone since last report. */
void bma456_report_accel_if_changed(int16_t x, int16_t y, int16_t z);
#endif