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

    Pymate fails to setup boot.py with the right known net

    Scheduled Pinned Locked Moved Pymate
    16 Posts 4 Posters 5.8k 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.
    • K Offline
      kurt @kurt
      last edited by

      OK, I got the lopy connecting to the router again by manually changing the line defining the known_nets in boot.py. Yesterday it did not work because I wrote the boot.py back without line endings. Don't ask me how.

      Nevertheless, Pymate and the lopy still do not connect with each other. The lopy resets, connects to the network, and then issues an error:

      Traceback (most recent call last):
        File "boot.py", line 39, in <module>
        File "/flash/lib/pymate_basic.py", line 13, in <module>
        File "/flash/lib/pymate_library.py", line 356, in run
        File "/flash/lib/pymate_library.py", line 331, in _close
        File "/flash/lib/simple.py", line 109, in disconnect
      OSError: 104
      

      "/flash/lib/pymate_library.py" does not have 356 lines as stated in the traceback, at least not on my lopy. The last three lines are:

      343            # Keep receiving and sending data while connected
      344            while self._connect:
      345                self.__connection.wait_msg()
      

      The whole reset sequence is this:

      rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
      configsip: 0, SPIWP:0x00
      clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
      mode:QIO, clock div:2
      load:0x3fff9010,len:8
      load:0x3fff9018,len:312
      load:0x40078000,len:2348
      ho 0 tail 12 room 4
      load:0x4009f000,len:1364
      entry 0x4009f2f8
      frc2_timer_task_hdl:3ffd87a0, prio:22, stack:2048
      tcpip_task_hdlxxx : 3ffdc538, prio:18,stack:2048
      pp_task_hdl : 3ffde0d0, prio:23, stack:8192
      mode : softAP(24:0a:c4:00:11:c9)
      dhcp server start:(ip: 192.168.4.1, mask: 255.255.255.0, gw: 192.168.4.1)
      dhcp server start:(ip: 192.168.4.1, mask: 255.255.255.0, gw: 192.168.4.1)
      mode : sta(24:0a:c4:00:11:c8)
      n:1 1, o:6 0, ap:255 255, sta:1 1, prof:6
      state: 0 -> 2 (b0)
      state: 2 -> 3 (0)
      state: 3 -> 5 (10)
      add 0
      
      Traceback (most recent call last):
        File "boot.py", line 39, in <module>
        File "/flash/lib/pymate_basic.py", line 13, in <module>
        File "/flash/lib/pymate_library.py", line 356, in run
        File "/flash/lib/pymate_library.py", line 331, in _close
        File "/flash/lib/simple.py", line 109, in disconnect
      OSError: 104
      MicroPython 7713d55 on 2016-10-28; LoPy with ESP32
      Type "help()" for more information.
      >>> rbk
      

      OSError 104 means:
      #define ECONNRESET 104 /* Connection reset by peer */
      So, maybe this time the problem is not from the lopy but from mqtt.pycom.io, or mqtt.pycom.io does not like my credentials?

      Things I plan to do:

      1. update the firmware to the b2 version
      2. installing Pymate on my iPhone and try from there (instead of the iPad)
      3. unpacking my other lopy, which is still untouched, and try Pymate on iPhone with the virgin lopy (after firmware upgrade).

      Sorry for the long post. I'm still trying to figure out how all this is meant to work. Mqtt is new to me, and I have not even started with lorawan.

      1 Reply Last reply Reply Quote 1
      • M Offline
        microman7k
        last edited by

        Hi,

        I have the same problem. I think the problem is with the pycom servers?

        Best regards

        1 Reply Last reply Reply Quote 1
        • X Offline
          Xykon administrators
          last edited by Xykon

          I ran a remote wireshark capture on my Wifi AP... after correcting the credentials in boot.py I can see the LoPy get its IP via DHCP, resolve mqtt.pycom.io as 198.199.124.44 and attempt to connect to port 1883.

          However the server replies with RST, ACK so the connection is reset. That's why the script is failing.

          Christian Ehlers

          K 2 Replies Last reply Reply Quote 0
          • K Offline
            kurt @Xykon
            last edited by

            @microman7k I'm trying to follow the code through a connect. One thing that sticks out is the MQTTClient using the select library for polling. But the Micropython documentation for the lopy says:
            Current objects that support polling are: pyb.UART, pyb.USB_VCP.

            So, maybe the LoPy is not ready yet for the Pymate?

            1 Reply Last reply Reply Quote 1
            • K Offline
              kurt @Xykon
              last edited by

              @Xykon Yes, this confirms OSError 104 ECONNRESET 104 /* Connection reset by peer */
              I also tried

              >>> socket.getaddrinfo('mqtt.pycom.io', 1883)
              [(2, 1, 0, '', ('198.199.124.44', 1883))]
              

              A pleasant surprise, as socket.getaddrinfo() did not work last week.

              What's next? Why is the server resetting the connection? Timeout, wrong data...?

              My current plan is to get my WiPy working. It has a bad safe boot pin and I need to compile the firmware for another pin before trying Pymate on it...

              1 Reply Last reply Reply Quote 1
              • X Offline
                Xykon administrators
                last edited by Xykon

                The server mqtt.pycom.io does not listen on port 1883.

                nmap -p 1883 mqtt.pycom.io
                
                Starting Nmap 7.01 ( https://nmap.org ) at 2016-11-06 14:35 GMT
                Nmap scan report for mqtt.pycom.io (198.199.124.44)
                Host is up (0.022s latency).
                PORT     STATE  SERVICE
                1883/tcp closed unknown
                
                Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
                
                

                Christian Ehlers

                K 1 Reply Last reply Reply Quote 0
                • K Offline
                  kurt @Xykon
                  last edited by

                  @Xykon Meanwhile got my WiPy 1.0 working and upgraded it to the most recent firmware. But the result in regards to the Pymate is almost the same.

                  ...
                  Error: error connecting to the pymate server, connection closed
                  Error: error connecting to the pymate server, connection closed
                  Error: error connecting to the pymate server, connection closed
                  Error: error connecting to the pymate server, connection closed
                  Error: error connecting to the pymate server, connection closed
                  Traceback (most recent call last):
                    File "boot.py", line 39, in <module>
                    File "/flash/lib/pymate_basic.py", line 13, in <module>
                    File "/flash/lib/pymate_library.py", line 354, in run
                  KeyboardInterrupt: 
                  MicroPython v1.8.5-121-g5c3d75c on 2016-11-06; WiPy with CC3200
                  Type "help()" for more information.
                  ```
                  1 Reply Last reply Reply Quote 1
                  • M Offline
                    microman7k
                    last edited by

                    @kurt Thanks, so we could agree that the problem is in pycom site? Hey, Pycom (@daniel) can you provide us with some information that Pymate is even working or not?

                    1 Reply Last reply Reply Quote 1
                    • R Offline
                      Roberto
                      last edited by

                      Hello @kurt @microman7k

                      We have fixed this issue and updated some files in the server.
                      You will need to go to the setup stage again, delete your device by swiping it left and add it again.

                      To make sure that everything works properly please boot your device in safe mode
                      https://docs.pycom.io/lopy/lopy/general.html#boot-modes-and-safe-boot
                      and remove the connection between 3v3 and G28 (P12) when Pymate asks you to reset the device.

                      X 1 Reply Last reply Reply Quote 1
                      • X Offline
                        Xykon administrators @Roberto
                        last edited by

                        @Roberto I gave this a quick test... the installation works OK now, the LoPy connects to my AP and I can see it go online and show the firmware version in Pymate.

                        I created a button in Pymate and told it to use digital pin 4.. I have an LED connected from P4 -> 1k resistor -> LED -> GND.

                        When I switch the button ON/OFF in Pymate the LED stays at a dim level.

                        When I bypass execfile('/flash/lib/pymate_basic.py') and use from machine import Pin; p_out = Pin('P4', mode=Pin.OUT); p_out(1) then the LED lights up bright and turns off with p_out(0).

                        I thought maybe Pymate is using expansion board numbers for digital pins so I also tried digital port 11 but I don't see any change.

                        Christian Ehlers

                        R 1 Reply Last reply Reply Quote 0
                        • R Offline
                          Roberto @Xykon
                          last edited by

                          @Xykon I did the same test in my end and it works. To be clear, yes, the pins used by the apps are the expansion board pins (G 11) in you case.

                          Check List:

                          1. Go to the device list and refresh using the refresh button to make sure that the device is connected.
                          2. Once int he dashboard (widgets) long click on the button widget to edit. Make sure is of type button, and that is set the the right pin (11). As an output pin.
                          3. Save
                          4. Once back in the dashboard make sure you press the Plat button on the top. This will send the configuration of the pin to the device and allow you to use the button widget.

                          Make sure you do this before doing any code input in your device (for test propose) and check if the LED Turns on.

                          One last thing The User LED on the expansion board is the pin 16 G16. You can test with this Led first to make sure that everything is working as it should.

                          1 Reply Last reply Reply Quote 0
                          • X Offline
                            Xykon administrators
                            last edited by

                            Thanks I got it to work now. I think I just didn't save it properly when switching from digital 4 to 11.

                            Christian Ehlers

                            R 1 Reply Last reply Reply Quote 0
                            • R Offline
                              Roberto @Xykon
                              last edited by

                              @Xykon Great!. Hopefully @kurt will get it working as well

                              K 1 Reply Last reply Reply Quote 0
                              • K Offline
                                kurt @Roberto
                                last edited by

                                @Roberto Yes, thank you, I got it working on the lopy as well. My wipy 1.0 is still resisting, but I'm not sure if this device is healthy. I try it again when I have more patience for it. Cheers!

                                R 1 Reply Last reply Reply Quote 1
                                • R Offline
                                  Roberto @kurt
                                  last edited by

                                  Great @kurt im glad to know that things are working on your side. Thanks for all the input

                                  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