RoadTest: Cypress EZ-BT™ Module Mesh Evaluation Kit
Author: abiswas1993
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: The only comparable product for Bluetooth mesh is Particle Xenon. Particle Argon also has mesh capability and wifi integrated. The cypress also has Global Coexistence Interface (GCI) for Wi-Fi integration.
What were the biggest problems encountered?: Few of the problems I encountered are listed below- 1. Connecting multiple boards arises problem to detect the targeted board and only upload program to the board which was detected with lower serial com number. 2. The mesh client control app sometimes cant communicate with the network nodes properly.
Detailed Review:
The Mesh feature is unique for this kit. In order to build any local network of sensors where the system components are inter dependable and share real-time data, a form of communication is necessary. In a Bluetooth mesh, the nodes (individual devices with Bluetooth mesh capabilities serving different purposes often named according to their functionality i.g. light node, relay, switch, etc) can communicate with each other or any Bluetooth device on the same network. Now, if an internet connection is necessary then a wifi module can be useful and added to the system via UART. My road test is divided into two parts in part 1 I will be setting up the kit to demonstrate the features and getting started steps. Part 2 will be posted later showing a modification of codes to interface different sensor connected to other GPIO pins.
In this roadtest the below point will be discussed -
1. A basic idea of the CYBT-213043-MESH development kit.
2. Create and run the Light Bulb control program using 2 or more boards while at least one will act as a switch and other as dimmable light (at least two boards required).
3. Create a Mesh Network using MeshLighting Android application.
4. Create a Mesh network using the Mesh Client software.
5. Manipulate the Mesh network by both Windows/Android software
Few Features of the CYBT-213043-MESH development kit.
1. A CYW20819 Ultra-Low Power, BLE/BR/EDR Bluetooth 5.0 SoC with an antenna. (The CYW20819 is useful to retrieve the datasheet and processor features). The Spec sheet of CYW20819 can be found here. ( View page or direct download )
2. Sensors-
3. Controls-
4. Onboard 2 channel USB to UART for debug report/overall device status printing and programming.
In order to program the kit and set up a network basically one software package needs to be installed.
Click to download- ModusToolbox Download
After installation, the software ModusToolbox 1.1 can be found on this location - C:\Users\user\ModusToolbox_1.1\eclipse [SDK]
To create and control a network the MeshClient software can be found - C:\Users\user\ModusToolbox_1.1\libraries\bt_20819A1-1.0\components\BT-SDK\common\apps\snip\mesh\peerapps\Windows\MeshClient\Release\x86\MeshClient.exe
The Mesh lighting app for android can be found - C:\Users\user\ModusToolbox_1.1\libraries\bt_20819A1-1.0\components\BT-SDK\common\apps\snip\mesh\peerapps\Android\src\bin
In order to control/communicate between the Bluetooth nodes (different boards) first the role of each board has to be defined. The defined boards then have to be included in a network as individual components. Any boards programmed but not added in a network is called an unprovisioned device while the term provisioning means to add a board to a predefined network. In the first program, one board will be programmed as a led switch which will communicate to the other boards to control their onboard LEDs.
Steps that will be taken:
1. Program one board as a switch to control onboard LEDs of other boards.
2. Program one/two board to act as a dimmable light bulb.
3. Open a network on Mesh Client (Windows) software.
4. Provision the individual boards to the network.
5. Try controlling the light bulb boards using the Mesh Client app as well as the Light Switchboard.
6. Create and control a network by the Mesh lighting app on Android.
File->Modust Toolbox IDE Application--> Choose Target Hardware --> CYBT-213043-MESH
Once loaded the readme.txt file describes the functionality of the switch as - toggling the button will toggle on/off the led on the other boards programmed as the light bulb, Push and hold will change the intensity low->high or vice versa.
In the Modus Toolbox building and programming is easier and was done just by clicking the Build +Program button
While programming the progress can be seen on the serial port-
So the light switch is ready to be provisioned in a network.
Following the same steps as described to program the switch- two boards are programmed as Dimmable Light (Boards which will act as a light bulb)-
I have found that if more than one board is connected through USB to the computer at the same time, the computer picks the board with the smallest com port number assigned and programmed that board. So I was not able to pick specific boards I was targeting. so I disconnected the other boards except for the one I am intending to program.
After programming all the boards, it is time to create a network and provision them to communicate with each other.
Steps Followed (Numbers associated with the text below are mentioned in the below figure)-
1. Insert the Network Name and User.
2. Click create to create the network.
3. Click open to make the network available for other device and to be able to scan other unprovisioned devices.
4. All the status can be seen in this log.
Now after opening the network the next step is to add the nodes to the network. It is preferred to add one by one because sometimes having multiple unprovisioned nodes misses the node names.
1. Clicking Scan Unprovisioned will show the name and UUID of the device (2).
2. Device information. The name can be manipulated by the users.
3. To provision- click Provision and configure. The status can be seen in the log (4 on below figure).
Once all the boards are provisioned, we can now control the light boards/led on the two boards using the Mesh Client App as well as the third board which is programmed as a switch.
Controlling in Mesh Client App-
1. Select the board first (Dimmable light in this case).
2. Clicking Get will show the status of the board or led one the log (5 in below figure).
3. Select the state which we want to put the led (on/off).
4. Click Set to set the selected state (3).
5. Log showing the result from Get/Set.
Selecting On and clicking set, sets the onboard led of the device.
Now the video of a node (Lightswitch) controlling two other nodes (Light Bulb) is shown below-
The Mesh lighting app for android can be found - C:\Users\user\ModusToolbox_1.1\libraries\bt_20819A1-1.0\components\BT-SDK\common\apps\snip\mesh\peerapps\Android\src\bin
In order to add the board to another new network, we have to reprogram the boards again.
So the boards were programmed.
Configuring and controlling a mesh network on the Android app is shown in the following video.
The kit is really great for beginners. Few comments to add-
Yes, I would definitely recommend this kit to anyone trying to understand and develop projects using the Bluetooth mesh feature. The board can be driven by CR2032 batteries and has an idle mode to preserve battery life which is a critical feature for real-time remote applications. It's really fun and easy to play with this kit .
CYW20819 Peripheral Guide (for customization)
Top Comments
That's a nice walk-through showing how to set up the Cypress Mesh.
Say, I spotted this on the Cypress Developer Community updates, which explains how to select COM ports when having multiple boards…