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.

  • 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.

Reply
  • 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.

Children
No Data
Related