Checking out the Matter code#
Checking out all Platforms#
To check out the Matter repository with all platforms, run the following command:
git clone --recurse-submodules https://github.com/project-chip/connectedhomeip.git
Checking out Bouffalo Lab
Platform#
Checking out matter top level repo with command below:
git clone --depth=1 https://github.com/project-chip/connectedhomeip.git
check out
Bouffalo Lab
platform support repos as follows:scripts/checkout_submodules.py --shallow --recursive --platform bouffalolab
If you want to checkout Matter Linux example and development tools, please try as follows:
scripts/checkout_submodules.py --shallow --recursive --platform linux bouffalolab
Or if you want to checkout Matter Darwin example and development tools, please try as follows:
scripts/checkout_submodules.py --shallow --recursive --platform darwin bouffalolab
Setup build environment#
Please refer to section Prerequisites
in
BUILDING.md to install build software.
Install toolchains for Bouffalo Lab
SoC#
Enter to cloned Matter project in terminal and run the following script
./integrations/docker/images/stage-2/chip-build-bouffalolab/setup.sh
Script
setup.sh
requires to select install path, and please execute following command to exportBOUFFALOLAB_SDK_ROOT
before building.export BOUFFALOLAB_SDK_ROOT="Your install path"
Setup Matter build environment#
Enter to cloned Matter project in terminal and run the following script
source scripts/activate.sh -p bouffalolab
Please refer to
scripts/bootstrap.sh
andscripts/activate.sh
for more detail.
Build examples#
Build options for Bouffalo Lab
SoC#
With source scripts/activate.sh -p bouffalolab
under terminal, please try the
following command to list supports options.
./scripts/build/build_examples.py targets
The output with bouffalolab
started likes below:
bouffalolab-{bl602dk,bl704ldk,bl706dk,bl602-night-light,bl706-night-light,bl602-iot-matter-v1,xt-zb6-devkit}-{light,contact-sensor}-{ethernet,wifi,thread,thread-ftd,thread-mtd}-{easyflash,littlefs}[-shell][-mfd][-rotating_device_id][-rpc][-cdc]
supported board options, select one of the following options to build
-bl602dk
-bl616dk
-bl704ldk
-bl706dk
-bl602-night-light
-bl706-night-light
-bl602-iot-matter-v1
-xt-zb6-devkit
supported example options, select one of the following options to build
-light
-contact-sensor
, currently, only BL704L with Thread MTD and low power supported
connectivity options, select one of the following options to build
-wifi
, specifies to use Wi-Fi for Matter application.-ethernet
, specifies to use Ethernet for Matter application.-thread
, specifies to use Thread FTD for Matter application.-thread-ftd
, specifies to use Thread FTD for Matter application.-thread-mtd
, specifies to use Thread MTD for Matter application.
storage options, select one of the following options to build
-littlefs
, specifies to uselittlefs
for flash access.-easyflash
, specifies to useeasyflash
for flash access.littlefs
has different format witheasyflash
, please uses-easyflash
for your in-field production
-rotating_device_id
, enable rotating device id-mfd
, enable Matter factory data feature, which load factory data fromMFD
partitionPlease refer to Bouffalo Lab Matter factory data guide or contact to
Bouffalo Lab
for support.
-shell
, enable command line-rpc
, enable Pigweed RPC feature, which will usebaudrate
115200 for PRC-cdc
, enable USB CDC feature, only support for BL706, and can’t work with Ethernet Board
Bouffalo Lab
Matter project uses UARTbaudrate
2000000 for logging output by default. If you want otherbaudrate
for your test station, please change variablebaudrate
inBUILD.gn
under example project.
Build an example#
Taking lighting app with littlefs
supported as example :
BL602DK with Wi-Fi
./scripts/build/build_examples.py --target bouffalolab-bl602dk-light-wifi-littlefs build
BL616DK with Wi-Fi
./scripts/build/build_examples.py --target bouffalolab-bl616dk-light-wifi-littlefs build
BL616 with Thread
./scripts/build/build_examples.py --target bouffalolab-bl616dk-light-thread-littlefs build
BL704L with Thread
./scripts/build/build_examples.py --target bouffalolab-bl704ldk-light-thread-littlefs build
BL706 with Thread
./scripts/build/build_examples.py --target bouffalolab-bl706dk-light-thread-littlefs build
BL706 with Ethernet
./scripts/build/build_examples.py --target bouffalolab-bl706dk-light-ethernet-littlefs build
BL706 with Wi-Fi
./scripts/build/build_examples.py --target bouffalolab-bl706dk-light-ethernet-littlefs build
This BL706 + BL602 Wi-Fi solution: BL602 runs WLAN part and BL706 runs TCP/IP stack which uses SPI for communication between these two parts.
Download image#
Take build target bouffalolab-bl602dk-light-wifi-littlefs
as example to
introduce image downloading steps.
After example compiled, a python script chip-bl602-lighting-example.flash.py
will be generated out under ./out/bouffalolab-bl602dk-light-wifi-littlefs/
and
is used to download image to Bouffalo Lab
SoC.
And download image as following steps:
Connect the board to your build machine with USB cable
Put the SoC to the download mode:
Press and hold the BOOT button.
Click the RESET or EN button.
Release the BOOT button.
Type following command for image download. Please set serial port accordingly, here we use /dev/ttyACM0 as a serial port example.
./out/bouffalolab-bl602dk-light-wifi-littlefs/chip-bl602-lighting-example.flash.py --port /dev/ttyACM0
If needs to download image with the whole flash erased, please append
--erase
option../out/bouffalolab-bl602dk-light-wifi-littlefs/chip-bl602-lighting-example.flash.py --port /dev/ttyACM0 --erase
Note, better to append –erase option to download image for BL602 develop board at first time.
Then, open serial console
/dev/ttyACM0
withbaudrate
2000000. The log will output if the RESET or EN button clicked.
Test Commission and Control with chip-tool#
Please follow chip_tool_guide to build and guide use chip-tool for test.
Prerequisite for Thread Protocol#
Thread wireless protocol could runs on BL704L/BL706/BL616, which needs a Thread border router to connect Thread network to Wi-Fi/Ethernet network. Please follow this guide to setup a raspberry Pi border router.
After Thread border router setup, please type following command on Thread border router to get Thread network credential.
sudo ot-ctl dataset active -x
Commissioning over BLE#
Reset the board or factory reset the board
Enter build out folder of chip-tool and running the following command to do BLE commission
Wi-Fi
./out/linux-x64-chip-tool/chip-tool pairing ble-wifi <device_node_id> <wifi_ssid> <wifi_passwd> 20202021 3840
Thread
./out/linux-x64-chip-tool/chip-tool pairing ble-thread <device_node_id> hex:<thread_operational_dataset> 20202021 3840
Ethernet
./out/linux-x64-chip-tool/chip-tool pairing onnetwork <device_node_id> 20202021
<device_node_id>
, which is node ID assigned to device with chip-tool;<wifi_ssid>
, Wi-Fi network SSID;<wifi_passwd>
, Wi-FI network password;<thread_operational_dataset>
, Thread network credential which runningsudo ot-ctl dataset active -x
command on border router to get.
Read a cluster attribute#
./out/linux-x64-chip-tool/chip-tool basicinformation read vendor-name <device_node_id> 0