The Challenger 840 BLE board was designed with very low power battery powered applications in mind. As such we have very carefully selected the on board components to make sure that we reach the lowest current consumption possible. Now there are still a few components on the board that will draw a considerable amount of current (relatively) and in this article we will have a look on how to deal with that.
First off, take a few moments to familiarize yourself with the schematic below.
The biggest and most obvious thing in the schematic is the BLE/MCU module down to the left. This is a module based on the Nordic Semiconductors BLE device called nRF52840. The nRF52840 is a combined MCU and BLE radio using a highly sophisticated on-chip adaptive power management system for exceptionally low energy consumption.
As we will see later on this component can be configured to use extremely small amounts of current while still functioning fully.
The external FLASH memory
The board is also equipped with an external flash memory that can be used for storing data or possibly for storing Python code if you are using Micropython or Circuitpython. When not used this part will enter a sleep mode where it will consume (according to the datasheet) anything from 10uA up to 50uA. Practical tests have shown that they rarely consume more than ~15uA.
It is also possible to put the part into a deep sleep mode by using the SPI bus to send a sleep command in which it will consume (again from the data sheet) between 1uA and 15uA. Again practical tests shows that this current rarely exceeds 2uA.
The on board LiPo battery charger is based on the MCP73831 design but have in recent production batches, due to availability, been replaced with a chip called HX4054A. Both devices have the same ratings of a current consumption of 0uA to 2uA when running in battery only mode. This is a little harder to measure accurately but estimates made based on the total consumption seem to indicate sub 1uA consumption.
Of course, this only applies when running only on the battery. While charging it can source the battery up to 500mA.
This little bastard is a real current hog. Even when no LED’s a lit up it will draw around 1mA just sitting there, doing nothing. But as you can see in the schematic it is being sourced from a separate LDO on the board (V+). This LDO is controlled directly by the MCU and can be shut down at will. So when you don’t need the RGB LED you can simply turn the power to it off and the only consumption left is from the LDO in power down mode which is less than 1 uA.
The UF2 boot loader enables this LDO during startup so you need to turn it off to reach the really low power consumption this board is capable of.
External I2C on the Bi2C connector
This board also includes the Bi2C connector that allows you to hook up external I2C devices using very thin FPC. In order to be able to reach the very low currents the board is capable of there is a mechanism to shut down the power on this connector. The +3V3 line on the connector is connected to the same LDO as the RGB LED which allows the programmer to shut down the power to the connector by disabling this LDO.
Special care needs to be taken when doing this though. Some I2C devices can cause current leakage from the connected data and clock pins, when powered down, which can increase the current in your circuit.
The board is equipped with two LDO’s for powering the device. Both are the same low quiescent current versions with ~1uA quiescent consumption when enabled and 100nA when shut down. The primary LDO (U2) is used to power the MCU/BLE module and provides the externally available 3.3V.
The other LDO (U4) only powers the RGB LED and the Bi2C connector. This LDO can also be put shut down using the GPIO signal V_EN (P1.09) from the MCU which significantly reduces the power consumption of the board.
Battery measurement resistors
In order to be able to measure remaining battery capacity we have installed a resistor divider that brings the voltage down from max 4.2 to 2.1 V. This is fed to the A/D converter from which the MCU then can read and calculate the remaining capacity of the attached battery. This could also be used to detect if a battery is attached or not.
This resistor ladder have a total of 480Kohm in series with the 3.3V and can consume up to 6.9uA.
Ok, so now we know a little bit more on what we have to work with. In the next chapter we will have a look at how we can create a low power beacon and what we need to consider implementing this.