I am using Fanstel BT832 module based on nRF52832. I am using 'nRF5_SDK_14.2.0_17b948a' with 's132_nrf52_5.1.0_softdevice.hex'.
I am using this module as the BLE peripheral device and Raspberry Pi3 as BLE central.
My slave module is battery operated contains BT832 and e-ink display connected via SPI.
In my application Host(Raspberry Pi) sends Image Data to Slave(BT832) on user update event. Currently, I have tested this application by modifying ble_app_uart and it works perfectly.
I have changed MIN_CONN_INTERVAL to 7.5ms for lower data transmission time. And it takes around 30 sec for sending 60KB of data.
Below is the power consumption results.
BLE advertisement: 3.9 mA
BLE data transmission: 5.7 mA
Image Update to E-Ink Display via SPI : 11.7 mA
As this is a battery operated device I need to minimize the power consumption. I am thinking below points
1. As Host needs to send data to slave only a few times in a day. I am thinking to advertise on a 10-20 sec period. And after sending 1-2 advertisement packet module goes into System OFF Mode to save power. So what changes do I need in ble_app_uart application to achieve this? I have tried ble_app_pwr_profiling but I am confused between 2 modes, Connectable mode & Non-connectable mode. So which mode suits best for my application. Slave module just need to ask the host periodically that is there any image update request? If yes, start data transmission and if no go to sleep. So which mode suits for this?
2. And after receiving the image data over Bluetooth, It takes another 30 sec to update the image on e-ink display. So is there anyway so I completely turn off Bluetooth and only run MCU for SPI transmission?