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

    Getting started with PyGos and Pylife

    Scheduled Pinned Locked Moved Pylife
    177 Posts 36 Posters 1.8k Views 38 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.
    • P Offline
      Peter Bankuti @Pete Allen 0
      last edited by

      @Pete-Allen-0
      Thanks for the pin map! What is the highest current i may apply to Pin 4 without damaging the device?

      P 1 Reply Last reply Reply Quote 0
      • P Offline
        Pete Allen 0 Global Moderator @Peter Bankuti
        last edited by

        @Peter-Bankuti it isn't connected directly to the battery so you can apply normal +5V without worrying about current. I will have to find out what the maximum current it can draw is, but it has always been well under 500ma when I've measured.

        P 1 Reply Last reply Reply Quote 0
        • P Offline
          Peter Bankuti @Pete Allen 0
          last edited by

          @Pete-Allen-0 Finally my PyGo2 began charging on the pad, so i hope i can get started with that device in some time. However the PyGo1 does not respond no matter how i place it, i really hope that unit is not a faulty one and can make somehow work also that unit. Thanks anyway.

          P 1 Reply Last reply Reply Quote 0
          • P Offline
            Peter Bankuti @Peter Bankuti
            last edited by

            @Peter-Bankuti
            In the documentation i found this regarding charging time:
            "Charging from 0% takes approximately 3-4 hours on USB, or 6-8 hours on a wireless charger."
            Well in just about 15 minutes on the wireless charging pad it already overheated and the charger switched off. The PyGo2 become as hot as a potato taken out from boiling water... this is almost dangerous, so anyone trying to make these devices work for the first time should be aware of this. Unfortunately i could not get up&working and i spent the whole afternoon with that. This should not be the case!

            Also the android version of the PyLife app has issues. First: i can not find the version number anywhere. Second after playing around for hours just to get my PyGo2 finally start charging i could succesfully find that device within PyLife app, but when i was asked to enter a name i got NOT_VALID_DEVICE message back. Wow... i just simply can not not do anything useful with any of my 2 units. What does the app mean by the label "Type Device name" ?? Shall we type any name inside that input field or we need to enter thy device ID printed just under that box (which name does not get accepted either...)

            Seriously how can pycom as team launch the documentation/app like that? You just can not make a documentation/user interface that confusing with dubious wording. I will try to continue tomorrow but for today i got tired of these, sorry.

            1 Reply Last reply Reply Quote 0
            • S Offline
              Stephen Glavin @Pete Allen 0
              last edited by

              Hi Pete, the password doesn’t seem to be correct, could you double check please? @Pete-Allen-0

              P 1 Reply Last reply Reply Quote 0
              • P Offline
                Pete Allen 0 Global Moderator @Stephen Glavin
                last edited by

                @Stephen-Glavin Apologies, that is an error. The correct password is www.pycom.io

                S 1 Reply Last reply Reply Quote 0
                • E Offline
                  Edouard Abramovich
                  last edited by

                  My frist pygo has been updated via the pylife application but the second one was blocked. I managed to update it manually. I didn't need to use the serial terminal: when the pylife app triggers an update, the access point PyCom_AP_Firmware_Update becomes available and I could follow the manual procedure starting with an additional ota-reboot.

                  Both of my pygos are now up to date but they are still overheating: they stop charging after about 5 minutes. I never managed to charge past 2%.
                  In addition, when I place a pygo on the charger, the pylife app rarely detects it. It seems like the bluetooth advertisement is randomly active. I can see it on a bluetooth scanner sometimes but it never stays on for very long and most of the time it is off, even though the pygo screen is on with the battery symbol.

                  H 1 Reply Last reply Reply Quote 0
                  • P Offline
                    Peter Bankuti
                    last edited by Peter Bankuti

                    @Pete-Allen-0
                    Today i am going to try again. During the night i checked this page also on my mobile phone and could find relevant info in the troubleshooting part that did not display earlier on my laptop (with 4K display). This has been fixed for now so i think i have a better understanding than before. If i am right my PyGo1 might have been affected by the GPS lock issue and i should expect even that board to become reactive again after it self-discharges at some time. Is that right?

                    Based on the info which was not rendering earlier, the manual firmware upgrade seems to be relatively easy and am willing to try as i program ARM Cortex chips in a very similar fashion each day. I got a MAX32625PICO board with a DAPLink firmware on it. If i get it right, ESP32's ESPLink is based on DAPLink, so maybe(?) i just should connect UART2 pins located on the JTAG/SWD header of the MAX32625PICO to P0 and P1 on the PyGo and also GND and +5V of the MAX32625 to P1 and P4. After which i just type upgrade() into the serial console to let PyGo start its WiFi. The process after that is described clearly, i just should come to that point without damaging the board. However during the night i also found a sentence in the PyGo datasheet at the top of page 7:

                    "The PYGO features an on–board voltage regulator that takes 3.5V – 5.5V from the VIN pin and
                    regulates it to 3.3V. It is important to only use the 3.3V as an output and not try to feed 3.3V into this pin as this could damage the regulator."

                    So right now i am still confused if it was a good idea to apply any external power to P1 and P0 pins on the PyGo as the last thing i want is to damage my devices by doing so. Can you please clarify if that sentence contains valid info or that sentence does not apply any more?

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      Peter Bankuti @arikb
                      last edited by

                      @arikb said in Getting started with PyGos and Pylife:

                      Also, could you remove the 600 seconds between message limitation here?

                      I guess Pycom made that 600 seconds limitation to comply TTN's fair usage policy. However if i get it right, Pycom also offers its own LoRaWan network and i am not aware on similar limitations on that. However this is just i wild guess from my side, as i did not manage as far as you. My boards do not let me provisioning them.

                      arikbA 1 Reply Last reply Reply Quote 0
                      • B Offline
                        Brian Wyld @Pete Allen 0
                        last edited by

                        @Pete-Allen-0 can you list the functions of the other pins? I assume 2 are tx/rx for the UART?

                        p1 - GND
                        p2 - ?
                        p3 - ?
                        p4 - +5V INPUT
                        p5 - ?
                        p6 -?

                        P 1 Reply Last reply Reply Quote 0
                        • arikbA Offline
                          arikb @Peter Bankuti
                          last edited by

                          @Peter-Bankuti I meant the 600 seconds delay in replying to forum messages...

                          1 Reply Last reply Reply Quote 0
                          • P Offline
                            Peter Bankuti @Brian Wyld
                            last edited by Peter Bankuti

                            @Brian-Wyld
                            This is a very good question as the datasheet contains a pin table but for sure one can not identify which pins do they mean. This should be fixed in the doc.

                            In the webshop i found a picture about the mainboard of the USB cradle, this might help us to get an idea:

                            alt text

                            However there is a sentence on page 7 of the datasheet. If i get that sentence right, P4 is meant to be +5V OUTPUT only, in which case the only way the PyGo is meant to be powered is the wireless charger. If i get it right also the cradle charges wirelessly and does not apply +5V INPUT to P4... or may be the datasheet is outdated. Am actually waiting to an answer for this question, but that is something only a pycom engineer can answer.

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

                              Got my 2 Pygo1 devices yesterday.

                              • connection to pylife app eventually worked for device when on the charger
                              • after a couple of goes, managed to update the firmware to latest version on both using the app
                              • wireless charging makes the device VERY hot, and it never seems to actually charge - the battery animation seems to show it charging but the pylife app never shows more than 0% battery for either unit
                              • when not on charge, the device is dead (not visible on bluetooth, disconnected in pylife) very quickly
                              • no response to tapping the screen whether on charge or not (both devices are configured in 'performance' mode so should be always on)
                              • no wifi AP to connect telnet o get the REPL expect when doing firmware...

                              I'm not managing much progress here...

                              1 Reply Last reply Reply Quote 0
                              • B Offline
                                bomtarnes Pycom Ambassadors @Pete Allen 0
                                last edited by

                                @Pete-Allen-0 at this point I cannot get beyond the "checking for updates" point. If you say there is a way to update over USB then you should either A) offer us the USB cradle as a free/heavily discounted upgrade or B) offer an RMA service to exchange these inadequately tested units for working ones.

                                Fed up.

                                P R K 3 Replies Last reply Reply Quote 1
                                • P Offline
                                  Peter Bankuti @bomtarnes
                                  last edited by

                                  @bomtarnes +1

                                  1 Reply Last reply Reply Quote 0
                                  • arikbA Offline
                                    arikb
                                    last edited by

                                    Here are my results so far.

                                    Out of the 4 devices I have, I managed to upgrade 3. None of them through the app. One of my devices now is completely non-responsive, in the sense that it won't even charge. I'm going to leave it be with the hope that it will somehow go through the battery-depleted-reset process. I hope I didn't fry it with over-heating on the charge plate cum induction oven or otherwise bricked it.

                                    My process of upgrading is as follows:

                                    • Place on the charger
                                    • Go through the app to firmware upgrade
                                    • Start the firmware upgrade, all the way to its (for me) inevitable failure
                                    • Make sure the phone is disconnected from the wireless network PyCom_AP_Firmware_Update
                                    • Using my laptop, generally follow the instructions in https://github.com/pycom/pycom-documentation/blob/pylife/content/pylife/fwupdate/_index.md#manual-firmware-update-from-computer with the following modifications:
                                      • Entirely skipping step 2, since the device is already in the upgrade mode, as evident by the existence of the PyCom_AP_Firmware_Update wireless network
                                      • The password in step 3 is www.pycom.io and not as written
                                      • Sometimes the firmware upload step (step 4, 3rd command) fails with a network error. Repeating this step works.
                                      • Sometimes the ota-verify command (step 4, 5th command) fails with an error message (although the HTTP request succeeds, see example below). In this case I started step 4 from the 1st command and it worked.
                                      • The ota-reboot command (step 4, 6th command) never returns (i.e. the curl hangs and eventually times out). My guess is that it reboots immediately during the processing of the command and doesn't bother terminating the HTTP request correctly. Nevertheless it does reboot and the process is successful.

                                    Here is an example of the command sequence succeeding:

                                    1st command - ota-init:

                                    arikb@txps:~/Downloads$ curl -v --request GET http://192.168.4.1/status -H "FW-Header-1: ota-init"
                                    Note: Unnecessary use of -X or --request, GET is already inferred.
                                    *   Trying 192.168.4.1:80...
                                    * Connected to 192.168.4.1 (192.168.4.1) port 80 (#0)
                                    > GET /status HTTP/1.1
                                    > Host: 192.168.4.1
                                    > User-Agent: curl/7.81.0
                                    > Accept: */*
                                    > FW-Header-1: ota-init
                                    > 
                                    * Mark bundle as not supporting multiuse
                                    < HTTP/1.1 200 OK
                                    < Content-Type: text/html
                                    < Content-Length: 6
                                    < Status: OK
                                    < 
                                    * Connection #0 to host 192.168.4.1 left intact
                                    Statusarikb@txps:~/Downloads$
                                    

                                    2nd command - ota-update:

                                    arikb@txps:~/Downloads$ curl -v --request GET http://192.168.4.1/status -H "FW-Header-1: ota-update"
                                    Note: Unnecessary use of -X or --request, GET is already inferred.
                                    *   Trying 192.168.4.1:80...
                                    * Connected to 192.168.4.1 (192.168.4.1) port 80 (#0)
                                    > GET /status HTTP/1.1
                                    > Host: 192.168.4.1
                                    > User-Agent: curl/7.81.0
                                    > Accept: */*
                                    > FW-Header-1: ota-update
                                    > 
                                    * Mark bundle as not supporting multiuse
                                    < HTTP/1.1 200 OK
                                    < Content-Type: text/html
                                    < Content-Length: 6
                                    < Status: Pending OTA UPDATE
                                    < 
                                    * Connection #0 to host 192.168.4.1 left intact
                                    Statusarikb@txps:~/Downloads$ 
                                    

                                    3rd command - firmware upload:

                                    arikb@txps:~/Downloads$ curl --request POST --data-binary @firmware_pygo1_1.20.4.r4-pylife.bin http://192.168.4.1/update
                                    arikb@txps:~/Downloads$
                                    

                                    3rd command - example of failure:

                                    arikb@txps:~/Downloads$ curl --request POST --data-binary @firmware_pygo1_1.20.4.r4-pylife.bin http://192.168.4.1/update
                                    curl: (56) Recv failure: Connection reset by peer
                                    arikb@txps:~/Downloads$
                                    

                                    4th command - ota-finish:

                                    arikb@txps:~/Downloads$ curl -v --request GET http://192.168.4.1/status -H "FW-Header-1: ota-finish"
                                    Note: Unnecessary use of -X or --request, GET is already inferred.
                                    *   Trying 192.168.4.1:80...
                                    * Connected to 192.168.4.1 (192.168.4.1) port 80 (#0)
                                    > GET /status HTTP/1.1
                                    > Host: 192.168.4.1
                                    > User-Agent: curl/7.81.0
                                    > Accept: */*
                                    > FW-Header-1: ota-finish
                                    > 
                                    * Mark bundle as not supporting multiuse
                                    < HTTP/1.1 200 OK
                                    < Content-Type: text/html
                                    < Content-Length: 6
                                    < Status: OK
                                    < 
                                    * Connection #0 to host 192.168.4.1 left intact
                                    Statusarikb@txps:~/Downloads$ 
                                    

                                    5th command - ota-verify:

                                    arikb@txps:~/Downloads$ curl -v --request GET http://192.168.4.1/status -H "FW-Header-1: ota-verify"
                                    Note: Unnecessary use of -X or --request, GET is already inferred.
                                    *   Trying 192.168.4.1:80...
                                    * Connected to 192.168.4.1 (192.168.4.1) port 80 (#0)
                                    > GET /status HTTP/1.1
                                    > Host: 192.168.4.1
                                    > User-Agent: curl/7.81.0
                                    > Accept: */*
                                    > FW-Header-1: ota-verify
                                    > 
                                    * Mark bundle as not supporting multiuse
                                    < HTTP/1.1 200 OK
                                    < Content-Type: text/html
                                    < Content-Length: 6
                                    < Status: OK
                                    < 
                                    * Connection #0 to host 192.168.4.1 left intact
                                    Statusarikb@txps:~/Downloads$ 
                                    

                                    5th command - example of failure:

                                    arikb@txps:~/Downloads$ curl -v --request GET http://192.168.4.1/status -H "FW-Header-1: ota-verify"
                                    Note: Unnecessary use of -X or --request, GET is already inferred.
                                    *   Trying 192.168.4.1:80...
                                    * Connected to 192.168.4.1 (192.168.4.1) port 80 (#0)
                                    > GET /status HTTP/1.1
                                    > Host: 192.168.4.1
                                    > User-Agent: curl/7.81.0
                                    > Accept: */*
                                    > FW-Header-1: ota-verify
                                    > 
                                    * Mark bundle as not supporting multiuse
                                    < HTTP/1.1 200 OK
                                    < Content-Type: text/html
                                    < Content-Length: 6
                                    < Status: Error(5)
                                    < 
                                    * Connection #0 to host 192.168.4.1 left intact
                                    Statusarikb@txps:~/Downloads$ 
                                    

                                    Note the Status: Error(5) message on the 4th line from the bottom.

                                    6th command - ota-reboot:

                                    arikb@txps:~/Downloads$ curl -v --request GET http://192.168.4.1/status -H "FW-Header-1: ota-reboot"
                                    Note: Unnecessary use of -X or --request, GET is already inferred.
                                    *   Trying 192.168.4.1:80...
                                    * Connected to 192.168.4.1 (192.168.4.1) port 80 (#0)
                                    > GET /status HTTP/1.1
                                    > Host: 192.168.4.1
                                    > User-Agent: curl/7.81.0
                                    > Accept: */*
                                    > FW-Header-1: ota-reboot
                                    > 
                                    * Recv failure: Connection timed out
                                    * Closing connection 0
                                    curl: (56) Recv failure: Connection timed out
                                    arikb@txps:~/Downloads$ 
                                    

                                    Note that the time out error message at the bottom happens after several minutes.

                                    B 1 Reply Last reply Reply Quote 0
                                    • B Offline
                                      bomtarnes Pycom Ambassadors @arikb
                                      last edited by

                                      Mine never gets as far as showing the wifi access point.

                                      arikbA 1 Reply Last reply Reply Quote 0
                                      • arikbA Offline
                                        arikb @bomtarnes
                                        last edited by

                                        @bomtarnes I get it to show the access point by going through the firmware update process in the app. At least for me (Android, PyLife app version 1.0.9) when the firmware update process fails, it leaves the unit in a mode with the access point turned on. Then I disconnect the phone's Wi-Fi (if still connected) and then connect from my computer.

                                        P 1 Reply Last reply Reply Quote 0
                                        • P Offline
                                          Peter Bankuti @arikb
                                          last edited by

                                          @arikb I can not get to starting the firmware update in the app. I get stuck during the scan process, where i should give the PyGo an alias name. The android app on my phone (Samsung Galaxy S7 with stock Android 8.0.0) does not accept anything no matter what i type there as input. (Tried also any formatting i can just think of). All i get is NOT_VALID_DEVICE response from the app and the PyGo does not turn on as an AP. Can you please tell me on what phone/Android version is working on your side?

                                          arikbA 1 Reply Last reply Reply Quote 0
                                          • arikbA Offline
                                            arikb @Peter Bankuti
                                            last edited by

                                            @Peter-Bankuti I have a OnePlus 5T with a (rather old) CyanogenMod OS based on Android 9. Had no trouble at all scanning and adding and naming the devices.

                                            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
                                            • 2
                                            • 5
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 7 / 9
                                            • First post
                                              Last post

                                            Pycom on Twitter

                                            Pycom