Hi there,
I currently have Freematics ONE+ Model H. I have my code compiled and uploaded into the device, which collects data when the car is running. I want to leave my Freematics in the car when the car is not running, for the convenience reasons.
Currently, I am using the ESP deep sleep to keep the power usage low, however it draws about 0.07 A (measured on 5V). Device wakes up every minute, checks if OBD connection can be initialized and goes back to deep sleep if connection failed.
Is there any better way to make the device track if the vehicle is running? Also, maybe there is a way to decrease power consumption while in "sleep mode"? Thanks.
Lowering energy consumption
Re: Lowering energy consumption
You can consider using ESP32's power management API to lower CPU clock while in stand by.
Re: Lowering energy consumption
I have the same problem.
In deep sleep, the ESP32 should use ~ 10 microamps (https://lastminuteengineers.com/esp32-s ... nsumption/), however my current draw during ESP32 deep sleep is, at best, 110mA.
Stanley, how can this be reduced? I understand that the MEMS, SIM7600, GNSS, and OBD coprocessor may be drawing current, and am using the following commands to power them down. Could you perhaps clarify the correct commands for each, and if there are other current drains that need to be addressed? What is the minimum current draw we should be able to reach with every component powered down too?
OBD:
MEMS:
GNSS:
SIM76000:
Thanks
In deep sleep, the ESP32 should use ~ 10 microamps (https://lastminuteengineers.com/esp32-s ... nsumption/), however my current draw during ESP32 deep sleep is, at best, 110mA.
Stanley, how can this be reduced? I understand that the MEMS, SIM7600, GNSS, and OBD coprocessor may be drawing current, and am using the following commands to power them down. Could you perhaps clarify the correct commands for each, and if there are other current drains that need to be addressed? What is the minimum current draw we should be able to reach with every component powered down too?
OBD:
Code: Select all
// obd is a COBD object
obd.uninit();
obd.enterLowPowerMode();
Code: Select all
// mems is a ICM_20948_I2C object
mems->end();
Code: Select all
// freematicsLibrary is a FreematicsESP32 object
freematicsLibrary->gpsEnd()
Code: Select all
sendCommand("AT+CPOF\r");
Last edited by smith on Tue Nov 30, 2021 2:47 pm, edited 1 time in total.
Re: Lowering energy consumption
With GPS, cellular module turned off and no wifi connection, are you still getting 110mA? You can test by uploading a code doing nothing.
Re: Lowering energy consumption
Hi Stanley,
With the following, I get 60mA.
From this, I have two questions...
1. What is using 60mA? (Is it possible to reach lower power consumption?)
2. How can I properly power down all components (GPS, cellular, wifi, etc.) to get to this 60mA when moving from operational to sleeping?
With the following, I get 60mA.
Code: Select all
void setup() {}
void loop() {
esp_deep_sleep_start();
}
1. What is using 60mA? (Is it possible to reach lower power consumption?)
2. How can I properly power down all components (GPS, cellular, wifi, etc.) to get to this 60mA when moving from operational to sleeping?
Re: Lowering energy consumption
Also, is there any way to get back from the sleep mode automatically, without checking for obd connection? For example, using ESP light sleep and checking for some obd pin?