Welcome to the Pycom forum Forum
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • Login

    Explore Pybytes | Official Documentation | Report a Firmware Bug/Issue | GitHub

    machine.sleep(time_in_millis) does time_in_millis has some limit? not works for 6 hours value...

    Scheduled Pinned Locked Moved SiPy
    deepsleepsipysleep
    6 Posts 3 Posters 2.0k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J Offline
      josua
      last edited by

      Hi there,
      can someone please say me, if there any limit for argument passing to machine.deepsleep()? When I pass 600000 ms to the funciton it works just nicely, SiPY sends message every 10 minutes, but when I pass 21600000 which is 6 hours, then my SiPy start to send message every 2 minutes!

      # 10 min
      SLEEP_TIME_10M = 600000
      # 6 hours
      SLEEP_TIME_6H = 21600000
      .... code ....
      s.send(str(sensor1.distance_in_cm()))
      machine.deepsleep(SLEEP_TIME_6H)
      

      Thanks in advance!

      L 1 Reply Last reply Reply Quote 0
      • L Offline
        livius @josua
        last edited by

        @josua
        I supposed then some range was reached
        but i see in source code cast to uint64

        STATIC mp_obj_t machine_deepsleep (uint n_args, const mp_obj_t *arg) {
            mperror_enable_heartbeat(false);
            bt_deinit(NULL);
            wlan_deinit(NULL);
            if (n_args == 0) {
                esp_deep_sleep_start();
            } else {
                esp_deep_sleep((uint64_t)(mp_obj_get_int(arg[0]) * 1000));
            }
        }
        

        i do not known C but
        is this ok?
        (uint64_t)(mp_obj_get_int(arg[0]) * 1000)
        or it should be?
        (uint64_t)mp_obj_get_int(arg[0]) * 1000

        think about people first, then computers

        1 Reply Last reply Reply Quote 2
        • J Offline
          jmarcelino
          last edited by

          @livius
          You are right of course. I guess someone should file it with github let me know if you want me to do it.

          You can see the problem with this small C test code:

          #include <stdint.h>
          
          int in32 = 21600000;
          
          void castresult () {
                  uint64_t out64 = 0;
                  out64 = (uint64_t) (in32 * 1000);
          }
          
          void casttime () {
                  uint64_t out64 = 0;
                  out64 = (uint64_t)in32 * 1000;
          }
          

          Compile with: xtensa-esp32-elf-gcc -c test.c
          then dump the generated Xtensa assembly code: xtensa-esp32-elf-objdump -D test.o and the difference - and problem - between the two becomes obvious.

          00000000 <castresult>:
             0:   006136          entry   a1, 48
             3:   017d            mov.n   a7, a1
             5:   000021          l32r    a2, fffc0008 <casttime+0xfffbffd8>
             8:   000031          l32r    a3, fffc0008 <casttime+0xfffbffd8>
             b:   0729            s32i.n  a2, a7, 0
             d:   1739            s32i.n  a3, a7, 4
             f:   000021          l32r    a2, fffc0010 <casttime+0xfffbffe0>
            12:   0238            l32i.n  a3, a2, 0
            14:   032d            mov.n   a2, a3
            16:   1122b0          slli    a2, a2, 5
            19:   c02230          sub     a2, a2, a3
            1c:   1122e0          slli    a2, a2, 2
            1f:   223a            add.n   a2, a2, a3
            21:   1122d0          slli    a2, a2, 3
            24:   0729            s32i.n  a2, a7, 0
            26:   312f20          srai    a2, a2, 31
            29:   1729            s32i.n  a2, a7, 4
            2b:   f03d            nop.n
            2d:   f01d            retw.n
                  ...
          
          00000030 <casttime>:
            30:   006136          entry   a1, 48
            33:   017d            mov.n   a7, a1
            35:   000081          l32r    a8, fffc0038 <casttime+0xfffc0008>
            38:   000091          l32r    a9, fffc0038 <casttime+0xfffc0008>
            3b:   0789            s32i.n  a8, a7, 0
            3d:   1799            s32i.n  a9, a7, 4
            3f:   000061          l32r    a6, fffc0040 <casttime+0xfffc0010>
            42:   0668            l32i.n  a6, a6, 0
            44:   064d            mov.n   a4, a6
            46:   316f60          srai    a6, a6, 31
            49:   065d            mov.n   a5, a6
            4b:   e8a362          movi    a6, 0x3e8
            4e:   828560          mull    a8, a5, a6
            51:   060c            movi.n  a6, 0
            53:   826460          mull    a6, a4, a6
            56:   886a            add.n   a8, a8, a6
            58:   e8a362          movi    a6, 0x3e8
            5b:   829460          mull    a9, a4, a6
            5e:   a23460          muluh   a3, a4, a6
            61:   092d            mov.n   a2, a9
            63:   483a            add.n   a4, a8, a3
            65:   043d            mov.n   a3, a4
            67:   0729            s32i.n  a2, a7, 0
            69:   1739            s32i.n  a3, a7, 4
            6b:   0729            s32i.n  a2, a7, 0
            6d:   1739            s32i.n  a3, a7, 4
            6f:   f03d            nop.n
            71:   f01d            retw.n
          
          L 1 Reply Last reply Reply Quote 1
          • L Offline
            livius @jmarcelino
            last edited by

            @jmarcelino
            Do you know what repository is now valid?
            https://github.com/pycom/pycom-micropython
            https://github.com/pycom/pycom-micropython-sigfox
            or current merging
            https://github.com/pycom/pycom-micropython-censis

            think about people first, then computers

            J 1 Reply Last reply Reply Quote 0
            • J Offline
              jmarcelino @livius
              last edited by

              @livius
              I think the current one is https://github.com/pycom/pycom-micropython-sigfox

              You'll be the very first issue ;-)

              L 1 Reply Last reply Reply Quote 0
              • L Offline
                livius @jmarcelino
                last edited by livius

                @jmarcelino
                created
                https://github.com/pycom/pycom-micropython-sigfox/issues/1
                and also pull
                https://github.com/pycom/pycom-micropython-sigfox/pull/2

                think about people first, then computers

                1 Reply Last reply Reply Quote 3

                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
                • 1 / 1
                • First post
                  Last post

                Pycom on Twitter

                Pycom