Sleep module DW1000 UWB

Hi, I use this library with my DW1000 and my arduino: https://github.com/thotro/arduino-dw1000

It works perfectly. My question is: how do I make them sleep so they don't consume so much energy when I'm not using it?

What is the function?

For example, for the tag: arduino-dw1000/DW1000Ranging_TAG.ino at master · thotro/arduino-dw1000 · GitHub

It always has a loop running DW1000Ranging.loop();
That makes it always looking to receive the signal, and it still draws 160mA. If it is in sleep mode, the module consumes 3.5 mA.

How do I activate sleep mode? Any solution?

I want to do it when I press a button, for example:

void sleepControl() {
  if (button == 1) {
    //Enable UWB
    DW1000Ranging.loop();
  }
  //Disable UWB
  else if (button == 2) {
    Serial.println("Waiting");
  }
}

I know nothing about DW1000 but take look at public methods in the include file. arduino-dw1000/DW1000.h at master · thotro/arduino-dw1000 · GitHub

I would try the funtion named deepSleep and see if it works. The DW1000 datasheet or related docs may include power management advice when running on battery.

If using ESP32, search for "deepsleep esp32". There is no shortage of information about ESP32.

1 Like

The ESP32 and Arduino code is the same, I already tried it and it works fine.

You tell me that if I put that function it will go to sleep, right?
Example:

void sleepControl() {
  if (button == 1) {
    //Enable UWB
    Serial.println("Starting");
    DW1000Ranging.loop();
  }
  //Disable UWB
  else if (button == 2) {
    Serial.println("Waiting");
    deepSleep();
  }
}

or...

DW1000Ranging.deepSleep();

I don't see any reference to that on internet (DW1000Ranging.deepSleep();).

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.