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

    Firmware Release v1.20.1

    Scheduled Pinned Locked Moved Announcements & News
    firmware
    68 Posts 18 Posters 11.4k Views 19 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.
    • robert-hhR Offline
      robert-hh @iwahdan
      last edited by robert-hh

      @iwahdan Hellol Islam. Thank you for the update. I have a few question and comments:

      1. Why was the update pushed to the branch called Release/v1.20.1 and not master. These many new branches confuse.
      2. The bug in the LTE module I reported in Issue #338 still persists, but may not always pop up:
        In handling of the attach command inside modlte.c, the length of the command AT+SMDD (and others) is not set! Lines affected: 310, 654, 670. Compare to these place the use of the function lteppp_send_at_command in line 179, where the data length IS set. A test confirmed the bug: if I specify band=8, I get an error: band 8 not supported. If I omit band=8, attach works.
      3. There is still the glitch in handling the bits=xx argument in adc.init. Before, the only accepted argument & value for adc.init() was bits=12, and even that was discarded. With that change, the function meets the documentation and works as expected. See PR #327

      Edit: Setting dataLen in the calls to lteppp_send_at_command() makes attach wotk again with specifying the band.
      Edit2: Thank you for keeping the espressif reset mode option

      I 1 Reply Last reply Reply Quote 0
      • I Offline
        iwahdan @robert-hh
        last edited by

        @robert-hh said in Firmware Release v1.20.1:

        @iwahdan Hellol Islam. Thank you for the update. I have a few question and comments:

        1. Why was the update pushed to the branch called Release/v1.20.1 and not master. These many new branches confuse.

        we have restructured our GitHub public Repo to have a separate branches for 1.18 and 1.20 FWs (under Release) - Daily development will be done on a new default branch (Dev) (previously we used to do the main Dev privately and do weekly/monthly releases to public repo).
        This will make it easier for people to Contribute to Our Firmware plus better traceability of opened Issues.
        we recommend you open any pull request on that Branch (Dev).

        1. The bug in the LTE module I reported in Issue #338 still persists, but may not always pop up:
          In handling of the attach command inside modlte.c, the length of the command AT+SMDD (and others) is not set! Lines affected: 310, 654, 670. Compare to these place the use of the function lteppp_send_at_command in line 179, where the data length IS set. A test confirmed the bug: if I specify band=8, I get an error: band 8 not supported. If I omit band=8, attach works.

        Can you open a PR on Dev branch?

        1. There is still the glitch in handling the bits=xx argument in adc.init. Before, the only accepted argument & value for adc.init() was bits=12, and even that was discarded. With that change, the function meets the documentation and works as expected. See PR #327

        Just changed Base of your PR to Dev, can you please update?

        Edit: Setting dataLen in the calls to lteppp_send_at_command() makes attach wotk again with specifying the band.

        Wahdan

        R 1 Reply Last reply Reply Quote 0
        • R Offline
          rskoniec @iwahdan
          last edited by

          @iwahdan I'm not able to change pycom.wifi_on_boot

          >>> os.uname()
          (sysname='FiPy', nodename='FiPy', release='1.20.1', version='v1.11-12f4ce0 on 2019-10-06', machine='FiPy with ESP32', lorawan='1.0.2', sigfox='1.0.1', pybytes='1.1.2')
          >>> import pycom
          >>> pycom.wifi_on_boot()
          False
          >>> pycom.wifi_on_boot(True)
          >>> pycom.wifi_on_boot()
          False
          

          The machine is working as good as it's code.

          robert-hhR 2 Replies Last reply Reply Quote 0
          • robert-hhR Offline
            robert-hh @rskoniec
            last edited by

            @rskoniec said in Firmware Release v1.20.1:

            pycom.wifi_on_boot(True)

            Does it change if you use:

            pycom.wifi_on_boot(True, True)

            The code allows a second parameter, which is not documented. But as I understand it, it forces the immediate startup of WiFi. It should not affect the stored state.

            C 1 Reply Last reply Reply Quote 0
            • robert-hhR Offline
              robert-hh @rskoniec
              last edited by

              @rskoniec Do you use the PyBytes variant? According to the code this variant always returns False (and it does not set this flag). See the code snippet from pycom_config.c:

              
              bool config_set_wifi_on_boot (uint8_t wifi_on_boot) {
                  if (pycom_config_block.wifi_config.wifi_on_boot != wifi_on_boot) {
                      pycom_config_block.wifi_config.wifi_on_boot = wifi_on_boot;
              #if (VARIANT != PYBYTES)
                      return config_write();
              #endif
                  }
                  return true;
              }
              
              bool config_get_wifi_on_boot (void) {
              #if (VARIANT == PYBYTES)
                  return false;
              #endif
                  return pycom_config_block.wifi_config.wifi_on_boot;
              }
              
              
              1 Reply Last reply Reply Quote 0
              • R Offline
                River
                last edited by River

                Hello @iwahdan, promissing update! Thanks to all people involved.

                I will test new firmware flashing a module later today. I have two questions regarding this update:

                1. It's now ULP co-processor supported? We have a product with custom hardware + lopy4 and we want to add capability to count pulses on two digital inputs while sleeping (measuring water consumption, etc..)
                2. It's possible to change wifi mode to LR (Espressif's Long Range protocol) by code?

                If still not supported (1 or 2) I don't know if may open an issue on github in order to pycom keep track of improvements, or maybe is better to leave written here.

                Regards

                1 Reply Last reply Reply Quote 0
                • C Offline
                  cmisztur
                  last edited by

                  Thank you.

                  Regarding 'legacy' vs 'pybytes' variants. Does the PyBytes variant auto connect to PyBytes platform and maintain connection? What is the difference between 'legacy' and 'pybytes'?

                  robert-hhR 1 Reply Last reply Reply Quote 0
                  • robert-hhR Offline
                    robert-hh @cmisztur
                    last edited by

                    @cmisztur Sorry, I never looked at pybytes.

                    C 1 Reply Last reply Reply Quote 0
                    • C Offline
                      cmisztur
                      last edited by

                      Breaking change for me from 1.20.0.rc13 to 1.20.1 is usage of machine.idle().
                      Below, line 7 is never reached.

                      import utime
                      import _thread
                      
                      def t():
                          print('thread start')
                          utime.sleep_ms(4000)
                          print('thread run')
                      
                      _thread.stack_size(8192)
                      _thread.start_new_thread(t, ())
                      
                      utime.sleep_ms(1000)
                      
                      while 1:
                          machine.idle()
                          #utime.sleep_ms(50)
                      
                      robert-hhR 2 Replies Last reply Reply Quote 0
                      • C Offline
                        cmisztur @robert-hh
                        last edited by

                        @robert-hh said in Firmware Release v1.20.1:

                        @cmisztur Sorry, I never looked at pybytes.

                        How are you flashing 1.20.1?

                        robert-hhR 1 Reply Last reply Reply Quote 0
                        • robert-hhR Offline
                          robert-hh @cmisztur
                          last edited by

                          @cmisztur I build the image myself, and as part of that, i can call:

                          make BOARD=xxPy flash

                          There are also the pyupgrade tools, you can download from the pycom web site.

                          C 1 Reply Last reply Reply Quote 0
                          • robert-hhR Offline
                            robert-hh @cmisztur
                            last edited by

                            @cmisztur That finding with idle is strange. Comparing the Pycom variant with the Micropython.org shows no difference in the machine.idle() implementation. But the Micropython.org version works. That's how the function looks in both variants:

                            STATIC mp_obj_t machine_idle(void) {
                                taskYIELD();
                                return mp_const_none;
                            }
                            
                            1 Reply Last reply Reply Quote 0
                            • robert-hhR Offline
                              robert-hh @cmisztur
                              last edited by

                              @cmisztur I compared the related functions in machine.idle() and utime.sleep_ms() for both v1.20.0.rc13 and v1.20.1. They are identical, and just call taskYIELD() (idle) resp. vTaskDelay() (sleep_ms). So the change must be cause by moving from esp_idf v3.1 to esp_if v3.2.

                              1 Reply Last reply Reply Quote 1
                              • C Offline
                                Clemens
                                last edited by Clemens

                                I have some devices with firmware 1.20.0.rc13 before and now 1.20.1. Unfortunately the old software is not running with the new firmware and I got e.g.

                                File "main.py", line 11, in <module>
                                File "webserver.py", line 124, in <module>
                                File "/flash/lib/microDNSSrv.py", line 19, in Create
                                File "/flash/lib/microDNSSrv.py", line 161, in Start
                                OSError: Network card not available
                                

                                or

                                File "/flash/lib/terkin/network/core.py", line 110, in start_services
                                File "/flash/lib/terkin/network/core.py", line 131, in start_httpserver
                                File "/flash/lib/terkin/api/http.py", line 70, in start
                                File "/flash/dist-packages/microWebSrv.py", line 219, in Start
                                OSError: Network card not available
                                

                                and my former working OTA-Code is stopping also

                                  File "main.py", line 44, in <module>
                                  File "/flash/lib/OTA.py", line 176, in connect
                                NameError: name 'SSID' isn't defined
                                
                                robert-hhR 1 Reply Last reply Reply Quote 0
                                • robert-hhR Offline
                                  robert-hh @Clemens
                                  last edited by robert-hh

                                  @Clemens I had a similar problem too on one Lopy4 device - Wifi was not available. Erasing the flash and reloading the firmware solved it.

                                  C 1 Reply Last reply Reply Quote 1
                                  • C Offline
                                    Clemens @robert-hh
                                    last edited by

                                    @robert-hh said in Firmware Release v1.20.1:

                                    pycom.wifi_on_boot(True, True)

                                    >>> pycom.wifi_on_boot()
                                    False
                                    >>> pycom.wifi_on_boot(True, True)
                                    Traceback (most recent call last):
                                      File "<stdin>", line 1, in <module>
                                    OSError: the requested operation failed
                                    
                                    robert-hhR 1 Reply Last reply Reply Quote 0
                                    • robert-hhR Offline
                                      robert-hh @Clemens
                                      last edited by robert-hh

                                      @Clemens That wifi_on_boot() issue is a different topic and has been fixed with today's build for the Dev branch. AFIK it is not yet in the 'official' version.
                                      Edit: It looks like there is a lag in the Pycom update. The updater does not show V1.20.1, and the download page for firmware packages is also not updated.

                                      1 Reply Last reply Reply Quote 0
                                      • rcolisteteR Offline
                                        rcolistete
                                        last edited by

                                        Please update the links for all Pycom devices in :
                                        https://docs.pycom.io/advance/downgrade/
                                        to include the version 1.20.1 for manual firmware download.

                                        My "MicroPython Samples". My "MicroPython Firmwares" with many options (double precision, ulab, etc).

                                        rcolisteteR 1 Reply Last reply Reply Quote 0
                                        • C Offline
                                          Clemens @robert-hh
                                          last edited by

                                          One software is after the repeated firmware update with the checked option erase filesystem now running. The second one outputs still the same error.

                                          1 Reply Last reply Reply Quote 0
                                          • B Offline
                                            berni
                                            last edited by

                                            After upgrading to 1.20.1, I started having crashes when setting up the frequencies for the Nano-Gateway code:

                                            Guru Meditation Error: Core  1 panic'ed (Cache disabled but cached memory region accessed)
                                            Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                                            Memory dump at 0x40201f50: bad00bad bad00bad bad00bad
                                            Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                                            Memory dump at 0x40201f50: bad00bad bad00bad bad00bad
                                            Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                                            
                                            

                                            This happens somehow randomly, after a few cycles of deep sleep/transmission, but even the Watchdog timer becomes useless.

                                            Then I downgraded to 1.20.rc13. Now, the code doesn't work and stops in this line:

                                            >>> from network import LoRa
                                            >>> lora = LoRa(mode=LoRa.LORAWAN)
                                            >>> lora.nvram_erase()
                                            Traceback (most recent call last):
                                              File "<stdin>", line 1, in <module>
                                            OSError: the requested operation failed
                                            >>> lora.nvram_save()
                                            Traceback (most recent call last):
                                              File "<stdin>", line 1, in <module>
                                            OSError: the requested operation failed
                                            

                                            Is there any way to go back to 1.20.rc13 and have these function working again? I suspect there must be some low level changes on the LoRa radio.

                                            I robert-hhR O 3 Replies 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
                                            • 2
                                            • 3
                                            • 4
                                            • 1 / 4
                                            • First post
                                              Last post

                                            Pycom on Twitter

                                            Pycom