This application is the simplest one to utilize our mesh networking stack. It just joins your device to the unsecure 6LoWPAN-ND network. The canonical source for this example lives at https://github.com/ARMmbed/mbed-os-example-mesh-minimal

Example mesh application for Mbed OS

With this application, you can use our mesh networking stack. This application joins your device to the unsecure 6LoWPAN-ND network.

Setup

Building with Mbed CLI

If you'd like to use Mbed CLI to build this offline, then you should refer to the Mbed CLI documentation. The instructions here relate to using the Mbed Online Compiler

  1. Click `Import this application` button.
  2. Change the channel settings: See the file `mbed_app.json` for an example of defining an IEEE 802.15.4 channel to use.
  3. Compile the application

A binary is generated at the end of the build process.

Connect the RF shield to the board

By default, we are using the Atmel AT86RF233, which you can purchase. Place the shield on top of your board, and power it on.

Program the target

Drag and drop the binary to the target to program the application.

Update the firmware of the border router.

You can read the instructions on updating the firmware of your board working as 6LoWPAN border router here.

Please remember to connect the Ethernet cable between the border router and your router. Then, power up the board.

Testing

As soon as both the border router and the target are up and running, you can verify the correct behavior. Open a serial console, and see the IP address obtained by the device.

Note: This application uses a baud rate of 115200.

Quote:

connected. IP = 2001:db8:a0b:12f0::1

You can use this IP address to ping from your PC and verify that the connection is working correctly.

Changing the radio driver (optional)

To run a 6LoWPAN-ND network, you need a working RF driver for Nanostack. This example uses the Atmel AT86RF233 by default.

To change the RF driver:

  1. Uninstall the Atmel RF driver.
  2. Install the new driver. (For example, for the FRDM-CR20A radio shield based on the MCR20A device.)
  3. Recompile your application.
Committer:
mbed_official
Date:
Mon Aug 19 14:00:33 2019 +0100
Revision:
128:e7faff9c9fd9
Parent:
119:9974bf303a9c
Child:
129:efd4642eb943
Merge branch 'mbed-os-5.13'

* mbed-os-5.13:
Updating mbed-os to mbed-os-5.13.3 (#275)
Update mesh_minimal_startup.py
Updating mbed-os to mbed-os-5.13.2 (#274)

.
Commit copied from https://github.com/ARMmbed/mbed-os-example-mesh-minimal

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 48:6989357c35c5 1 # Notes on different hardware
mbed_official 48:6989357c35c5 2
mbed_official 48:6989357c35c5 3 As this example runs on multiple different mbed OS development boards there might be combinations of board and RF shields that may, or may not, work together due to pin collision or other reasons.
mbed_official 48:6989357c35c5 4
mbed_official 48:6989357c35c5 5 This page aims to collect information regarding different hardware combinations.
mbed_official 48:6989357c35c5 6
mbed_official 48:6989357c35c5 7 ## RF shields
mbed_official 48:6989357c35c5 8
mbed_official 48:6989357c35c5 9 Following RF shield have been used with mbed OS mesh examples.
mbed_official 48:6989357c35c5 10
mbed_official 48:6989357c35c5 11 * [FIREFLY 6LOWPAN ARDUINO SHIELD](https://firefly-iot.com/product/firefly-arduino-shield-2-4ghz/)
mbed_official 48:6989357c35c5 12 * [Freedom Development Board for MCR20A](http://www.nxp.com/products/software-and-tools/hardware-development-tools/freedom-development-boards/freedom-development-board-for-mcr20a-wireless-transceiver:FRDM-CR20A)
mbed_official 48:6989357c35c5 13 * [X-NUCLEO-IDS01A4](http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-connect-hw/x-nucleo-ids01a4.html)
mbed_official 48:6989357c35c5 14 * [DVK-NCS36510-MBED-GEVB](https://developer.mbed.org/platforms/NCS36510/) Development board, contains internal RF chip.
mbed_official 48:6989357c35c5 15
mbed_official 48:6989357c35c5 16 ## Tested development boards
mbed_official 48:6989357c35c5 17
mbed_official 48:6989357c35c5 18 Following table shows which development boards have been tested. It does not present our current testing infrastructure, so we cannot guarantee all combinations but we do our best to ensure it is up to date.
mbed_official 48:6989357c35c5 19
mbed_official 48:6989357c35c5 20 | board / RF shield | Atmel | MCR20A | X-NUCLEO-IDS01A4 |
mbed_official 48:6989357c35c5 21 |-------------------|-------|-----|------------------|
mbed_official 48:6989357c35c5 22 | K64F | <span style='background-color: #5f5;'>Yes</span> | <span style='background-color: #5f5;'>Yes</span> | |
mbed_official 48:6989357c35c5 23 | <span style='background-color: #ff5;'>NUCLEO_F429ZI **(1)**</span> | <span style='background-color: #5f5;'>Yes</span> | <span style='background-color: #5f5;'>Yes</span> | <span style='background-color: #ff5;'>Modified, **(3)**</span> |
mbed_official 48:6989357c35c5 24 | NUCLEO_F401RE | <span style='background-color: #5f5;'>Yes</span> | | |
mbed_official 48:6989357c35c5 25 | UBLOX_EVK_ODIN_W2 | <span style='background-color: #5f5;'>Yes</span> | <span style='background-color: #f00;'>No. **(2)**</span> | |
mbed_official 48:6989357c35c5 26 | Onsemi NCS36510 <span style='background-color: #5f5;'>(internal RF)</span> | | | |
mbed_official 56:cc8dcb8037c6 27 | NXP KW24D <span style='background-color: #5f5;'>(internal RF)</span> | | <span style='background-color: #5f5;'>Yes **(4)**</span> | |
mbed_official 119:9974bf303a9c 28 | NXP KW41Z <span style='background-color: #5f5;'>(internal RF)</span> | | | |
mbed_official 56:cc8dcb8037c6 29 | <span style='background-color: #ff5;'>NUCLEO_L476RG **(6)**</span> | <span style='background-color: #5f5;'>Yes</span> | | |
mbed_official 48:6989357c35c5 30
mbed_official 48:6989357c35c5 31
mbed_official 48:6989357c35c5 32 **Notes:**
mbed_official 48:6989357c35c5 33
mbed_official 48:6989357c35c5 34 1. If ethernet driver is enabled, requires HW modifications if RF shield uses SPI1. See [Driver notes](https://github.com/ARMmbed/sal-nanostack-driver-stm32-eth) and [nanostack-borderrouter-private Issue #17](https://github.com/ARMmbed/nanostack-border-router-private/issues/17)
mbed_official 48:6989357c35c5 35 2. Pin collision, see [mesh-minimal Issue 55](https://github.com/ARMmbed/mbed-os-example-mesh-minimal/issues/55)
mbed_official 48:6989357c35c5 36 3. X-NUCLEO-IDS01A4 expansion board required modifications to be used in mbed OS. See [Driver readme](https://github.com/ARMmbed/stm-spirit1-rf-driver)
mbed_official 56:cc8dcb8037c6 37 4. KW24D have MCR20A chip integrated. Use the same driver.
mbed_official 53:82a191e2c133 38 5. KW24D has limited amount of memory (two banks of 32 RAM). For example, for the Thread end device use ARM or GCC_ARM. And for GCC_ARM use [this heap configuration](https://github.com/ARMmbed/mbed-os-example-mesh-minimal/#move-nanostacks-heap-inside-the-system-heap).
mbed_official 56:cc8dcb8037c6 39 6. NUCLEO_L476RF have LEDs on same pins that are used by Atmel RF shield so those should not be used in Light control demo. (LED1 & SPI_SCK == PA_5)