mirror of
https://github.com/espressif/esp-matter.git
synced 2026-04-27 19:13:13 +00:00
Update Readme for camera example
This commit is contained in:
+32
-39
@@ -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.
|
||||
Reference in New Issue
Block a user