The purpose of the chef app is to to increase the coverage of device types in Matter.
It uses the shell app a starting point, adding the processing of ZAP files and the support of a few targets under a unified build script: chef.py
.
As it incorporates the processing of ZAP files as part of the build process, it does not use zzz_generated
, but rather places the auto-generated zap artifacts under its zap-generated
temporary folder.
All device types available (DM/IM .zap files) are found inside the devices
folder.
Run chef.py -h
to see the available commands
chef.py
the first time to create a config.yaml
configuration file. If you already have SDK environment variables such as IDF_PATH (esp32) and ZEPHYR_BASE (nrfconnect) it will use those values as default.config.yaml
. TTY is the path used by the platform to enumerate its device as a serial port. Typical values are:# ESP32 macOS TTY: /dev/tty.usbmodemXXXXXXX # ESP32 Linux TTY: /dev/ttyACM0 # NRFCONNECT macOS TTY: /dev/tty.usbserial-XXXXX # NRFCONNECT Linux TTY: /dev/ttyUSB0
$ chef.py -u
to update zap and the toolchain (on selected platforms)$ chef.py -gzbf -t <platform> -d lighting
. This command will run the ZAP GUI opening the devices/lighting.zap
file and will allow editing. It will then generate the zap artifacts, place them on the zap-generated
folder, run a build and flash the binary in your target$ chef.py -g -d <device>
to open in the ZAP GUI a device to be used as a starting point.Save As
and save the file with the name of your new device type into the devices
folder. This device is now available for the script. See chef.py -h
for a list of devices available.