pycom / pycom-libraries

MicroPython libraries and examples that work out of the box on Pycom's IoT modules
330 stars 379 forks source link

Need more LoraMesh examples #70

Open Craigzyc opened 5 years ago

Craigzyc commented 5 years ago

Loramesh looks perfect for my application and I have bought 4 units to test it out.

We really need an example with a border router in order to make this useful. I personally need an ethernet based border router but any example would help.

I would also appreciate an example with firmware upgrade over loramesh.

catalinio commented 5 years ago

Hi @Craigzyc, We're currently working on some ideas for border router, but you could also prototype yours in micropython. You have list of neighbors, you just need to communicate and concatenate that between "Router" nodes.

Craigzyc commented 5 years ago

I would think the best way to create a border router would be to create a python interface that can be installed on a raspberry pi(like nordic openthread sdk which works quite well) or any linux pc really and communicate over serial to one loramesh node or add ethernet to one node to bridge the network.

Either way this works perfectly for my application as long as I can get a proper connection into the network from a full fledged linux os.

I'd like to see some more specs/benchmarks on expected throughput/ping time on medium to large networks as the details so far have been very scarce.

I appreciate all your hard work and look forward to seeing this evolve into a finished concept.

CraigZych commented 5 years ago

This might be a lot more clear once the full python api is published but we also need more information on managing the network, and sleepy nodes if supported.

I'm sure this isn't part of the plans yet but it would be a nice feature if once the network was organized the nodes could optionally drop to the lowest transmission power that kept network stability. In order to implement this there would have to be a method that could be called to put the entire network back into an "add node" mode where all nodes would return to full power then drop again once reorganized.

Will loramesh be open sourced so the community can help and add features like this?

Lastly is there any idea of the regulatory implications of using loramesh in a large deployment or a cross city sensor network?

catalinio commented 5 years ago

hi @CraigZych, Interesting ideas. For now, all openthread cli commands can be used, so you have the basis for implementing in micropython all desired features. For the Border Router feature, on our Lopy/Fipy we have lots of network interfaces (Wifi/Bluetooth/Sigfox/LoraWAN/NB-IoT/Cat M1, even UART), so we could bridge/route between these networks. Loramesh is open-sourced already. Regulatory of the LoRa applies to Loramesh, too. Benchmarks, we're looking into it; for now I've created 10 hops network, and ping return time(per hop) is between 200msec - 500msec, depending on Lora spreading factor. Sometimes, due to updating routing tables, could take longer (I've seen 8sec).

Craigzyc commented 5 years ago

@catalinio

Thank you for the clarification.

I'm planning to use this in a distributed sensor network of about 60 nodes. Nodes will update sensor values every few seconds. Would this be a good use or would the latency be high with that number of updating nodes?

Even though we can create a border router with many of the onboard network interfaces it would be nice to also have the spinel protocol so we can use the raspberry pi or similar as a higher power border router that can also serve our main app.

Do you have any idea when the border router example will be ready?

CraigZych commented 5 years ago

Is it possible to expose the spinel protocol and create a build with the appropriate ncp flags set?

I get that you want to built the border router using the built in radios and network interfaces but is that possible just to get us online in the short term?

That would likely do it for anyone building an application with wifi or ethernet.

Also just a thought, because of the increased latency of lora is there any way to do a message priority where a priority of 1 would get immediately transported if possible. Wondering if maybe using a standard 900mhz radio without the lora latency limitations would be possible. Hexpy ;)

catalinio commented 5 years ago

@CraigZych, @Craigzyc could you contact me on support@pycom.io, to understand more about your project? thanks