Sleep mode for bmp280

  • Hello,

    I try to build a battery powered temperature sensor but I only found one sensor who works with low power under 2 volt. This is the bmp280 from bosch. But in i2c mode he need a power from 0,6mA so my battery life are only 2 month. Now the library from adafruit runs the sensor in normal mode and so I insert two new functions in the library:

    void Adafruit_BMP280::sleep() {
    write8(BMP280_REGISTER_CONTROL, 0x3C);

    void Adafruit_BMP280::wakeup() {
    write8(BMP280_REGISTER_CONTROL, 0x3F);

    The first one write 00 to the first bits in the data register - the sleep mode.
    The wakeup function rewrite the first bits with 11 - the normal mode.

    void loop() {

    Temp = bmp.readTemperature();
    Press = bmp.readPressure() / 100.0;
    Altit = bmp.readAltitude(1013.25);




    Now the sketch needs only 0,2µA in the sleep mode - it is much more better than 0,6mA.

    Best regards


  • Mod

    If you don't want to deal with low voltages, you could get some LiFePO4 batteries that run at 3.3V

  • Hardware Contributor

    Another hack is to power it from a mcu digital pin and set the pin high/low.

  • Mod

    @sundberg84 if it is really 0,2µA it is actually astonishing already

  • Oh no it is 2µA😰

  • Mod

    it is still better then the 5-6 uA I get from mine

  • Just wanted to say thanks for this, it is still relevant and useful six years later !

Log in to reply

Suggested Topics

  • 87
  • 8
  • 1
  • 3
  • 5
  • 2