Skip to content

Commit 2ac1c06

Browse files
Zigbee protocol support (#8844)
* add zigbee+zboss to idf_components.yml * add zigbee partitions * created zigbee mode in tools menu to link proper libs * renamed Zigbee menu and build as suggested --------- Co-authored-by: Me No Dev <[email protected]>
1 parent 1e2ee37 commit 2ac1c06

File tree

5 files changed

+102
-2
lines changed

5 files changed

+102
-2
lines changed

Diff for: boards.txt

+79
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ menu.EventsCore=Events Run On
1717
menu.MemoryType=Memory Type
1818
menu.EraseFlash=Erase All Flash Before Sketch Upload
1919
menu.JTAGAdapter=JTAG Adapter
20+
menu.ZigbeeMode=Zigbee Mode
2021

2122
# Custom options
2223
menu.Revision=Board Revision
@@ -122,6 +123,12 @@ esp32h2.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
122123
esp32h2.menu.PartitionScheme.rainmaker=RainMaker
123124
esp32h2.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
124125
esp32h2.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
126+
esp32h2.menu.PartitionScheme.zigbee=Zigbee 4MB with spiffs
127+
esp32h2.menu.PartitionScheme.zigbee.build.partitions=zigbee
128+
esp32h2.menu.PartitionScheme.zigbee.upload.maximum_size=1310720
129+
esp32h2.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
130+
esp32h2.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
131+
esp32h2.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
125132
esp32h2.menu.PartitionScheme.custom=Custom
126133
esp32h2.menu.PartitionScheme.custom.build.partitions=
127134
esp32h2.menu.PartitionScheme.custom.upload.maximum_size=16777216
@@ -187,6 +194,20 @@ esp32h2.menu.EraseFlash.none.upload.erase_cmd=
187194
esp32h2.menu.EraseFlash.all=Enabled
188195
esp32h2.menu.EraseFlash.all.upload.erase_cmd=-e
189196

197+
esp32h2.menu.ZigbeeMode.default=Disabled
198+
esp32h2.menu.ZigbeeMode.default.build.zigbee_mode=
199+
esp32h2.menu.ZigbeeMode.default.build.zigbee_libs=
200+
esp32h2.menu.ZigbeeMode.ed=Zigbee ED (end device)
201+
esp32h2.menu.ZigbeeMode.ed.build.zigbee_mode=-DZIGBEE_MODE_ED
202+
esp32h2.menu.ZigbeeMode.ed.build.zigbee_libs=-lesp_zb_api_ed -lesp_zb_cli_command -lzboss_stack.ed.trace -lzboss_stack.ed -lzboss_port
203+
esp32h2.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator)
204+
esp32h2.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
205+
esp32h2.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr.trace -lzboss_stack.zczr -lzboss_port
206+
esp32h2.menu.ZigbeeMode.rcp=Zigbee RCP (radio co-processor)
207+
esp32h2.menu.ZigbeeMode.rcp.build.zigbee_mode=-DZIGBEE_MODE_RCP
208+
esp32h2.menu.ZigbeeMode.rcp.build.zigbee_libs=-lesp_zb_api_rcp -lesp_zb_cli_command -lzboss_stack.rcp -lzboss_port
209+
210+
190211
##############################################################
191212

192213
esp32c6.name=ESP32C6 Dev Module
@@ -281,6 +302,12 @@ esp32c6.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
281302
esp32c6.menu.PartitionScheme.rainmaker=RainMaker
282303
esp32c6.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
283304
esp32c6.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
305+
esp32c6.menu.PartitionScheme.zigbee=Zigbee 4MB with spiffs
306+
esp32c6.menu.PartitionScheme.zigbee.build.partitions=zigbee
307+
esp32c6.menu.PartitionScheme.zigbee.upload.maximum_size=1310720
308+
esp32c6.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
309+
esp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
310+
esp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
284311
esp32c6.menu.PartitionScheme.custom=Custom
285312
esp32c6.menu.PartitionScheme.custom.build.partitions=
286313
esp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216
@@ -352,6 +379,19 @@ esp32c6.menu.EraseFlash.none.upload.erase_cmd=
352379
esp32c6.menu.EraseFlash.all=Enabled
353380
esp32c6.menu.EraseFlash.all.upload.erase_cmd=-e
354381

382+
esp32c6.menu.ZigbeeMode.default=Disabled
383+
esp32c6.menu.ZigbeeMode.default.build.zigbee_mode=
384+
esp32c6.menu.ZigbeeMode.default.build.zigbee_libs=
385+
esp32c6.menu.ZigbeeMode.ed=Zigbee ED (end device)
386+
esp32c6.menu.ZigbeeMode.ed.build.zigbee_mode=-DZIGBEE_MODE_ED
387+
esp32c6.menu.ZigbeeMode.ed.build.zigbee_libs=-lesp_zb_api_ed -lesp_zb_cli_command -lzboss_stack.ed.trace -lzboss_stack.ed -lzboss_port
388+
esp32c6.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator)
389+
esp32c6.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
390+
esp32c6.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr.trace -lzboss_stack.zczr -lzboss_port
391+
esp32c6.menu.ZigbeeMode.rcp=Zigbee RCP (radio co-processor)
392+
esp32c6.menu.ZigbeeMode.rcp.build.zigbee_mode=-DZIGBEE_MODE_RCP
393+
esp32c6.menu.ZigbeeMode.rcp.build.zigbee_libs=-lesp_zb_api_rcp -lesp_zb_cli_command -lzboss_stack.rcp -lzboss_port
394+
355395
##############################################################
356396

357397
esp32s3.name=ESP32S3 Dev Module
@@ -538,6 +578,9 @@ esp32s3.menu.PartitionScheme.esp_sr_16=ESP SR 16M (3MB APP/7MB SPIFFS/2.9MB MODE
538578
esp32s3.menu.PartitionScheme.esp_sr_16.upload.maximum_size=3145728
539579
esp32s3.menu.PartitionScheme.esp_sr_16.upload.extra_flags=0xD10000 {build.path}/srmodels.bin
540580
esp32s3.menu.PartitionScheme.esp_sr_16.build.partitions=esp_sr_16
581+
esp32s3.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
582+
esp32s3.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
583+
esp32s3.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
541584
esp32s3.menu.PartitionScheme.custom=Custom
542585
esp32s3.menu.PartitionScheme.custom.build.partitions=
543586
esp32s3.menu.PartitionScheme.custom.upload.maximum_size=16777216
@@ -588,6 +631,13 @@ esp32s3.menu.EraseFlash.none.upload.erase_cmd=
588631
esp32s3.menu.EraseFlash.all=Enabled
589632
esp32s3.menu.EraseFlash.all.upload.erase_cmd=-e
590633

634+
esp32s3.menu.ZigbeeMode.default=Disabled
635+
esp32s3.menu.ZigbeeMode.default.build.zigbee_mode=
636+
esp32s3.menu.ZigbeeMode.default.build.zigbee_libs=
637+
esp32s3.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator)
638+
esp32s3.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
639+
esp32s3.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr.trace -lzboss_stack.zczr -lzboss_port
640+
591641
##############################################################
592642

593643
esp32c3.name=ESP32C3 Dev Module
@@ -682,6 +732,9 @@ esp32c3.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
682732
esp32c3.menu.PartitionScheme.rainmaker=RainMaker
683733
esp32c3.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
684734
esp32c3.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
735+
esp32c3.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
736+
esp32c3.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
737+
esp32c3.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
685738
esp32c3.menu.PartitionScheme.custom=Custom
686739
esp32c3.menu.PartitionScheme.custom.build.partitions=
687740
esp32c3.menu.PartitionScheme.custom.upload.maximum_size=16777216
@@ -753,6 +806,12 @@ esp32c3.menu.EraseFlash.none.upload.erase_cmd=
753806
esp32c3.menu.EraseFlash.all=Enabled
754807
esp32c3.menu.EraseFlash.all.upload.erase_cmd=-e
755808

809+
esp32c3.menu.ZigbeeMode.default=Disabled
810+
esp32c3.menu.ZigbeeMode.default.build.zigbee_mode=
811+
esp32c3.menu.ZigbeeMode.default.build.zigbee_libs=
812+
esp32c3.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator)
813+
esp32c3.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
814+
esp32c3.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr.trace -lzboss_stack.zczr -lzboss_port
756815
##############################################################
757816

758817
esp32s2.name=ESP32S2 Dev Module
@@ -868,6 +927,9 @@ esp32s2.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
868927
esp32s2.menu.PartitionScheme.rainmaker=RainMaker
869928
esp32s2.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
870929
esp32s2.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
930+
esp32s2.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
931+
esp32s2.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
932+
esp32s2.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
871933
esp32s2.menu.PartitionScheme.custom=Custom
872934
esp32s2.menu.PartitionScheme.custom.build.partitions=
873935
esp32s2.menu.PartitionScheme.custom.upload.maximum_size=16777216
@@ -941,6 +1003,13 @@ esp32s2.menu.EraseFlash.none.upload.erase_cmd=
9411003
esp32s2.menu.EraseFlash.all=Enabled
9421004
esp32s2.menu.EraseFlash.all.upload.erase_cmd=-e
9431005

1006+
esp32s2.menu.ZigbeeMode.default=Disabled
1007+
esp32s2.menu.ZigbeeMode.default.build.zigbee_mode=
1008+
esp32s2.menu.ZigbeeMode.default.build.zigbee_libs=
1009+
esp32s2.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator)
1010+
esp32s2.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
1011+
esp32s2.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr.trace -lzboss_stack.zczr -lzboss_port
1012+
9441013
##############################################################
9451014

9461015
esp32.name=ESP32 Dev Module
@@ -1031,6 +1100,9 @@ esp32.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
10311100
esp32.menu.PartitionScheme.rainmaker=RainMaker
10321101
esp32.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
10331102
esp32.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
1103+
esp32.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
1104+
esp32.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
1105+
esp32.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
10341106
esp32.menu.PartitionScheme.custom=Custom
10351107
esp32.menu.PartitionScheme.custom.build.partitions=
10361108
esp32.menu.PartitionScheme.custom.upload.maximum_size=16777216
@@ -1118,6 +1190,13 @@ esp32.menu.EraseFlash.none.upload.erase_cmd=
11181190
esp32.menu.EraseFlash.all=Enabled
11191191
esp32.menu.EraseFlash.all.upload.erase_cmd=-e
11201192

1193+
esp32.menu.ZigbeeMode.default=Disabled
1194+
esp32.menu.ZigbeeMode.default.build.zigbee_mode=
1195+
esp32.menu.ZigbeeMode.default.build.zigbee_libs=
1196+
esp32.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator)
1197+
esp32.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
1198+
esp32.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr.trace -lzboss_stack.zczr -lzboss_port
1199+
11211200
##############################################################
11221201

11231202
esp32da.name=ESP32-WROOM-DA Module

Diff for: idf_component.yml

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ dependencies:
2727
idf: ">=5.1"
2828
mdns: "^1.1.0"
2929
chmorgan/esp-libhelix-mp3: "1.0.3"
30+
espressif/esp-zboss-lib: "^1.0.1"
31+
espressif/esp-zigbee-lib: "^1.0.1"
3032
esp-dsp: "^1.3.4"
3133
espressif/esp_rainmaker: "^1.0.0"
3234
espressif/rmaker_common: "^1.4.3"

Diff for: platform.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ build.code_debug=0
9898
build.defines=
9999
build.loop_core=
100100
build.event_core=
101-
build.extra_flags=-DARDUINO_HOST_OS="{runtime.os}" -DARDUINO_FQBN="{build.fqbn}" -DESP32 -DCORE_DEBUG_LEVEL={build.code_debug} {build.loop_core} {build.event_core} {build.defines} {build.extra_flags.{build.mcu}}
101+
build.extra_flags=-DARDUINO_HOST_OS="{runtime.os}" -DARDUINO_FQBN="{build.fqbn}" -DESP32 -DCORE_DEBUG_LEVEL={build.code_debug} {build.loop_core} {build.event_core} {build.defines} {build.extra_flags.{build.mcu}} {build.zigbee_mode}
102102
build.extra_libs=
103103
build.memory_type={build.boot}_qspi
104104

@@ -163,7 +163,7 @@ recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.S.extra_flags} {c
163163
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}"
164164

165165
## Combine gc-sections, archives, and objects
166-
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} -Wl,--start-group {object_files} "{archive_file_path}" {build.extra_libs} {compiler.c.elf.libs} {compiler.libraries.ldflags} -Wl,--end-group -Wl,-EL -o "{build.path}/{build.project_name}.elf"
166+
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} -Wl,--start-group {object_files} "{archive_file_path}" {build.extra_libs} {build.zigbee_libs} {compiler.c.elf.libs} {compiler.libraries.ldflags} -Wl,--end-group -Wl,-EL -o "{build.path}/{build.project_name}.elf"
167167

168168
## Create partitions.bin
169169
recipe.objcopy.partitions.bin.pattern={tools.gen_esp32part.cmd} -q "{build.path}/partitions.csv" "{build.path}/{build.project_name}.partitions.bin"

Diff for: tools/partitions/zigbee.csv

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Name, Type, SubType, Offset, Size, Flags
2+
nvs, data, nvs, 0x9000, 0x5000,
3+
otadata, data, ota, 0xe000, 0x2000,
4+
app0, app, ota_0, 0x10000, 0x140000,
5+
app1, app, ota_1, 0x150000,0x140000,
6+
spiffs, data, spiffs, 0x290000,0x15B000,
7+
zb_storage, data, fat, 0x3EB000,0x4000,
8+
zb_fct, data, fat, 0x3EF000,0x1000,
9+
coredump, data, coredump,0x3F0000,0x10000,

Diff for: tools/partitions/zigbee_zczr.csv

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Name, Type, SubType, Offset, Size, Flags
2+
nvs, data, nvs, 0x9000, 0x5000,
3+
otadata, data, ota, 0xe000, 0x2000,
4+
app0, app, ota_0, 0x10000, 0x140000,
5+
app1, app, ota_1, 0x150000,0x140000,
6+
spiffs, data, spiffs, 0x28F000,0x15A000,
7+
zb_storage, data, fat, 0x3EA000,0x4000,
8+
zb_fct, data, fat, 0x3EE000,0x1000,
9+
rcp_fw, data, spiffs, 0x3EF000,0x1000,
10+
coredump, data, coredump,0x3F0000,0x10000,

0 commit comments

Comments
 (0)