For anyone that has been running into issues trying to get their Pycom WiPy, LoPy, or SiPy ESP32-based boards to enter deep sleep mode, the company has now tracked down the issue to design problems with the hardware of the boards themselves.
Issues around deep sleep with the boards started being raised in the company’s support forums more than a month ago after support for the mode was finally added to the Espressif IDF for the ESP32 chip.
The deep sleep issues with the Pycom boards has two different root causes. The first has to do with the DC-DC regulator used on the board.
The DC-DC switching regulator always stays in high performance PWM mode. We are using a pin from the ESP32 to control the operating mode of the switching regulator. In high performance PWM mode it offers the lowest output ripple and noise, but the quiescent current is ~10mA. When the regulator is set into ECO mode, the quiescent current goes down to 10uA. Unfortunately, the pin used to control this mode is out of the RTC domain, and therefore not usable during deep sleep. This causes the regulator to always stay in PWM mode, keeping it’s quiescent current at 10mA.
This has a fairly easy work around; powering the board via the 3V pin using a supply that is able to deliver at least 400mA drops the deep sleep current to around 2.5mA. Unfortunately, the second design issue is a bit more problematic.
The flash chip doesn’t enter power down mode because the CS pin is floating during deep sleep. This causes the flash chip to consume around 2mA of current. The way our circuit is designed, the VDD_SDIO domain of the ESP32 (which also powers the external flash), is powered externally instead of using the internal regulator in the ESP32 itself. Because of this, the flash memory always remains powered and never goes to deep sleep.
To fix this issue Pycom has gone ahead and designed a deep sleep shield that needs to be fitted to the module which will take care of powering down the module when a deep sleep command is sent. With the shield in place current consumption during deep sleep is between 7μA and 10μA depending on the wake source.
The new add-on board should be detected by the module during startup and will resolve both hardware issues, also allowing you to power the module normally.
The company says that the design issues leading to the deep sleep problems do not exist in any of their other developer boards such such as their long anticipated FiPy board — which supports WiFi, BLE, cellular LTE-CAT M1/NB1, LoRa, and Sigfox—which should be shipping to Kickstarter backers soon, or their OEM modules.
Pycom has also committed to redesigning the WiPy, LoPy, and SiPy modules over the next few months in order to remove this deep sleep issue.
Full details of the problems can be found on the company’s support forums, along with instructions on how to order your free deep sleep shield.