Pico W higher idle current consumption after receiving BLE scan results #1696

Open
opened 2024-05-04 15:52:37 -05:00 by matsobdev · 0 comments
matsobdev commented 2024-05-04 15:52:37 -05:00 (Migrated from github.com)

When there is no communication between CYW43439 and RP2040 (no CYW GPIO, nor HCI commands for Bluetooth), current consumption will drop by about 5 mA (at 3,6 V VSYS).
When starting LE scan for advertisements with no advertisements present, depending scan window and interval setting it will go higher accordingly, but after approx. 3 seconds will drop by 5 mA as expected again. When advertisements will be in range and events start coming to RP2040, current consumption will boost that 5 mA. Turning off advertisements will stops events traffic, thus after 3 seconds current consumption will drop not by 5 mA, but only 1 mA.
Starting and stopping scan couple seconds on, couple seconds off make it a bit harder to latch at that higher idle power consumption state, but turning advertisements on and off during scan on time will make it happen eventually.
Starting scan when advertisements are present will not cause that phenomenon to happen at the first absence of advertisements, so turning advertisements off will cause current consumption to be lowered by 5 mA. But turning them back on and off, and current drop will be about 1 mA.
Using whitelist and having non-matching advertisements equals to no-whitelist without advertisements present at all scenario. Matching advertisements presence with whitelist scan acts the same as no-whitelist scan with advertisements presence. Pico W scans only, advertisements coming from a remote device(s), to be clear. For example, hundreds onboard LED toggles doesn't trigger this behaviour.
This is not a BTstack issue. Using only HCI commands (reset, scan parameters and scan on) without BTstack involved at build time ends up with the same behaviour.
Some files to play with: bug.zip

When there is no communication between CYW43439 and RP2040 (no CYW GPIO, nor HCI commands for Bluetooth), current consumption will drop by about 5 mA (at 3,6 V VSYS). When starting LE scan for advertisements with no advertisements present, depending scan window and interval setting it will go higher accordingly, but after approx. 3 seconds will drop by 5 mA as expected again. When advertisements will be in range and events start coming to RP2040, current consumption will boost that 5 mA. Turning off advertisements will stops events traffic, thus after 3 seconds current consumption will drop not by 5 mA, but only 1 mA. Starting and stopping scan couple seconds on, couple seconds off make it a bit harder to latch at that higher idle power consumption state, but turning advertisements on and off during scan on time will make it happen eventually. Starting scan when advertisements are present will not cause that phenomenon to happen at the first absence of advertisements, so turning advertisements off will cause current consumption to be lowered by 5 mA. But turning them back on and off, and current drop will be about 1 mA. Using whitelist and having non-matching advertisements equals to no-whitelist without advertisements present at all scenario. Matching advertisements presence with whitelist scan acts the same as no-whitelist scan with advertisements presence. Pico W scans only, advertisements coming from a remote device(s), to be clear. For example, hundreds onboard LED toggles doesn't trigger this behaviour. This is not a BTstack issue. Using only HCI commands (reset, scan parameters and scan on) without BTstack involved at build time ends up with the same behaviour. Some files to play with: [bug.zip](https://github.com/raspberrypi/pico-sdk/files/15210968/bug.zip)
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-raspberrypi/pico-sdk#1696
No description provided.