This example functions as a wifi light bulb device type, with on/off capabilities. The steps were verified on BL602 development board.
BL602 development board:
The steps in this document were validated on Ubuntu 18.04 and 20.04.
Install dependencies as specified in the connectedhomeip repository: Building Matter.
Install other dependencies:
sudo apt-get update sudo apt-get upgrade sudo apt-get install bluez avahi-daemon bluetooth reboot
Clone and initialize the connectedhomeip repo
git clone https://github.com/project-chip/connectedhomeip.git cd connectedhomeip git submodule update --init --recursive source ./scripts/activate.sh
Build the lighting-app
./scripts/build/build_examples.py --target bl602-light build
Build the lighting-app with Pigweed RPC:
./scripts/examples/gn_bl602_example.sh lighting-app ./out/bl602-light 'import("//with_pw_rpc.gni")'
Connect the board to your flashing station (MacOS, Ubuntu, Windows).
Set the board to the download mode:
The device should present itself as a USB serial device on your computer. You may look it up in /dev/ttyACM0
ls -la /dev/tty*
If the device is at /dev/ttyACM0, flash the board using the following commands:
cd third_party/bouffalolab/bl602_sdk/repo/tools/flash_tool ./bflb_iot_tool-ubuntu18 --chipname=BL602 --baudrate=115200 --port=/dev/ttyACM0 --pt=chips/bl602/partition/partition_cfg_4M.toml --dts=chips/bl602/device_tree/bl_factory_params_IoTKitA_40M.dts --firmware=../../../../../../out/bl602-light/chip-bl602-lighting-example.bin
If you want to erase previous network information in flash, you can add --erase parameters to the bflb_iot_tool-ubuntu18 command. For Windows and MacOS, replace bflb_iot_tool-ubuntu18 with bflb_iot_tool.exe and bflb_iot_tool-macos, respectively.
1.You can open the serial console. For example, if the device is at /dev/ttyACM0
:
picocom -b 115200 /dev/ttyACM0
2.To reset the board, press the RESET button, and you will see the log in the picocom terminal
.
To initiate a client commissioning request to a device, run the built executable and choose the pairing mode.
Run the built executable and pass it the discriminator and pairing code of the remote device, as well as the network credentials to use.
The command below uses the default values hard-coded into the debug versions of the BL602 lighting-app to commission it onto a Wi-Fi network:
``` $ sudo ./chip-tool pairing ble-wifi 1 ${SSID} ${PASSWORD} 20202021 3840 Parameters: 1. Discriminator: 3840 2. Setup-pin-code: 20202021 3. Node ID: 1 4. SSID : Wi-Fi SSID 5. PASSWORD : Wi-Fi Password ```
After successful commissioning, use the OnOff cluster commands to control the OnOff attribute. This allows you to toggle a parameter implemented by the device to be On or Off.
$ sudo ./chip-tool onoff on 1 1
Use ColorControl cluster command to control the color attributes:
$ sudo ./chip-tool colorcontrol move-to-hue-and-saturation 240 100 0 0 0 1 1
Build chip-console following this guide
Start the console
$ chip-console --device /dev/ttyUSB0 -b 2000000
Get or Set the light state
rpcs.chip.rpc.Lighting.Get()
rpcs.chip.rpc.Lighting.Set(on=True, level=128)