Unable to connect from nRF52840-PDK to K66F-CR20 6LoWPAN border router


I have a K66F with the CR20 shield, running as the Border Router for 6LoWPAN. The BR is running the ‘stock’ nanostack-border-router, only changing the radio-type. This boots up fine and looks to be working.

On the other hand, I have a nRF52840-PDK running the mbed-os-example-client, again only changing the radio-type and mbed-trace.enable.

The nRF52 boots up and starts bootstrapping the 6LoWPAN, but does not seem to go anywhere. Below is the output of the boot process of both the BR and the client. The last line I see is ‘[DBG ][mlme]: BEA REQ tx’, but I can not find it in any source, so I am unable to debug further. Google has not helped me either. The code is compiled with GCC_ARM toolchain.

Any help would be greatly appreciated. I don’t have other 6LoWPAN capable devices to test with, but the nRF52 is working fine on nRF example code, so I expect the radio to be fine.



Output of client:

Starting mbed Client example
[EasyConnect] IPv6 mode
[EasyConnect] Using Mesh
[EasyConnect] Connecting to Mesh..
[DBG ][core]: Allocate Root Tasklet
[DBG ][6lo ]: P.Init

[DBG ][core]: NS Root task Init
[DBG ][sck ]: Socket Tasklet Generated
[DBG ][nslp]: connect()
[DBG ][mle ]: MLE service init size 32
[DBG ][sck ]: Socket id 0 allocated
[DBG ][m6LND]: Link-layer security NOT enabled.
[DBG ][m6LND]: Channel: 12
[DBG ][m6LND]: Channel page: 0
[DBG ][m6LND]: Channel mask: 4096
[INFO][addr]: Address added to IF 1: fe80::fdff:ffff:ffff:ffff
[DBG ][addr]: LL64 Register OK!
[DBG ][rout]: Added route:
[DBG ][rout]:                    fe80::/64  if:1 src:'Static' id:0 lifetime:infinite
[DBG ][rout]:      On-link (met 128)
[DBG ][rout]: Added route:
[DBG ][rout]:                    ff00::/8   if:1 src:'Static' id:0 lifetime:infinite
[DBG ][rout]:      On-link (met 192)
[INFO][m6LND]: Start 6LoWPAN ND Bootstrap
[DBG ][mle ]: MLE Tasklet Generated
[DBG ][6Bo ]: Start Active Scan
[DBG ][mlme]: chan page 0, mask 1000
[DBG ][mlme]: MAC: Start MLME scan
[DBG ][mlme]: Scan channel 12
[DBG ][mlme]: BEA REQ tx

Output of the BR:

[INFO][brro]: PANID: 691
[WARN][brro]: Security NOT enabled
[INFO][app ]: Starting NanoStack Border Router...
[INFO][app ]: Build date: Oct 29 2017 23:03:41
[INFO][app ]: Using ETH backhaul driver...
[ERR ][brro]: Backhaul interface down failed
[INFO][Eth ]: Ethernet cable connected.
[INFO][addr]: Tentative Address added to IF 2: fe80::a443:dff:fe8a:f3bc
[INFO][addr]: DAD passed on IF 2: fe80::a443:dff:fe8a:f3bc
[INFO][addr]: Tentative Address added to IF 2: 2a01:8280:4473:1001:a443:dff:fe8a:f3bc
[INFO][addr]: DAD passed on IF 2: 2a01:8280:4473:1001:a443:dff:fe8a:f3bc
[INFO][brro]: Backhaul bootstrap ready, IPv6 = 2a01:8280:4473:1001:a443:dff:fe8a:f3bc
[INFO][brro]: Backhaul interface addresses:
[INFO][brro]:    [0] fe80::a443:dff:fe8a:f3bc
[INFO][brro]:    [1] 2a01:8280:4473:1001:a443:dff:fe8a:f3bc
[INFO][brro]: RF channel: 12
[INFO][br  ]: BR nwk base ready for start
[INFO][addr]: Address added to IF 1: fe80::ff:fe00:face
[INFO][br  ]: Refresh Contexts
[INFO][br  ]: Refresh Prefixs
[INFO][addr]: Address added to IF 1: 2a01:8280:4473:1001:0:ff:fe00:face
[INFO][addr]: Address added to IF 1: fe80::202:f661:3802:f009
[INFO][brro]: RF bootstrap ready, IPv6 = 2a01:8280:4473:1001:0:ff:fe00:face
[INFO][brro]: RF interface addresses:
[INFO][brro]:    [0] fe80::ff:fe00:face
[INFO][brro]:    [1] fe80::202:f661:3802:f009
[INFO][brro]:    [2] 2a01:8280:4473:1001:0:ff:fe00:face
[INFO][brro]: 6LoWPAN Border Router Bootstrap Complete.
[INFO][br  ]: Release Context
[INFO][br  ]: Refresh Contexts
[INFO][br  ]: Refresh Prefixs
[INFO][br  ]: ABRO Update and NVM operation OK
[INFO][br  ]: Release Context
[INFO][br  ]: Refresh Contexts
[INFO][br  ]: Refresh Prefixs
[INFO][br  ]: ABRO Update and NVM operation OK

EDIT: Formatting

Palm, meet face. After giving up for the night, and heading in to bed, I had an epiphany. Of course I set the radio of the client to CR20, as I did on the BR, since I had been struggling to get that working for so long. I’ll have to look into getting the radio if the nRF52840 working with mbed, or some other 6LoWPAN stack that works on the nRF. any suggestions welcome.



Unfortunately nRF52840 board is not supported by mbed-os-example-client (https://github.com/ARMmbed/mbed-os-example-client#supported-boards). To get nRF52840 working (in 6LoWPAN mode) there should be a suitable RF driver like (https://github.com/ARMmbed/atmel-rf-driver) and I’m not aware if such RF driver exists for that board.

I have not tested nRF52840 by attaching MCR20 radio on top of it and using RF driver from https://github.com/ARMmbed/mcr20a-rf-driver.