Bluetooth Radio States
Practically the only significant part that consumes a lot of power in Bluetooth modems is their radio transceiver. If the radio is switched off the module draws only small quiescent current (less than 2mA in BTM431). Radio is activated by modem to perform one of the following three actions:
- to do a page scan,
- to do an inquiry scan,
- to transfer data to a connected device.
Scanning a page means looking for new incoming connections from known (already paired) devices. When page scanning is ON, the modem is in a connectable state.
Inquiry scanning means answering to enumeration requests from nearby devices that are discovering receivers in their vicinity. When inquiry scanning is ON, the modem is discoverable for so-far unknown new devices.
Page scanning and inquiry scanning are two completely orthogonal functions. They can be switched on and off independently.
Page and inquiry scanning is performed periodically. To save power we can set longer periods between scans, at the expense of longer latency of answering incoming connection and enumeration requests.
BTM431 in the Default Mode
PIP-Watch Zero uses the BTM431 Bluetooth modem from Laird Technologies. The oscilogram below shows power consumption of PIP-Watch when the modem is in its default “medium power” mode, and the modem performs both the page and inquiry scans (AT+BTP). This mode provides fast responses to incoming connection and enumeration requests at the expanse of relatively large power consumption. Radio is quiescent for 0.3s, then it is active for 0.3s and drawing around 50mA.
The first thing we could do about it is disabling inquiry scans and allowing only page scans (AT+BTG). This effective hides PIP-Watch from new devices but still allows paired devices to connect. Power is consumed for 0.15s every 0.45s, the draw is 50mA. Average power is roughly halved to 17mA, the battery would last 50 hours, or 2 days at best.
The real breakthrough comes when we play with parameters of the pages scans. The BTM431 modem has a minimal power mode which is activated by the command AT&F1. In this mode it performs scans using the longest periods, thus activating its radio quite infrequently. (In fact, the page-scan period of 2.5s is so long that incoming connection request from a phone sometimes fails because of timeouts! I fixed this issue by halving the page-scan period to 1.2s using command ATS508=1200.)
The oscilogram below shows that radio is activated only once per 1.2s and only for a short moment – the digital scope took only one sample at peaks.
The picture below is the detail of the power peak when radio is activated during a page scan. The peak takes about 15ms and the current consumption is 50mA.
At the quiescent current 6mA, with only occasional peaks for radio and blinking LEDs, I expect PIP-Watch to work from full battery for about 100 hours, or more than four days.
I charged the battery on Friday morning to the peak voltage 4.2V; at this moment on Monday evening – after 85 hours – the voltage dropped to 3.82V. The minimal useful voltage could be somewhere around 3.4V. Hence the battery remaining charge is somewhere around 50% its capacity. I expect that 100 hours on battery will be easily surpassed.
Tip: see in this source code how the Bluetooth modem in PIP-Watch is configured after reset.