![]() I also tried RTC_GPIO_MODE_OUTPUT_ONLY + rtc_gpio_set_level() too, but this didn't seem to increase the drive capability. This is insufficient to drive the ULN2003's pin. ![]() Rtc_gpio_pullup_en(pin) // set the pin as pull-upĮsp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH,ĮSP_PD_OPTION_ON) // keep the RTC IO domain poweredĮxecuting this just before entering deep sleep almost worked, but it turns out the weak pull-up is too weak: probably ~38k if it is a resistance, or 90♚ if it's a current source. Rtc_gpio_set_direction(pin, RTC_GPIO_MODE_INPUT_OUTUT) I'm wondering whether it's possible to workaround this blunder by a software patch (of course, it's easy to just add an external pull-up resistor to pin 4 - but I have a few devices on the field, which I would hate to have to travel a few hundred kilometres just to solder a resistor to! And the people around aren't tech-savvy to do this themselves on the contrary, remote software patching is easy and well-tested).įor example, I tried the RTC's pull-up resistors: gpio_num_t pin = (gpio_num_t) PIN_DISABLE_5V This drains the battery at a much faster-than-expected rate. So, I need to hold pin #4 high during sleep.ĭue to sloppy testing of this part, I didn't know that the ESP32 shuts down its GPIOs during deep sleep, so pin #4 isn't kept high, and the sensors remain active. Simulate this circuit – Schematic created using CircuitLab The device also has some 5V-powered sensors which I'm feeding from a MCP1640 step-up converter, which is on during the brief active part, and powered off via its "ENABLE" pin during deep sleep. The ESP spends most of the time in deep-sleep to save power. I'm using an ESP32 in a battery-powered device.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |