Update Readme for camera example

This commit is contained in:
Sayon Deep
2026-01-08 22:45:47 +08:00
parent bc18d13045
commit aa0ca6012a
+32 -39
View File
@@ -1,11 +1,7 @@
# Matter Camera
This example creates a Camera device using the ESP Matter data model.
# Split Mode Camera Example
This example demonstrates a **two-chip split architecture** for ESP32
Camera, where signaling and media streaming are separated across two processors
This example demonstrates Matter camera using a two-chip split architecture,
where signaling and media streaming are separated across two processors
for optimal power efficiency.
## Architecture Overview
@@ -16,8 +12,9 @@ The split mode consists of two separate firmware images:
- **Role**: Matter camera with WebRTC signaling integration
- **Responsibilities**:
- Matter stack execution
- WebRTC signaling
- Bridge communication with media adapter
- Bridge communication with media_adapter
- Always-on connectivity for instant responsiveness
### 2. **media_adapter** (ESP32-P4)
@@ -29,14 +26,8 @@ The split mode consists of two separate firmware images:
- Video/audio capture and encoding
- WebRTC media streaming
- Power-optimized operation (sleeps when not streaming)
- Receives signaling commands via bridge from esp32_camera
- Receives signaling commands via bridge from matter_camera
## Hardware Requirements
- **ESP32-P4 Function EV Board** (required)
- Contains both ESP32-P4 and ESP32-C6 processors
- Built-in camera support
- SDIO communication between processors
## System Architecture
@@ -64,28 +55,28 @@ The split mode consists of two separate firmware images:
### Prerequisites
- IDF version: v5.4.1
- [ESP32-P4 Function EV Board](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/user_guide.html)
- [ESP-IDF v5.5.1](https://github.com/espressif/esp-idf/releases/tag/v5.5.1)
- [Amazon Kinesis Video Streams WebRTC SDK repository](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/tree/beta-reference-esp-port)
```
git clone https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c.git
git checkout beta-reference-esp-port
git submodule update --init --depth 1
export KVS_SDK_PATH=/path/to/amazon-kinesis-video-streams-webrtc-sdk-c
```
### Build and Flash Instructions
⚠️ **Important**: This requires **TWO separate firmware flashes** on the same
ESP32-P4 Function EV Board.
#### Step 1: Flash camera example (ESP32-C6)
This handles WebRTC signaling and Matter integration.
**Important**: This requires flashing two separate firmwares on
ESP32-C6 and ESP32-P4 of `ESP32-P4 Function EV Board`
### Setup Camera example (ESP32-C6)
See the [docs](https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html) to setup esp-idf and esp-matter
Build and flash
```bash
cd esp-matter/examples/camera
idf.py set-target esp32c6
idf.py build
idf.py -p [PORT] flash monitor
```
*__NOTE__*:
**NOTE**:
- ESP32-C6 does not have an onboard UART port. You will need to use [ESP-Prog](https://docs.espressif.com/projects/esp-iot-solution/en/latest/hw-reference/ESP-Prog_guide.html) board or any other JTAG.
- Use following Pin Connections:
@@ -97,10 +88,18 @@ idf.py -p [PORT] flash monitor
| EN | EN |
| GND | GND |
#### Step 2: Flash media_adapter (ESP32-P4)
### Setup Media adapter (ESP32-P4)
This handles video/audio streaming. The firmware is the `streaming_only` example
from the KVS SDK.
Clone and setup the WebRTC SDK
```bash
git clone https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c.git
git checkout beta-reference-esp-port
git submodule update --init --depth 1
export KVS_SDK_PATH=/path/to/amazon-kinesis-video-streams-webrtc-sdk-c
```
Build and flash
```bash
cd ${KVS_SDK_PATH}/esp_port/examples/streaming_only
@@ -117,17 +116,11 @@ idf.py -p [PORT] flash monitor
bootloader logs. Please change the console as instructed above and reflash the
app to see the complete logs.
⚠️ **Caution**: Currently, due to flash size limitations of ESP32-C6 onboard the
**Note**: Currently, due to flash size limitations of ESP32-C6 onboard the
ESP32-P4 Function EV Board, the `ota_1` partition (see
[`partitions.csv`](partitions.csv)) is disabled and the size of the `ota_0`
partition is increased. This prevents the firmware from performing OTA updates.
Hence, this configuration is not recommended for production use.
### Testing
You can use any Matter based camera controller app to view the video feed. Alternatively, you can also use the [camera controller example](https://github.com/project-chip/connectedhomeip/tree/master/examples/camera-controller) from the connnectedhomeip repository.