1.. zephyr:code-sample:: ble_mesh_demo
2   :name: Mesh Demo
3   :relevant-api: bt_mesh bluetooth
4
5   Implement a Bluetooth Mesh demo application.
6
7Overview
8********
9
10This sample is a Bluetooth Mesh application intended for demonstration
11purposes only. The application provisions and configures itself (i.e. no
12external provisioner needed) with hard-coded network and application key
13values. The local unicast address can be set using a NODE_ADDR build
14variable (e.g. NODE_ADDR=0x0001 for unicast address 0x0001), or by
15manually editing the value in the ``board.h`` file.
16
17Because of the hard-coded values, the application is not suitable for
18production use, but is quite convenient for quick demonstrations of mesh
19functionality.
20
21The application has some features especially designed for the BBC
22micro:bit boards, such as the ability to send messages using the board's
23buttons as well as showing information of received messages on the
24board's 5x5 LED display. It's generally recommended to use unicast
25addresses in the range of 0x0001-0x0009 for the micro:bit since these
26map nicely to displayed addresses and the list of destination addresses
27which can be cycled with a button press.
28
29A special address, 0x000f, will make the application become a heart-beat
30publisher and enable the other nodes to show information of the received
31heartbeat messages.
32
33Requirements
34************
35
36* A board with Bluetooth LE support, or
37* QEMU with BlueZ running on the host
38
39Building and Running
40********************
41
42This sample can be found under :zephyr_file:`samples/bluetooth/mesh_demo` in
43the Zephyr tree.
44
45See :zephyr:code-sample-category:`bluetooth` samples for details on how
46to run the sample inside QEMU.
47
48For other boards, build and flash the application as follows:
49
50.. zephyr-app-commands::
51   :zephyr-app: samples/bluetooth/mesh_demo
52   :board: <board>
53   :goals: flash
54   :compact:
55
56Refer to your :ref:`board's documentation <boards>` for alternative
57flash instructions if your board doesn't support the ``flash`` target.
58
59To run the application on an :ref:`nrf5340dk_nrf5340`, a Bluetooth controller application
60must also run on the network core. The :zephyr:code-sample:`bluetooth_hci_ipc` sample
61application may be used. Build this sample with configuration
62:zephyr_file:`samples/bluetooth/hci_ipc/nrf5340_cpunet_bt_mesh-bt_ll_sw_split.conf`
63to enable mesh support.
64