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

    New firmware release version v1.9.0.b1

    Scheduled Pinned Locked Moved Announcements & News
    firmware
    6 Posts 4 Posters 2.4k Views 4 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.
    • D Offline
      daniel
      last edited by

      A new firmware release is out. The version is v1.9.0.b1. The Github sources have been updated as well. Here's the change log:

      • esp32: Disable the brown-out monitor. Some user report issues with this at 3.0V. To be investigated.
      • esp32: Add getfree() function to the os module. Returns the free space (in KiB) in the drive.
      • esp32: Improve NVS API error handling and add methods to erase.
      • esp32: Fix issue with corrupted file listing over FTP. Improve FTP time reporting.
      • esp32: Add proper support for 16-bit I2C memory addresses. See the new API here: https://docs.pycom.io/chapter/firmwareapi/pycom/machine/I2C.html
      • esp32: Fix but around WPA-ENT where client cert and key buffers were inverted.
      • esp32: Enable method micropython.kbd_intr(). Thanks to @robert-hh.
      • esp32: Add code for the second parameter of DAC.tone(). Thanks to @robert-hh
      • esp32: Avoid crash when a timer alarm is cancelled just before it expires.
      • py: Pull in ustruct module from the MicroPython upstream. Resolves issue #63.
      • py: Port back changes from upstream to solve issue #55 (int.from_bytes(b'\xFF\x00','big') returns incorrect result)

      I also want to take the opportunity to announce that the next release will bring full dual core support and also will enabled the usage of the 4MByte of external RAM for MicroPython code in the OEM modules. We gave been waiting for a major update of the Espressif IDF in order to bring these features in.

      Cheers,
      Daniel

      robert-hhR affoltepA 2 Replies Last reply Reply Quote 3
      • robert-hhR Offline
        robert-hh @daniel
        last edited by robert-hh

        @daniel Hello Daniel, thanks for the update. I looked at os.getfree() and found, that it reports a wrong size at SD cards. The reason: numerical overflow of the 32 bit variable free:_space. The following code variant avoids that, using an unit64_t for the intermediate value:

        STATIC mp_obj_t os_getfree(mp_obj_t path_in) {
            const char *path = mp_obj_str_get_str(path_in);
            FATFS *fs;
            DWORD nclst;
        
            FRESULT res = f_getfree(path, &nclst, &fs);
            if (FR_OK != res) {
                mp_raise_OSError(fresult_to_errno_table[res]);
            }
        
            uint64_t free_space = ((uint64_t)fs->csize * nclst)
        #if _MAX_SS != _MIN_SS
            * fs->ssize;
        #else
            * _MIN_SS;
        #endif
        
            return mp_obj_new_int_from_ull(free_space / 1024);
        }
        STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_getfree_obj, os_getfree);
        

        Edit: Although this is somewhat overkill. If we assume here, that the sector size is 512, we could also write:

        STATIC mp_obj_t os_getfree(mp_obj_t path_in) {
            const char *path = mp_obj_str_get_str(path_in);
            FATFS *fs;
            DWORD nclst;
        
            FRESULT res = f_getfree(path, &nclst, &fs);
            if (FR_OK != res) {
                mp_raise_OSError(fresult_to_errno_table[res]);
            }
            // assume sector size is 512 bytes
            return MP_OBJ_NEW_SMALL_INT((fs->csize * nclst) /2);
        }
        STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_getfree_obj, os_getfree);
        
        1 Reply Last reply Reply Quote 1
        • C Offline
          chrisi
          last edited by chrisi

          So is my understanding correct, does full dual core support allow access to the ULP Co-processor while the main core sleeps? For example can I

          • use the UPL coprocessor to count how many times a sensor is triggered?
          • turn on the main processor once a day to process the data gathered from the ULP and then send a Sigfog/Lora message?

          This would solve all my power consumption problems!!!

          Edit: From reading the ESP32 data sheet I think I should be able to get this capability "light Sleep" 0.8mA for this functionality?

          1 Reply Last reply Reply Quote 0
          • affoltepA Offline
            affoltep @daniel
            last edited by

            I just soldered a L01 on the OEM reference board and have done a LoPy firmware upgrade to v1.9.0.b1. The upgrade process worked without any error, but now I get most of time the following message:

            rst:0x01 (POWERON_RESET), boot:0x2 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_FEO_V2))
            waiting for download 
            

            Most of time it is like that and for time to time the L01 boots up correctly and the LED is blinking blue.

            Is there a problem with the firmware problem known for the L01 or might it be a hardware (soldering) problem?

            1 Reply Last reply Reply Quote 0
            • D Offline
              daniel
              last edited by

              @affoltep from what you say it looks like the P2 pin of the L01 is not properly soldered and it's making permanent contact to GND (for the updating process this is simply OK). Please check your solder joints and make sure that you don't have unwanted shorts.

              Cheers,
              Daniel

              affoltepA 1 Reply Last reply Reply Quote 0
              • affoltepA Offline
                affoltep @daniel
                last edited by

                @daniel Right! - thx a lot ;)

                1 Reply Last reply Reply Quote 0

                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