Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP32 WiFi Lora Board - deep-sleep power consumption #6

Open
rmh78 opened this issue Nov 27, 2017 · 110 comments
Open

ESP32 WiFi Lora Board - deep-sleep power consumption #6

rmh78 opened this issue Nov 27, 2017 · 110 comments

Comments

@rmh78
Copy link

@rmh78 rmh78 commented Nov 27, 2017

Hardware:

Board: Heltec ESP32 WiFi Lora Board Core
Installation/update date: 25/nov/2017
IDE name: Arduino IDE
Flash Frequency: 80Mhz
Upload Speed: 921600

Description:

I want to set the esp32 to deep sleep mode and measure the power consumption. The esp32 specification says that the power consumption should be in the µA range. My measurement is between 3mA and 10mA in deep-sleep mode. I'm powering the board with 3.7V lipo on the 3.3V input pin.

Sketch:

#include "esp_sleep.h"

#define uS_TO_S_FACTOR 1000000  /* Conversion factor for micro seconds to seconds */
#define TIME_TO_SLEEP  60       /* Time ESP32 will go to sleep (in seconds) */

void setup() {
  Serial.begin(115200);
  delay(1000); 

  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
  esp_sleep_pd_config(ESP_PD_DOMAIN_MAX, ESP_PD_OPTION_OFF);
  esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);
  esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_OFF);
  esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_OFF);
}

void loop(){
  delay(5000);
  esp_deep_sleep_start();
}
@Heltec-Aaron-Lee
Copy link
Owner

@Heltec-Aaron-Lee Heltec-Aaron-Lee commented Nov 28, 2017

Seems you did't turn off the OLED's charger pump and set OLED into sleep mode, you may test with fellow codes:

display.sendCommand(0x8D); //into charger pump set mode
display.sendCommand(0x10); //turn off charger pump
display.sendCommand(0xAE); //set OLED sleep

@urs8000
Copy link

@urs8000 urs8000 commented Nov 28, 2017

display.sendCommand(0x8D);
what additional library and initialization is needed for the three commands?
thanks for your help & info

@rmh78
Copy link
Author

@rmh78 rmh78 commented Nov 28, 2017

@Heltec-Aaron-Lee
STILL NOT WORKING
I changed my sample program and added the lines of code to turn off the OLED charger pump and the OLED itself. But the power consumption stays the same (about 5mA). Any other suggestions to reduce power consumption down in the µA range. It would be great if you can provide us with an arduino sketch.

This is my changed program. Please double-check it.

#include <Wire.h>
#include "SSD1306.h"
#include "esp_sleep.h"

#define uS_TO_S_FACTOR 1000000  /* Conversion factor for micro seconds to seconds */
#define TIME_TO_SLEEP  20       /* Time ESP32 will go to sleep (in seconds) */
RTC_DATA_ATTR int bootCount = 0;

SSD1306 display(0x3c, 4, 15);

void setup() 
{
  Serial.begin(115200);
  delay(1000); 

  initOled();
  display.drawString(0, 0, "hello world");
  display.display();
  delay(2000); 

  sendCommand(0x8D); //into charger pump set mode
  sendCommand(0x10); //turn off charger pump
  sendCommand(0xAE); //set OLED sleep

  delay(5000);
  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
  esp_sleep_pd_config(ESP_PD_DOMAIN_MAX, ESP_PD_OPTION_OFF);
  esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);
  esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_OFF);
  esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_OFF);
  esp_deep_sleep_start();
}

void loop()
{
}

void initOled() 
{
  pinMode(16,OUTPUT);
  digitalWrite(16, LOW);    // set GPIO16 low to reset OLED
  delay(50); 
  digitalWrite(16, HIGH);   // while OLED is running, must set GPIO16 in high

  display.init();
  display.flipScreenVertically();
  display.setFont(ArialMT_Plain_10);
  display.clear();
}

void sendCommand(unsigned char command)
{
  Wire.beginTransmission(0x3C); // oled adress
  Wire.write(0x80); // command mode
  Wire.write(command);
  Wire.endTransmission();
}
@urs8000
Copy link

@urs8000 urs8000 commented Nov 28, 2017

@gbiohazard
Copy link

@gbiohazard gbiohazard commented Dec 3, 2017

Same trouble here, I'm stucked with 10 mA with everything sleeping..
Any solution ?
Thanks

@gbiohazard
Copy link

@gbiohazard gbiohazard commented Dec 3, 2017

I removed the oled display and the board is still draining 10mA.

@mrsnut
Copy link

@mrsnut mrsnut commented Dec 29, 2017

Is there any news about this?

@baxtery
Copy link

@baxtery baxtery commented Jan 14, 2018

powering at 5v : i have similar measurements, with LoRa and DHT-> 94 mA, without Lora active 46 mA and in deep sleep 11 mA.
sleep and wake up works fine
powering at 3.3v, i get 31mA but thats it, no sleep, how did u poer at 3.3 directly?

@kovir
Copy link

@kovir kovir commented Feb 15, 2018

@baxtery Have You got DHT sensor (temp and humid) working with OLED?

@agirolami87
Copy link

@agirolami87 agirolami87 commented Mar 8, 2018

Same issue, in deep sleep mode 11mA.
Any news ?
Thanks

@DeuxVis
Copy link

@DeuxVis DeuxVis commented Mar 8, 2018

This maybe can help reduce the consumption : #17 (comment)

"If you power the device from the 3.3V pin the battery charger won't be enabled"

@agirolami87
Copy link

@agirolami87 agirolami87 commented Mar 8, 2018

@DeuxVis I already tried in my tests, but without improvements.

@unimatrix099
Copy link

@unimatrix099 unimatrix099 commented Mar 14, 2018

I have 2 boards, both have this issue, in deep sleep power consumption is ~17 mA. So it can't be used on battery power. Please tell us if this is a software issue or a hardware design issue.

@unimatrix099
Copy link

@unimatrix099 unimatrix099 commented Mar 14, 2018

Also, where can we review the hardware design/schematic?

@gbiohazard
Copy link

@gbiohazard gbiohazard commented Mar 14, 2018

Hi,

It is hardware design issue.
TM.

@ToninoTarsi
Copy link

@ToninoTarsi ToninoTarsi commented Mar 16, 2018

I'm thinking to use this board for my project but 10mA in deep sleep will be a very big problem.
Did someone solve this problem ?

@unimatrix099
Copy link

@unimatrix099 unimatrix099 commented Mar 17, 2018

@gbiohazard Thank you

@ayhoung
Copy link

@ayhoung ayhoung commented Mar 19, 2018

@gbiohazard any clue where the specific issue is?

@gbiohazard
Copy link

@gbiohazard gbiohazard commented Mar 19, 2018

Here are the tests I made (initially on https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-1/10247)

Using Heltec LoRa board:
Deep sleep 10.2mA
Deep sleep OLED Off 10.2mA
Deep sleep OLED unsoldered 10mA
Deep sleep OLED and BMS (battery managing system (mcp73831 ?)) and LED remvoed : 2.6mA
Deel sleep without : OLED, BMS, LED, CP210x : 2.6mA

Using Esp32 Core Board (LED removed):
Deep sleep 4.5µA

Using ESP32 Core Board (LED removed) and NiceRF LoRa1276 (sx1276 based module):
Deep sleep 1.76mA

Analysis:
The sx127x can reach 1µA in deep sleep, so the total would be 5.5µA. BUT, the crystal used
is a TCXO, which remains powered continuously.
As I explained in thethingsnetwork topic, you'll have to power off the crystal (e.g. using µC pin and Mosfet) to achieve the expected low power consumption in deep sleep mode. If you still want to deep sleep µC while the LoRa is in listing mode (µC wake up by interrupt), the µC pin must be able to hold its state in deep sleep (the esp32 can on specific RTC pins).

See:

esp_err_t rtc_gpio_hold_en(gpio_num_t gpio_num)
Enabling HOLD function will cause the pad to latch current values of input enable, output enable, output value, function, drive strength values. This function is useful when going into light or deep sleep mode to prevent the pin configuration from changing.

Sorry for my english (FR).

@baxtery
Copy link

@baxtery baxtery commented Mar 19, 2018

i think we should design a PCB with a step up, a mosfet, esp32 and an SX1276 and wait for someone in china to copy it and sell it cheap on aliexpress :)

@baxtery
Copy link

@baxtery baxtery commented Mar 19, 2018

but if we power off the sx, does OTAA still work after waking up from deepsleep?

@mpatafio
Copy link

@mpatafio mpatafio commented Mar 26, 2018

@kovir I did it! use the PIN 22 ;)

@goran-mahovlic
Copy link

@goran-mahovlic goran-mahovlic commented Mar 28, 2018

I did try to wirite 0x00 to REG_TCXO - and get same consumption.

Do you have some working schematic how should TXCO powering look?

I did check schematics now and my measuring are for 32k clock...

dio1 It is off when in sleep and has only slight jump when sending
Ok connected scope and it is only powered on while transmitting...
Sending is set to SF7.

dscf0298

@goran-mahovlic
Copy link

@goran-mahovlic goran-mahovlic commented Mar 29, 2018

But then you can check this module it claims StandBy current is 1uA and it does not have pin to enable disable TXCO so it should be somehow possible to disable it with registers...
Dorji

There is some code in pdf files So I will try this at home ...

void sx1276_7_8_Standby(void)
{
//SPIWrite(LR_RegOpMode,0x09); //Standby//Low
Frequency Mode
SPIWrite(LR_RegOpMode,0x01); //Standby//High
Frequency Mode
SPIWrite(REG_LR_DIOMAPPING2,0x40); //DIO4 01
}
/**********************************************************
**Name: sx1276_7_8_Sleep
**Function: Entry sleep mode
**Input: None
**Output: None
**********************************************************/
void sx1276_7_8_Sleep(void)
{
//SPIWrite(LR_RegOpMode,0x08); //Sleep//Low
Frequency Mode
SPIWrite(LR_RegOpMode,0x00); //Sleep//High
Frequency Mode
SPIWrite(REG_LR_DIOMAPPING2,0x40); //DIO4 01
}

@goran-mahovlic
Copy link

@goran-mahovlic goran-mahovlic commented Mar 31, 2018

Without removing any hardware parts I am down to 4mA.
And putting the same code on ESP32 Devkit V1 board got 5mA
1mA more is probably because LED that is connected directly to 3.3V
And I can see online that this board has problems with low power to...

So I would say that SX part is maybe not the problem.

Problem could be that we maybe need to check is ESP really going to right SLEEP mode.
I have read that for true ultra low power you need to recompile few files to enable only one CPU core and set 32KHz as a main oscillator in LPM. I did try something but still have higher consumption then in original repo...

Removing BMS and LEDS did not lower consumption got 4-5mA with and without BMS.

Put BMS back did not put LEDS back and now I have 2.56mA (It was 4 without LEDS, maybe I did change something in code but I do not think I did)

My instrument cannot get consumption in mA while SX is sending so Im powering from USB until first send, and after that I disconnect USB...
It seams that connecting it just to USB first and disconnecting it from USB did the trick with lowering to 2.5mA - If I just start same code just from battery it drains 10mA.
After that it just powering up every minute and sends messages and goes into sleep consuming 2.5mA

https://gist.github.com/goran-mahovlic/72833b26fd61ecc04fcf0f74bffad575

https://youtu.be/Dt8NZsSrXiM

@johannes-777
Copy link

@johannes-777 johannes-777 commented Jun 19, 2018

Hi Goran,
Thank you so much for taking the time to describe this issue. I tested with 3 different boards and thought I was crazy.

I have the same issue: If I plug my board into a USB-plug (and the Linux recognizes the new device), the power consumption is around 3mA. If I only power form Lipo (or a USB Power Bank), it is 11.7mA (with some sensors). If I power with Computer first and then hotswap to Battery, 3mA remain.
With 3mA my Battery application could last almost half a year (4x18650 with 3500mA), but 11,7mA is really a pain.
I thought I would change the startup code and began with disabling the Serial (Serial.end()) port before esp_deep_sleep_start(), but that would have been too nice :-) Then I digged depper in "/home/nemo/arduino-1.8.5/hardware/espressif/esp32/cores/esp32", but couldn't find the startup code for the serial port. Do you have any idea? Or is it hidden in Rom?

@goran-mahovlic
Copy link

@goran-mahovlic goran-mahovlic commented Jun 20, 2018

There is only one thing I have read after my post in TTN forum, but did not have time to try:
https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-2/11973/568

When you put the ESP32 into deep sleep the GPIO pins go into high impedance mode, which is not good for devices on the SPI bus, such as LoRa.
With the SPI bus high Z the LoRa device (also in sleep mode) takes the sleep current up to 120uA, not good.
If you add pullup resistors on the 3 SPI pins and the LoRa device select pin, sleep current of an ESP32 and LoRa device is 7uA.
Also note that although you should be able to leave the LoRa NRESET pin floating (it has its own internal pullup) if your driving it with the ESP32 then add an external pullup resistor, the ESP32 in deep sleep drags this pin low.

@gbiohazard
Copy link

@gbiohazard gbiohazard commented Jun 20, 2018

One important thing to understand is that NSS (SPI Cable Select) is active low. In deep sleep mode, the esp32 releases all outputs state to low, so the LoRa chip becomes active again. The trick is to use the rtc_gpio_hold_en(gpio_num_t gpio_num) function to keep HIGH the NSS pin.

But wait, in deep sleep mode, only some specific pins are available to control: RTC pins.

  • GPIO18, used for NSS on the Heltec LoRa 32, isn't an RTC pins.
  • In deep sleep mode, GPIO18 will always go low
  • In deep sleep, LoRa chip will always be in standby mode (about 1.5 mA).

With my LoRa1276 (NiceRF) module, it stays <1µA when the esp32 is in deep sleep (GPIO04 NSS)

@johannes-777
Copy link

@johannes-777 johannes-777 commented Jun 20, 2018

Chip Select and Active Low is a good point :-)
I will try this out and might be able to safe 1-2mA.
However, I don't see this connected to the "Plug me into a proper USB host first if you want low power Problem." Only after the USB-Serial converter is recognized by a host, the deep sleep power drops from around 10 to 3mA. However, if it restarts on Battery, it will be 10mA again.
This might be a bad design issue. I read that the firebeetle-esp32 has a good low power of less than 1mA. Which boards can you recommend?

@bradmcl
Copy link

@bradmcl bradmcl commented Jul 8, 2018

So, if the schematics at https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/tree/master/SchematicDiagram are correct, and I'm reading the info on the CP2102 correctly at https://www.silabs.com/documents/public/data-sheets/CP2102-9.pdf and https://www.silabs.com/community/interface/knowledge-base.entry.html/2004/04/20/cp210x_current_draw-OUVM then it appears that if you start with a USB host, the CP2102 goes active, and then goes to Suspend after the USB is disconnected. If you just power up on battery, then it stays active looking for a USB connection. Apparently if there were a way to force the reset pin low you would get the Suspend level of power usage, but this board feeds the 5V bus from VBAT as part of the LDO circuit. If there was another diode in the LDO circuit between 5V and pin 1 of the U1 LDO ( and possibly a weak pulldown on pin 9 !RST of the CP2102 it would likely eliminate the problem; alternatively, if there was a way to use software to pull pin 9 !RST of the CP2102 low - by wiring it to an IO pin ( 3.3v vs 5v issue to solve ) then you could also force the state. So as others have said elsewhere, it is a hardware design issue on this board.

Depending on the board layout, it may be possible to cut a trace to isolate 5V from VBAT; you would be required to power the board separately from the USB even when using the USB, but it might solve the power drain when not on USB.

@Heltec-Aaron-Lee
Copy link
Owner

@Heltec-Aaron-Lee Heltec-Aaron-Lee commented Sep 26, 2019

@Skipper-is Hi there
After several months of development and testing, the CubeCell series is released!

This is an all-new platform, we made ASR6501/ASR6502 (PSoC 4000 series MCU and SX1262) fully support with Arduino. which is friendly for LoRa developers. Hope you can take a few minutes to look at it, I believe you will like our new project.

@Skipper-is
Copy link

@Skipper-is Skipper-is commented Sep 28, 2019

Oh awesome! I've just ordered 4 of the dev boards, looking forward to deploying them! Got a couple of wifi stick lite's deployed at the moment, and they're doing really well with battery usage. Really cool that it comes with solar power management and LiPo management, cuts right down on all the extra bits I needed!

@Beliwars
Copy link

@Beliwars Beliwars commented Nov 13, 2019

@frankheisig71 Just for info, I bought 2 TTGO Lora clones (it was for starting a project and was the cheaper I found, for V2 I will buy Panda Boards) anyway I cut the 5V track and souder the lipo + as you said (I also added a jumper to reconnect it to 5V for programming without battery)
I got down to 1.18 mA, but I'm not using Heltec library or board descriptor; I set the GPIOs to INPUT as @andrelmbraga said.

My question is: would using the HelTec library help me get even lower (to your 900uA for example)? for my application I'm using MCCI LMIC for connecting to a private ttn like GW (OTAA)

I brought the consumption from 12 to 1.18 mA so I'm mostly happy with the hack.

Thanks in advance and best regards

@frankheisig71
Copy link

@frankheisig71 frankheisig71 commented Nov 14, 2019

@Beliwars
not sure if I can help you. all I did is:
void goto_sleep(int mseconds){ int ms = millis(); pinMode(5,INPUT); pinMode(14,INPUT); pinMode(15,INPUT); pinMode(16,INPUT); pinMode(17,INPUT); pinMode(18,INPUT); pinMode(19,INPUT); pinMode(26,INPUT); pinMode(27,INPUT); pinMode(GSM,INPUT); pinMode(GPS,INPUT); delay(100); esp_sleep_enable_timer_wakeup((mseconds - (millis() - ms)) * uS_TO_mS_FACTOR); esp_deep_sleep_start(); }
hope that will help

@Bitbanger1900
Copy link

@Bitbanger1900 Bitbanger1900 commented Feb 17, 2020

Hi,

Did someone tried this heltec wireless stick board with micropython and deep sleep?

With the provided heltec.h library from Lee i got this board into deep sleep with a 40uA
but when i try to do this with micropython and deep sleep i never get this board below the 3mA no matter if i put the pins mentioned above as INPUT.

@enwi
Copy link

@enwi enwi commented Mar 2, 2020

@Bitbanger1900 How are you achieving 40uA? I can only get my Wireless Stick down to 1mA

@Bitbanger1900
Copy link

@Bitbanger1900 Bitbanger1900 commented Mar 2, 2020

@enwi,

i use the heltec wireless stick lite and include the library from lee (https://github.com/HelTecAutomation/Heltec_ESP32/tree/master/src/heltec.h) together with the "BlueDot_BME280.h" and a BME280.
set the sensor mode: bme280.parameter.sensorMode = 0b01;
when i use 0b11 it takes more power!!

At this moment it is still running since 24.02 measuring every 5 minutes on battery and send it over lora to my receiver.

i would love to have it run micropython but i cannot get the power usage so far down as with Arduino IDE.

@enwi
Copy link

@enwi enwi commented Mar 2, 2020

Well I don't have the lite version, but would be interested in investigating what is using so much power or could it be the USB chip as well?

@Bitbanger1900
Copy link

@Bitbanger1900 Bitbanger1900 commented Mar 2, 2020

According the Heltec site the normal version can put into sleep with 800uA. The lite version also has no SSD1306 what could make the difference.

@enwi
Copy link

@enwi enwi commented Mar 3, 2020

That could be it, I also tried putting the OLED to sleep, but that did not have any effect on power consumption

@Heltec-Aaron-Lee
Copy link
Owner

@Heltec-Aaron-Lee Heltec-Aaron-Lee commented Mar 3, 2020

Did you set the unused pin to input mode?

@enwi
Copy link

@enwi enwi commented Mar 3, 2020

I did

@enwi
Copy link

@enwi enwi commented Mar 3, 2020

@Beliwars
not sure if I can help you. all I did is:
void goto_sleep(int mseconds){ int ms = millis(); pinMode(5,INPUT); pinMode(14,INPUT); pinMode(15,INPUT); pinMode(16,INPUT); pinMode(17,INPUT); pinMode(18,INPUT); pinMode(19,INPUT); pinMode(26,INPUT); pinMode(27,INPUT); pinMode(GSM,INPUT); pinMode(GPS,INPUT); delay(100); esp_sleep_enable_timer_wakeup((mseconds - (millis() - ms)) * uS_TO_mS_FACTOR); esp_deep_sleep_start(); }
hope that will help

Something similar to this, but added the Heltec.begin with LoRa enabled and set it to sleep (which only works and makes a difference when Heltec.begin gets called, which makes sense)

@PyramidSlayer
Copy link

@PyramidSlayer PyramidSlayer commented Mar 3, 2020

@enwi,

i use the heltec wireless stick lite and include the library from lee (https://github.com/HelTecAutomation/Heltec_ESP32/tree/master/src/heltec.h) together with the "BlueDot_BME280.h" and a BME280.
set the sensor mode: bme280.parameter.sensorMode = 0b01;
when i use 0b11 it takes more power!!

At this moment it is still running since 24.02 measuring every 5 minutes on battery and send it over lora to my receiver.

i would love to have it run micropython but i cannot get the power usage so far down as with Arduino IDE.

Unfortunately, the wireless stick lite doesn't has a good communication range (I tested two of them in 433 MHz, BW of 500 kHz, SF of 7 and CR 4/5, and the range was of only 100 meters with Line of sight :( ).
It consumes in deep mode only 50 uA, but the price to pay is a lesser communication range.

@Bitbanger1900
Copy link

@Bitbanger1900 Bitbanger1900 commented Mar 3, 2020

@PyramidSlayer: Did you also do something with the setTxPower?

@Heltec-Aaron-Lee: i find in the examples:

/*

  • LoRa.setTxPower(txPower,RFOUT_pin);
  • txPower -- 0 ~ 20
  • RFOUT_pin could be RF_PACONFIG_PASELECT_PABOOST or RF_PACONFIG_PASELECT_RFO
    • RF_PACONFIG_PASELECT_PABOOST -- LoRa single output via PABOOST, maximum output 20dBm
    • RF_PACONFIG_PASELECT_RFO -- LoRa single output via RFO_HF / RFO_LF, maximum output 14dBm
      */

Can you please explain what this is? i cannot find this back in the doc's. What is recomended?

@Heltec-Aaron-Lee
Copy link
Owner

@Heltec-Aaron-Lee Heltec-Aaron-Lee commented Mar 4, 2020

@Bitbanger1900
This will make sense to you:
image

@Heltec-Aaron-Lee
Copy link
Owner

@Heltec-Aaron-Lee Heltec-Aaron-Lee commented Mar 4, 2020

@PyramidSlayer Did you set TX power? and did make sure the working frequency is matching the hardware? and don't forget the antenna.

@Bitbanger1900
Copy link

@Bitbanger1900 Bitbanger1900 commented Mar 4, 2020

Hi Lee,

Thanks for the info! yes, it makes more sense now :)

I did not do any distance tests as it is to cold here but yes i also have to replace
the antennas as i ordered the heltecs with 433Mhz but i would say the antenna is for the 868Mhz type and that has of course a significant impact on the distance :)

@PyramidSlayer
Copy link

@PyramidSlayer PyramidSlayer commented Mar 5, 2020

@PyramidSlayer Did you set TX power? and did make sure the working frequency is matching the hardware? and don't forget the antenna.

Yes, I set the TX power to 20 dBm, I used the default pigtail antenna and the software frequency matches the hardware frequency (in my case, 433MHz).

@TheNetStriker
Copy link

@TheNetStriker TheNetStriker commented Jun 30, 2020

I also have this problem with this board from Banggood. I'm using this exampleto connect to TheThingsNetwork. I tried several software solutions in this thread, but I was not able to reduce the power consumption below 10mAH.

Is there anything other I could try to reduce the power consumption without removing components?

@Skipper-is
Copy link

@Skipper-is Skipper-is commented Jun 30, 2020

With those boards from Banggood I've not managed to get the power consumption down to sensible levels. I've tried cutting components out, and different software solutions but nothing has reduced the power to managable levels. I think they're nice little proto boards, but you just need to go for another solution for the in field applications - like the Wireless Stick Lite, or the new CubeCell boards

@TheNetStriker
Copy link

@TheNetStriker TheNetStriker commented Jun 30, 2020

@Skipper-is Thanks for the hint. The CubeCell boards look quite nice. Maybe I can use the Banggood boards for something else where power consumption does not matter.

@Skipper-is
Copy link

@Skipper-is Skipper-is commented Jun 30, 2020

Gateway? Or just pack a big battery and a big solar panel?

@TheNetStriker
Copy link

@TheNetStriker TheNetStriker commented Jul 1, 2020

@Skipper-is I already have Gateway. I think I will use them for my smoke detectors. I designed a circuit that can be attached to any cheap smoke detector that should not consume any power until smoke is detected. Then the circuit will convert the 9 Volts of the Battery to 5 Volts and this could power up the device and send a LoRa message.

@Lordcybertracker
Copy link

@Lordcybertracker Lordcybertracker commented Nov 23, 2020

Hi guys, maybe a little late, but I had the same problem with TTGO LoRa32 (V1) deep sleep power consumption and I managed it by cutting the LDO from 5V circuit and by soldering the LiPo directly to LDO.
Fortunately the LDO is wired to 5V-circuit by a more or less good reachable single track coming from right top (on my picture) to the right top corner of pin 1 of LDO.
After this change CP2102 is powered only by 5V USB and working if USB is plugged. The on board LiPo-charger of course is not working. No problem for me, because I decided to use a discrete charging module with temperature tracking and batterie protection. But you may wire pin 3 of charger and pin 1 of LDO by a shottky diode - should work.
Deep sleep power consumption now is 900uA.

Cut

(sorry for the bad picture quality...)

Gott sei dank.
Very Good.
so i must not Trash my 5 Boards.

@Heltec-Aaron-Lee
Copy link
Owner

@Heltec-Aaron-Lee Heltec-Aaron-Lee commented Nov 24, 2020

@deejot0
Copy link

@deejot0 deejot0 commented Feb 7, 2021

Hi guys, maybe a little late, but I had the same problem with TTGO LoRa32 (V1) deep sleep power consumption and I managed it by cutting the LDO from 5V circuit and by soldering the LiPo directly to LDO.
Fortunately the LDO is wired to 5V-circuit by a more or less good reachable single track coming from right top (on my picture) to the right top corner of pin 1 of LDO.
After this change CP2102 is powered only by 5V USB and working if USB is plugged. The on board LiPo-charger of course is not working. No problem for me, because I decided to use a discrete charging module with temperature tracking and batterie protection. But you may wire pin 3 of charger and pin 1 of LDO by a shottky diode - should work.
Deep sleep power consumption now is 900uA.

Gott sei dank.
Very Good.
so i must not Trash my 5 Boards.

Hello! Unfortunately I could not find a PCB layout of the LoRa32 board. Thus, it is not completely clear, what cutting the track you mentioned really does. Do you know, whether it is still possible to power the board via one of the 5V pins after the modification?

@frankheisig71
Copy link

@frankheisig71 frankheisig71 commented Feb 9, 2021

Hi deejot0, it is completely clear: cutting the track seperates the ESP32 power regulator from the 5V supply - you need to solder power directly to it, and, no you can not power ESP32 by 5Vpins any more.

@deejot0
Copy link

@deejot0 deejot0 commented Feb 15, 2021

Here is a reversible solution for those, who do not want to cut the track. It is quite easy to lift the 5V pin of the LDO from its pad. Then a pin header can be soldered to that pin and the second contact of the pin header can be soldered to one of the 5V contacts of the LoRa32 board. When the contacts of the pin header are closed with help of a jumper, the board behaves as known. When the jumper is removed, the board has to be powered with 3.3V, but has a deep sleep current of ~3 mA.

LoRa32

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet