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

    Pymesh updates

    Scheduled Pinned Locked Moved Firmware
    loraenhancementpymesh
    73 Posts 13 Posters 12.7k Views 18 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.
    • catalinC Offline
      catalin
      last edited by catalin

      Hi community 🙌

      I want to share with you the Pymesh (LoRa Mesh) current development and plans; last release of Pymesh is in v1.20.0.rc7
      For starting, this is my Pymesh presentation(workshop) done at TTN Conf Jan 2019 Amsterdam; if you have any questions 🗣
      As I've said in a previous mail, currently I'm working on the Border Router feature, I try to explain in a nice micropy script, basically how Pymesh data can be exposed outside of mesh, on Wifi/BLE/Cellular to the ☁.
      Not to forget the 📕 were copied here: https://docs.pycom.io/firmwareapi/pycom/network/lora/pymesh.html and https://docs.pycom.io/tutorials/lora/lora-mesh.html with a disclaimer, as Pymesh is included just in RC (development) releases.
      But, no worries, 😅 we'll include it in the first official stable.
      We're planning in releasing firmware releases with and without Pymesh, due to relatively large (~200KB) code-size.
      I'm working at the road-plan for further Pymesh features.
      Long-term plan is exposing more openthread features, make tons of tests (lots of nodes, distance); connect Pymesh with Pybytes, optimise power-consumption, security for private Pymesh, profile some KPI (data able to be sent over Pymesh), and of course share all plans with community (basically I will open-source the micropy scripts presented in workshop, have some articles to explain all use-cases).
      Just let me know your thoughts, about the further projects, and we could include requirements into official development.

      Catalin,

      Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
      Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

      T J catalinC 3 Replies Last reply Reply Quote 2
      • T Offline
        thinginnovations @catalin
        last edited by

        Thanks for the update.

        When a node designated as a router receives a packet is this automatically sent out to the neighbours or does the application code need to resend to neighbours in the receiver callback function?

        Thanks, trying to understand the process as I'm starting to build a larger mesh of nodes.

        Thanks

        Andrew

        1 Reply Last reply Reply Quote 0
        • catalinC Offline
          catalin
          last edited by

          hi Andrew,

          The router sends (routes) a packet to the destination, using the internal Thread routing(vector-distance algorithm). There could be some trouble, as the IPv6 of the destination should be known (either RLOC or ML-EID from here).
          In the TTN conf scripts I've implemented some sort or ARP (MAC to IP resolution), so node with LoRa MAC 0xA can send a message to the node 0xB, without knowing B's IPv6 (internally node A interrogates Leader to find IP of node B).
          I'll try to open-source them ASAP.

          Catalin,

          Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
          Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

          1 Reply Last reply Reply Quote 0
          • catalinC Offline
            catalin
            last edited by catalin

            For the Networks Engineers 🤓, this are the OSI Layers that are stacked into LoRa Mesh (Pymesh) feature:
            0_1551267465638_Screenshot 2019-02-27 at 13.36.32.png
            So, @thinginnovations Andrew, the IPv6 routing is already handled at Transport level.

            Catalin,

            Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
            Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

            1 Reply Last reply Reply Quote 0
            • J Offline
              Jordan Reyes @catalin
              last edited by

              @catalin Awesome when do you think stable version to be released?

              catalinC 1 Reply Last reply Reply Quote 0
              • catalinC Offline
                catalin @Jordan Reyes
                last edited by

                Hi @jordan-reyes, announcing a stable release with Pymesh included, it's not a matter of Pymesh being not stable. There are some other features/improvements that need to be tested in whole firmware. Sorry, I don't know more details, probably the bugs/requests were raised on forum :)

                Some new Pymesh features were just released internally (so they will be incorporated in the next RC, probably this Friday) plus some example scripting for Border Router:

                • added socket binding to IP, add listing border_router
                • BUG: src and dest port on BR should he Host Swapped
                • Mesh.rx_cb() added argument, with the callback
                • added Mesh.border_router_del(prefix) method, for erasing Border Router entry
                • added multi-socckets (max 3)
                • added Border Router socket with header IP and port destination
                  I did not forgot, we'll open-source some Pygo example scripts, as promised. I need to update/test for the new release.

                Plus, working on some Pymesh Roadmap...

                Catalin,

                Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                1 Reply Last reply Reply Quote 1
                • catalinC Offline
                  catalin
                  last edited by

                  Hello everyone,

                  In the release 1.20.0.rc8 the Pymesh was updated, please check https://forum.pycom.io/topic/4499/firmware-release-candidate-v1-20-0-rc8

                  As usual, let me know what's not clear, the Border Router example a bit too simple.

                  Catalin,

                  Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                  Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                  T J 2 Replies Last reply Reply Quote 1
                  • T Offline
                    thinginnovations @catalin
                    last edited by

                    @catalin ooo, interesting. Thanks for the update.

                    Andrew

                    1 Reply Last reply Reply Quote 0
                    • J Offline
                      Jordan Reyes @catalin
                      last edited by

                      @catalin had a lot of issues with 1.20.0.rc7 almost all nodes were corrupted with guru meditation error on lora.mesh. the mesh seemed to be the issue, The error did not seem to be on previous versions, (although it wasn't run very long on previous version prior to update), I am hoping with rc8 this problem is fixed....

                      catalinC 1 Reply Last reply Reply Quote 0
                      • catalinC Offline
                        catalin @Jordan Reyes
                        last edited by

                        Hi Jordan,
                        Yes, please try the RC8 release, I did not had any issue with RC7, either.
                        Now I am running the Pymesh with ~30 micropython scripts (sending data to the Cloud, using Wifi and BLE), also creating Pymesh with 20+ nodes(lopy4 and Fipy), no Error found.

                        Catalin,

                        Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                        Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                        J 2 Replies Last reply Reply Quote 0
                        • J Offline
                          Jordan Reyes @catalin
                          last edited by Jordan Reyes

                          @catalin with both deployed is orignial lopy, not lopy4 would this be any difference with about 12 nodes. it was running for a bit and then would crash, but we weren't getting stable communication either, some were more consistent then others.

                          1 Reply Last reply Reply Quote 0
                          • J Offline
                            Jordan Reyes @catalin
                            last edited by

                            @catalin deployed rc8 upon boot up nodes hit (outside With Line of sight ) and they are suppose to respond every ten seconds, some responsive more than others but after some time they do not send data anymore. Sometimes it lasts an hour sometimes a day but it is not reliable. What is environment you are running your set upon. We are covering about 2.25-2.5 km.

                            catalinC 1 Reply Last reply Reply Quote 0
                            • catalinC Offline
                              catalin @Jordan Reyes
                              last edited by

                              @jordan-reyes I did not properly tested Pymesh on Lopy1, mainly because the scripts that I use, occupy lots of RAM.
                              What LoRa params are you using, spreading-factor, bandwidth? I would start tests with fastest datarate (SF7, BW 250). Are you printing the RSSI values, if they are at the border (for that SF, for ex: lower than -115), there could be corrupted packets, that Node could exit/re-enter the Mesh.
                              10 seconds is a small waiting time; Mesh internally sends, every 32 seconds, sends a keepalive between each pair of neighbours (last communication is in the age field from Mesh.neighbors() and Mesh.routers()).

                              Catalin,

                              Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                              Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                              J 2 Replies Last reply Reply Quote 1
                              • J Offline
                                Jordan Reyes @catalin
                                last edited by

                                @catalin SF is 7, Bandwidth is 125. The RssI values were not being printed.

                                1 Reply Last reply Reply Quote 0
                                • catalinC Offline
                                  catalin
                                  last edited by

                                  Hi community 🙌,
                                  I've been busy lately making Pymesh application protocol more robust ⚙.
                                  I've just released a relatively large 🐘 micropy project using Pymesh: https://github.com/pycom/pycom-libraries/tree/master/lib/pymesh
                                  It was tested on a 20+ Mesh network on Lopy4 and Fipy (sorry Lopy1 can't work with these scripts, due to scripts size and RAM requirements).
                                  I am really waiting for your comments and PRs, I foresee tons of improvements 🤓.

                                  Heads-up, I am working on a visual tool, like a Pymesh viewer to actually click buttons and follow Pymesh evolution. Most probably connecting Pymesh to Pybytes 🌥.

                                  Catalin,

                                  Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                                  Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                                  R 1 Reply Last reply Reply Quote 0
                                  • catalinC Offline
                                    catalin
                                    last edited by

                                    Just a small note, the v1.20.0.rc8 for Fipy and Pybytes scripts doesn't have Mesh class inside LoRa (so no Pymesh feature included).
                                    Due to an error, Pymesh was excluded on Lopy4 rc8 builds, too; this is about to be fixed as I speak.

                                    Catalin,

                                    Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                                    Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                                    1 Reply Last reply Reply Quote 0
                                    • R Offline
                                      rfinkers @catalin
                                      last edited by rfinkers

                                      @catalin said in Pymesh updates:

                                      It was tested on a 20+ Mesh network on Lopy4 and Fipy (sorry Lopy1 can't work with these scripts, due to scripts size and RAM requirements).

                                      Does it work on the L01? It has the same amount of RAM and flash as the Lopy4.

                                      catalinC 1 Reply Last reply Reply Quote 0
                                      • catalinC Offline
                                        catalin @rfinkers
                                        last edited by

                                        @rfinkers yes, it should work fine with L01, due to increased RAM+Flash.

                                        Catalin,

                                        Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                                        Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

                                        1 Reply Last reply Reply Quote 0
                                        • catalinC Offline
                                          catalin
                                          last edited by catalin

                                          Hi community,

                                          I've released a beta version of the Pymesh mobile app:

                                          • iOS(>v12.1, TestFlight app from Apple is required): https://testflight.apple.com/join/PIxwbTKp
                                          • Android(>v4.4): https://github.com/pycom/pymesh_apps/tree/master/mobile_app/android

                                          In this repo there are firmware binaries (but latest development should work too), and micropy scripts (but https://github.com/pycom/pycom-libraries/tree/master/lib/pymesh should be also fine).

                                          Catalin,

                                          Have you checked out our docs for the answer? (Now with an easy search function) https://docs.pycom.io
                                          Check out our newly revamped device management platform, Pybytes! https://pybytes.pycom.io/

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

                                            Any news about pymesh ? Any example how the border router can connect to the internet and provide it to the rest of the network ?

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

                                            Pycom on Twitter

                                            Pycom