zephyr/samples/bluetooth/mesh_demo
Andrzej Głąbek 20202902f2 dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig
These changes were obtained by running a script  created by
Ulf Magnusson <Ulf.Magnusson@nordicsemi.no> for the following
specification:

1. Read the contents of all dts_fixup.h files in Zephyr
2. Check the left-hand side of the #define macros (i.e. the X in
   #define X Y)
3. Check if that name is also the name of a Kconfig option
   3.a If it is, then do nothing
   3.b If it is not, then replace CONFIG_ with DT_ or add DT_ if it
       has neither of these two prefixes
4. Replace the use of the changed #define in the code itself
   (.c, .h, .ld)

Additionally, some tweaks had to be added to this script to catch some
of the macros used in the code in a parameterized form, e.g.:
- CONFIG_GPIO_STM32_GPIO##__SUFFIX##_BASE_ADDRESS
- CONFIG_UART_##idx##_TX_PIN
- I2C_SBCON_##_num##_BASE_ADDR
and to prevent adding DT_ prefix to the following symbols:
- FLASH_START
- FLASH_SIZE
- SRAM_START
- SRAM_SIZE
- _ROM_ADDR
- _ROM_SIZE
- _RAM_ADDR
- _RAM_SIZE
which are surprisingly also defined in some dts_fixup.h files.

Finally, some manual corrections had to be done as well:
- name##_IRQ -> DT_##name##_IRQ in uart_stm32.c

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2018-11-13 10:44:42 -06:00
..
src dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
CMakeLists.txt samples, tests: Use semi-accurate project names 2018-10-27 21:31:25 -04:00
README.rst samples: bluetooth: mesh: Add basic documentation 2018-03-05 19:53:48 -05:00
prj.conf Bluetooth: mesh_demo: Enable missing options in configuration file 2018-06-27 12:50:24 +03:00
prj_bbc_microbit.conf driver: ILI9340 LCD display driver 2018-05-18 20:21:45 +03:00
prj_nrf51_blenano.conf
sample.yaml

README.rst

.. _ble_mesh_demo:

Bluetooth: Mesh Demo
####################

Overview
********

This sample is a Bluetooth Mesh application intended for demonstration
purposes only. The application provisions and configures itself (i.e. no
external provisioner needed) with hard-coded network and application key
values. The local unicast address can be set using a NODE_ADDR build
variable (e.g. NODE_ADDR=0x0001 for unicast address 0x0001), or by
manually editing the value in the ``board.h`` file.

Because of the hard-coded values, the application is not suitable for
production use, but is quite convenient for quick demonstrations of Mesh
functionality.

The application has some features especially designed for the BBC
micro:bit boards, such as the ability to send messages using the board's
buttons as well as showing information of received messages on the
board's 5x5 LED display. It's generally recommended to use unicast
addresses in the range of 0x0001-0x0009 for the micro:bit since these
map nicely to displayed addresses and the list of destination addresses
which can be cycled with a button press.

A special address, 0x000f, will make the application become a heart-beat
publisher and enable the other nodes to show information of the received
heartbeat messages.

Requirements
************

* A board with Bluetooth LE support, or
* QEMU with BlueZ running on the host

Building and Running
********************

This sample can be found under :file:`samples/bluetooth/mesh_demo` in
the Zephyr tree.

See :ref:`bluetooth setup section <bluetooth_setup>` for details on how
to run the sample inside QEMU.

For other boards, build and flash the application as follows:

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/mesh_demo
   :board: <board>
   :goals: flash
   :compact:

Refer to your :ref:`board's documentation <boards>` for alternative
flash instructions if your board doesn't support the ``flash`` target.