Does deepsleep work at all
-
@this.wiederkehr And ? Solutions is .. ? :)
-
@this.wiederkehr said in Does deepsleep work at all:
returned a list not compatible with the indexes
What do you mean in "not compatible"?
-
I can only guess from the source as there is no documentation for
pycom.pulses_get:pulses[3][1] - pulses[1][1] should get the time difference from the second to the fourth pulse. If e.g. there is no fourth pulse there will be no list entry for pulses[3] which will result in the error 'IndexError: list index out of range'.
The hacky solution would be to wrap this in a try-except block and retry if there is the IndexError ...
-
@this.wiederkehr Ok .. now speak for human beings now please :)
I dont know how to do that. Can you tell me the code line who is supose to fix that ?
Than you ! :)
-
This post is deleted! -
@chumelnicu said in Does deepsleep work at all:
dont know how to do that. Can you tell me the code line who is supouse to fix that ?
Than you ! :)Exchange the calibration function in deep_sleep.py with the following one, take care on the indentation (sorry I dont have a board at my hand to test right now, so use at your own risk :-)
That is not a fix, that is a hack to catch an error (which should not be there in the first place) and retry the calibration procedure ...def calibrate(self): """ The microcontroller will send the value of CTRL_0 after setting the bit and then will send the following pattern through the data line: val | 1 | 0 | 1*| 0 | 1*| 0 | 1 ms | 1 | 1 | 1 | 1 | 8 | 1 | - The idea is to measure the real life duration of periods marked with * and substract them. That will remove any errors common to both measurements The result is 7 ms as generated by the PIC LF clock. It can be used to scale any future sleep value.""" while True: try: # setbits, but limit the number of received bytes to avoid confusion with pattern self._magic(CTRL_0_ADDR, 0xFF, 1 << 2, 0, 7) self.uart.deinit() Pin(COMM_PIN, mode=Pin.IN) pulses = pycom.pulses_get(COMM_PIN, 50000) self.uart = UART(1, baudrate=10000, pins=(COMM_PIN,)) self.clk_cal_factor = (pulses[3][1] - pulses[1][1]) / EXP_RTC_PERIOD break except IndexError: print('calibration failed') if self.clk_cal_factor > 1.25 or self.clk_cal_factor < 0.75: self.clk_cal_factor = 1 -
@this.wiederkehr Ok .. maybe you right but this is beyond me , I think is beter to wait for @daniel and @bucknall opinion or fix solution.
Thank you very much @this-wiederkehr
-
Hello,
While we find out why sometimes less calibration pulses are received, please use the new library that has a try-except block around the calibration:
https://github.com/pycom/pycom-libraries/commit/074bc7ee0181451720bbeb30d627debafc617ad8
-
-
This post is deleted! -
@Camot
Have you fixed the 0.4mA consumption during deep sleep? -
@athtest800 are you talking about the Pysense or the deepsleep shield?
-
@daniel I am using the deep sleep shiled with lopy in breadboard (without expansion) by powering with 5V. The consumption is 500uA. Isn't it high? I thought it will be below 50uA.
-
@daniel I have issue with "deepsleep shield" and LoPy. It's stops after cca. 20 cycles. Same if added the "exception" block to calibrate method.
Running over serial the cycle ends into REPL and without error. -
@tmz so it simply goes out to the REPL without running your code? Do you have any condition in your code that could cause that (exit the script instead of going into deepsleep)? Do you have anything connected to P12? Maybe at some point the board is booting into safe mode...
-
@daniel The deep sleep works! But then at one point without any error it's not entering into next deep sleep cycle instead is enter into REPL.
-
@tmz what you say is that after calling the
go_to_sleep()the deepsleep shield doesn't put the LoPy to sleep? -
@daniel Yes, executing go_to_sleep() some cycles works and than at one point it's not enter into deep sleep mode.
Do you have anything connected to P12?
Nothing connected to P12.For debugging i was running connected over "Serial" to see what happens and for some time (cca. 5 - 20 cycles) works normally and then without errors enters into REPL.
code:
# Setup deep sleep mode ds = DeepSleep() ds.enable_wake_on_raise('P17') # Some work here ds.go_to_sleep(60) -
@daniel
I make now the execution
Deep sleep ends after 4 cycles.LoPy on Expansion board with "DeepSleep Shield"
Firmware version: 1.7.9.b1deepslep.pylatest: https://github.com/pycom/pycom-libraries/commit/074bc7ee0181451720bbeb30d627debafc617ad8Run 60 seconds deepsleep interval.
Output:
MicroPython v1.8.6-740-g5b756011 on 2017-08-07; LoPy with ESP32 Type "help()" for more information. >>> >>> >>> ets Jun 8 2016 00:22:57 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff9010,len:12 ho 0 tail 12 room 4 load:0x3fff9020,len:388 load:0x40078000,len:11584 load:0x4009fb00,len:848 entry 0x4009fc9c ****DEEP SLEEP MODE**** Do sem work for 3 seconds End work go deep sleep for 1min Brownets Jun 8 2016 00:22:57 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff9010,len:12 ho 0 tail 12 room 4 load:0x3fff9020,len:388 load:0x40078000,len:11584 load:0x4009fb00,len:848 entry 0x4009fc9c ****DEEP SLEEP MODE**** Do sem work for 3 seconds End work go deep sleep for 1min Brownets Jun 8 2016 00:22:57 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff9010,len:12 ho 0 tail 12 room 4 load:0x3fff9020,len:388 load:0x40078000,len:11584 load:0x4009fb00,len:848 entry 0x4009fc9c ****DEEP SLEEP MODE**** Do sem work for 3 seconds End work go deep sleep for 1min Brownets Jun 8 2016 00:22:57 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff9010,len:12 ho 0 tail 12 room 4 load:0x3fff9020,len:388 load:0x40078000,len:11584 load:0x4009fb00,len:848 entry 0x4009fc9c ****DEEP SLEEP MODE**** Do sem work for 3 seconds End work go deep sleep for 1min MicroPython v1.8.6-740-g5b756011 on 2017-08-07; LoPy with ESP32 Type "help()" for more information. >>> >>> -
@tmz Do you have a pull-down on P17? I think what is happening is that noise is waking up the deepsleep shield before it gets to turn off the LoPy completely. Please try putting an external pull-down to P17 and disabling the internall pull-up with the deepsleep library.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better đź’—
Register Login