This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

border router using nrf52

Hi, we have the need to implement the border router functionality for 6loWPAN in our device using a nRF52840.

Essentially we need to replace the Raspberry Pi in your examples with our device having internet connectivity. The device has a custom RTOS - no Linux possible. Preferably all bluetooth related processing to be done in nRF chip, IPv6 routing however will be the device's job.

The client nodes would be smaller battery powered devices with same chip (we are looking for long range coded mode of operation). There is no need for mesh, but simple one to many connections. Bandwidth is not a concern, very small amount of data need to be transferred.

Is such a solution even possible using your chipset / SDK? Is it possible to have multiple L2CAP channels open at the same time to many devices (up to 10)? Which node should be in this case advertising (preferably BR since it has permanent power)?

Any example code?

Regards

Parents
  • I'm still looking into this, but this is my answer right now.

    It should be possible, but we haven't implemented all the pieces.

    If my understanding is correct, you want to run IPSP router role and 6LoWPAN border router on the nRF52840. And then have some serialized interface controlling it from this other device of yours.

    Our SoftDevice supports Connection Oriented Channels with the Credit Based Flow Control Mode in the GAP central role, which is required by IPSP router role.

    We have an IPSP library that supports router role, and we have an example in the SDK using this, see the IPSP initator example. I'm trying to get some more information on how many connections this has been tested with, but I'll have to get back to you on that.

    We have not implemented 6LoWPAN border router, so this is something that you have to implement yourself.

    Also, currently only nRF52832 with S132 is supported. It should work on nRF52840 with S140, but it just hasn't been tested.

Reply
  • I'm still looking into this, but this is my answer right now.

    It should be possible, but we haven't implemented all the pieces.

    If my understanding is correct, you want to run IPSP router role and 6LoWPAN border router on the nRF52840. And then have some serialized interface controlling it from this other device of yours.

    Our SoftDevice supports Connection Oriented Channels with the Credit Based Flow Control Mode in the GAP central role, which is required by IPSP router role.

    We have an IPSP library that supports router role, and we have an example in the SDK using this, see the IPSP initator example. I'm trying to get some more information on how many connections this has been tested with, but I'll have to get back to you on that.

    We have not implemented 6LoWPAN border router, so this is something that you have to implement yourself.

    Also, currently only nRF52832 with S132 is supported. It should work on nRF52840 with S140, but it just hasn't been tested.

Children
  • We are developing device, having a LTE modem and a nRF52840 module. We need to pass data from remote BLE sensors to a server and back. So the sensor would advertise it's presence (I understand this is the typical scenario in BLE), the central(our device) would connect to the sensors and establish a 6loWPAN/L2CAP link, passing IPv6 frames in both directions.

    I would like to implement 6loWPAN and lower layers on the nRF module using your SDK, then passing IPv6 frames over UART to our device, which will do the rest. So no IPv6 processing on the BLE module will be done. No routing between nodes is necessary.

    I'm working on a POC using your Acceptor/Initiator examples. My only concern is this, is it possible to have multiple connected nodes to a central device at the same time? Does your SDK support this? Or do I have to connect each sensor in a round-robin fashion.

  • Understood.

    The acceptor/initatior examples are good starting points. I would also recommend having a look at the IPv6 Medium Interface library. This is a rather biased in design towards the node role, but it can be used as a starting point as well.

    Yes, it is possible to have multiple links. This will of course reduce your throughput per link, and it will also increase the RAM consumption. So it may not be black and white, you must consider if you want to have 10 concurrent links or round-robin, or something in between.

  • Hi Petter,

    I am trying to accomplish almost same as the original poster (Ales) - it's been three years, wondering what's changed that I can use today. Biggest difference/ improvement by far NCS, which gives us access to Zephyr's vast networking resources.

    Using nRF52833, the plan, simply put, is to allow mobile device/s (acting as border router, instead of RPi) to connect via BLE to nRF52833.

    Any recommendations you may have will be greatly appreciated. Also looks like "IPv6 Medium Interface library" that you referenced earlier, I can't find it in the current nRF5 v17.0.2. Would also like to get your recommendation if nRF5 or NCS (given resources, components available in those respective environments) would be preferred environment for implementing what I am looking to accomplish?

Related