Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
MKW41Z512xxx4.ld
Makefile.am
Makefile.platform.am
README.md
alarm.c
diag.c
entropy.c
flash.c
logging.c
misc.c
openthread-core-kw41z-config.h
platform-kw41z.h
radio.c
system.c
uart.c

README.md

OpenThread on NXP(Freescale) Kinetis MKW41Z512 Example

This directory contains example platform drivers for the NXP(Freescale) Kinetis MKW41Z512 based on FRDM-KW41Z hardware platform.

The example platform drivers are intended to present the minimal code necessary to support OpenThread. As a result, the example platform drivers do not necessarily highlight the platform's full capabilities.

Toolchain

Download and install the GNU toolchain for ARM Cortex-M.

In a Bash terminal, follow these instructions to install the GNU toolchain and other dependencies.

$ cd <path-to-openthread>
$ ./script/bootstrap

Build Examples

$ cd <path-to-openthread>
$ ./bootstrap
$ make -f examples/Makefile-kw41z

After a successful build, the elf files are found in <path-to-openthread>/output/kw41z/bin. You can convert them to bin files using arm-none-eabi-objcopy:

$ arm-none-eabi-objcopy -O binary ot-cli-ftd ot-cli-ftd.bin

Flash Binaries

Compiled binaries may be flashed onto the MKW41Z512 using drag-and-drop into the board's MSD Bootloader or the NXP(Freescale) Test Tool or JTAG interface. The NXP(Freescale) Test Tool provides a convenient method for flashing a MKW41Z512 via the J-Link.

Running the example

  1. Prepare two boards with the flashed CLI Example (as shown above).

  2. The CLI example uses UART connection. To view raw UART output, start a terminal emulator like PuTTY and connect to the used COM port with the following UART settings:

    • Baud rate: 115200
    • 8 data bits
    • 1 stop bit
    • No parity
    • No flow control
  3. Open a terminal connection on the first board and start a new Thread network.

    > dataset init new
    Done
    > dataset
    Active Timestamp: 1
    Channel: 13
    Channel Mask: 07fff800
    Ext PAN ID: d63e8e3e495ebbc3
    Mesh Local Prefix: fd3d:b50b:f96d:722d/64
    Master Key: dfd34f0f05cad978ec4e32b0413038ff
    Network Name: OpenThread-8f28
    PAN ID: 0x8f28
    PSKc: c23a76e98f1a6483639b1ac1271e2e27
    Security Policy: 0, onrcb
    Done
    > dataset commit active
    Done
    > ifconfig up
    Done
    > thread start
    Done
  4. After a couple of seconds the node will become a Leader of the network.

    > state
    leader
  5. Open a terminal connection on the second board and attach a node to the network.

    > dataset masterkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    > dataset panid 0x8f28
    Done
    > dataset commit active
    Done
    > ifconfig up
    Done
    > thread start
    Done
  6. After a couple of seconds the second node will attach and become a Child.

    > state
    child
  7. List all IPv6 addresses of the first board.

    > ipaddr
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:c00
    fd3d:b50b:f96d:722d:7a73:bff6:9093:9117
    fe80:0:0:0:6c41:9001:f3d6:4148
    Done
  8. Choose one of them and send an ICMPv6 ping from the second board.

    > ping fd3d:b50b:f96d:722d:7a73:bff6:9093:9117
    16 bytes from fd3d:b50b:f96d:722d:558:f56b:d688:799: icmp_seq=1 hlim=64 time=24ms

For a list of all available commands, visit OpenThread CLI Reference README.md.

You can’t perform that action at this time.