From 0521ea37a9162f1872fc3d18f71558ae4ac0fe38 Mon Sep 17 00:00:00 2001 From: Th3maz1ng Date: Sat, 2 Dec 2023 22:31:01 +0100 Subject: [PATCH] Now setting some BLE connection parameters to try improving the watch's power consumption, shaved two mA off :( --- src/W800_SDK_v1.00.10/app/gfx/gfx_task.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/W800_SDK_v1.00.10/app/gfx/gfx_task.c b/src/W800_SDK_v1.00.10/app/gfx/gfx_task.c index 4bb64d2..970b1df 100644 --- a/src/W800_SDK_v1.00.10/app/gfx/gfx_task.c +++ b/src/W800_SDK_v1.00.10/app/gfx/gfx_task.c @@ -302,7 +302,7 @@ static void setBLEEnabledCb(bool *enabled, SettingMode_e mode) else { watch_settings_connectivity_set_ble_enabled(*enabled); - //Let's turn the BLE on or OFF here + // Let's turn the BLE on or off here if(*enabled) { if(!ble_modem_on(true, true)) @@ -524,7 +524,7 @@ static void ble_service_nus_data_rx_cb(const uint8_t *data, uint16_t length) gadget_bridge_parser_feed((const char *)data, length); while(gadget_bridge_parser_run() == GADGET_BRIDGE_PARSER_CODE_PARSING); } - +static uint32_t bt_ctrl_sleep_ms = 0; static void ble_service_state_change_cb(ble_service_state_e ble_service_state) { switch(ble_service_state) @@ -533,6 +533,17 @@ static void ble_service_state_change_cb(ble_service_state_e ble_service_state) watch_face_set_bluetooth_indicator(&watchFace, BLUETOOTH_STATE_CONNECTED); find_my_phone_screen_notify_BLE_connection_state(&findMyPhoneScreen, true); music_player_screen_notify_BLE_connection_state(&musicPlayerScreen, true); + // Let's request a BLE connection parameters update + ble_service_update_connection_parameters( + 84, // itvl_min 105 ms + 120, // itvl_max 150 ms + 5, // latency 5 + 1000, // supervision timeout 10 s + 0x0010, // min connection event length 10 ms + 0x0300 // max connection event length 480 ms + ); + // Let's request a MTU update + ble_service_request_mtu_exchange(); break; case BLE_SERVICE_MODE_ADVERTISING: watch_face_set_bluetooth_indicator(&watchFace, BLUETOOTH_STATE_ON);