Skip to content

Commit 225e124

Browse files
authored
Merge pull request #662 from espressif/feat/p4_ev_cam
feat/csi_camera: Support CSI camera on ESP32-P4-Function-EV-Board
2 parents 02b997b + 06c9987 commit 225e124

File tree

23 files changed

+359
-152
lines changed

23 files changed

+359
-152
lines changed

.github/ci/update_readme_dependencies.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ def get_capabilities_table(header_path, main_path, manifest):
132132
"""
133133
Get markdown formatted table of manifest's capabilities
134134
"""
135+
with open(header_path, 'r') as f:
136+
h_code = f.read()
135137
with open(header_path, 'r') as f:
136138
content = f.readlines()
137139
table_data = []
@@ -181,6 +183,12 @@ def get_capabilities_table(header_path, main_path, manifest):
181183
matches = re.findall(r"([a-z0-9_]+)_codec_new", mic_code_section)
182184
additional_info = [m for m in matches if not m.startswith("audio")]
183185

186+
# CAMERA SENSOR
187+
if capability == "CAMERA":
188+
cam_match = re.search(r"Supported camera sensors:\s*(.*)", h_code)
189+
if cam_match:
190+
additional_info = re.findall(r"[A-Z0-9_]+", cam_match.group(1))
191+
184192
components = []
185193
versions = []
186194
if component_versions is not None:

.github/ci/update_supported_boards.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ def extract_board_info(board_path):
7171
touch_types = []
7272
speaker_codec = []
7373
mic_codec = []
74+
cam_sensor = []
7475
for line in lines:
7576
match = re.match(r"#define\s+BSP_CAPS_([A-Z0-9_]+)\s+1\b", line)
7677
if match:
@@ -92,6 +93,12 @@ def extract_board_info(board_path):
9293
# TOUCH: esp_lcd_touch_new_i2c_*
9394
touch_types = re.findall(r"esp_lcd_touch_new_i2c_([a-z0-9_]+)\s*\(", c_code)
9495

96+
# CAMERA: find camera sensors
97+
if "CAMERA" in features:
98+
match = re.search(r"Supported camera sensors:\s*(.*)", content)
99+
if match:
100+
cam_sensor = re.findall(r"[A-Z0-9_]+", match.group(1))
101+
95102
# AUDIO_SPEAKER
96103
if "AUDIO_SPEAKER" in features:
97104
speaker_code_section = extract_function_body(c_code, 'bsp_audio_codec_speaker_init')
@@ -173,6 +180,8 @@ def extract_board_info(board_path):
173180
f_suffix = f" ({', '.join(speaker_codec)})" if speaker_codec else ""
174181
elif f == "AUDIO_MIC":
175182
f_suffix = f" ({', '.join(mic_codec)})" if mic_codec else ""
183+
elif f == "CAMERA":
184+
f_suffix = f" ({', '.join(cam_sensor)})" if cam_sensor else ""
176185

177186
feature_list += f"{f_emoji} {f_name} {f_suffix}<br/>"
178187
feature_list += ""

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ The following table shows the compatibility of this BSP with different ESP-IDF v
3030
| [ESP-BOX-3](bsp/esp-box-3) | esp32s3 | :musical_note: Audio <br/>:microphone: Audio Microphone (es7210)<br/>:speaker: Audio Speaker (es8311)<br/>:radio_button: Button <br/>:pager: LCD Display (st7789, ili9341)<br/>:video_game: IMU <br/>:floppy_disk: uSD Card <br/>:point_up: Display Touch (tt21100, gt911)<br/> | <img src="bsp/esp-box-3/doc/esp-box-3.webp" width="150"> |
3131
| [ESP32-C3-LCDKit](bsp/esp32_c3_lcdkit) | esp32c3 | :musical_note: Audio <br/>:speaker: Audio Speaker <br/>:pager: LCD Display (gc9a01)<br/>:white_circle: Knob <br/>:bulb: LED <br/> | <img src="bsp/esp32_c3_lcdkit/doc/esp32_c3_lcdkit.webp" width="150"> |
3232
| [ESP32-LyraT](bsp/esp32_lyrat) | esp32 | :musical_note: Audio <br/>:microphone: Audio Microphone (es8388)<br/>:speaker: Audio Speaker (es8388)<br/>:radio_button: Button <br/>:bulb: LED <br/>:floppy_disk: uSD Card <br/> | <img src="bsp/esp32_lyrat/doc/esp32_lyrat.webp" width="150"> |
33-
| [ESP32-P4-EYE](bsp/esp32_p4_eye) | esp32p4 | :musical_note: Audio <br/>:microphone: Audio Microphone <br/>:battery: Battery <br/>:radio_button: Button <br/>:camera: Camera <br/>:pager: LCD Display (st7789)<br/>:white_circle: Knob <br/>:bulb: LED <br/>:floppy_disk: uSD Card <br/> | <img src="bsp/esp32_p4_eye/doc/esp32_p4_eye.webp" width="150"> |
34-
| [ESP32-P4 Function EV Board](bsp/esp32_p4_function_ev_board) | esp32p4 | :musical_note: Audio <br/>:microphone: Audio Microphone (es8311)<br/>:speaker: Audio Speaker (es8311)<br/>:pager: LCD Display (ek79007, ili9881c, lt8912b)<br/>:floppy_disk: uSD Card <br/>:point_up: Display Touch (gt911)<br/> | <img src="bsp/esp32_p4_function_ev_board/doc/esp32_p4_function_ev_board.webp" width="150"> |
33+
| [ESP32-P4-EYE](bsp/esp32_p4_eye) | esp32p4 | :musical_note: Audio <br/>:microphone: Audio Microphone <br/>:battery: Battery <br/>:radio_button: Button <br/>:camera: Camera (OV2710)<br/>:pager: LCD Display (st7789)<br/>:white_circle: Knob <br/>:bulb: LED <br/>:floppy_disk: uSD Card <br/> | <img src="bsp/esp32_p4_eye/doc/esp32_p4_eye.webp" width="150"> |
34+
| [ESP32-P4 Function EV Board](bsp/esp32_p4_function_ev_board) | esp32p4 | :musical_note: Audio <br/>:microphone: Audio Microphone (es8311)<br/>:speaker: Audio Speaker (es8311)<br/>:camera: Camera (OV5647, SC2336)<br/>:pager: LCD Display (ek79007, ili9881c, lt8912b)<br/>:floppy_disk: uSD Card <br/>:point_up: Display Touch (gt911)<br/> | <img src="bsp/esp32_p4_function_ev_board/doc/esp32_p4_function_ev_board.webp" width="150"> |
3535
| [ESP32-S3-EYE](bsp/esp32_s3_eye) | esp32s3 | :musical_note: Audio <br/>:microphone: Audio Microphone <br/>:radio_button: Button <br/>:camera: Camera <br/>:pager: LCD Display (st7789)<br/>:video_game: IMU <br/>:floppy_disk: uSD Card <br/> | <img src="bsp/esp32_s3_eye/doc/esp32_s3_eye.webp" width="150"> |
3636
| [ESP32-S3-KORVO-1](bsp/esp32_s3_korvo_1) | esp32s3 | :musical_note: Audio <br/>:microphone: Audio Microphone (es7210)<br/>:speaker: Audio Speaker (es8311)<br/>:radio_button: Button <br/>:bulb: LED <br/>:floppy_disk: uSD Card <br/> | <img src="bsp/esp32_s3_korvo_1/doc/esp32_s3_korvo_1.webp" width="150"> |
3737
| [ESP32-S3-Korvo-2](bsp/esp32_s3_korvo_2) | esp32s3 | :musical_note: Audio <br/>:microphone: Audio Microphone (es7210)<br/>:speaker: Audio Speaker (es8311)<br/>:radio_button: Button <br/>:camera: Camera <br/>:pager: LCD Display (ili9341)<br/>:bulb: LED <br/>:floppy_disk: uSD Card <br/>:point_up: Display Touch (tt21100)<br/> | <img src="bsp/esp32_s3_korvo_2/doc/esp32_s3_korvo_2.webp" width="150"> |
@@ -72,7 +72,7 @@ Here is a summary of the available examples:
7272
| [Display Example](examples/display) | Show an image on the screen with a simple startup animation (LVGL) | <details><summary>17 boards</summary>[esp-box](bsp/esp-box)<br/>[esp-box-3](bsp/esp-box-3)<br/>[esp-box-lite](bsp/esp-box-lite)<br/>[esp32_c3_lcdkit](bsp/esp32_c3_lcdkit)<br/>[esp32_p4_eye](bsp/esp32_p4_eye)<br/>[esp32_p4_function_ev_board](bsp/esp32_p4_function_ev_board)<br/>[esp32_s2_kaluga_kit](bsp/esp32_s2_kaluga_kit)<br/>[esp32_s3_eye](bsp/esp32_s3_eye)<br/>[esp32_s3_korvo_2](bsp/esp32_s3_korvo_2)<br/>[esp32_s3_lcd_ev_board](bsp/esp32_s3_lcd_ev_board)<br/>[esp32_s3_usb_otg](bsp/esp32_s3_usb_otg)<br/>[esp_wrover_kit](bsp/esp_wrover_kit)<br/>[m5_atom_s3](bsp/m5_atom_s3)<br/>[m5dial](bsp/m5dial)<br/>[m5stack_core](bsp/m5stack_core)<br/>[m5stack_core_2](bsp/m5stack_core_2)<br/>[m5stack_core_s3](bsp/m5stack_core_s3)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display-) |
7373
| [Display, Audio and Photo Example](examples/display_audio_photo) | Complex demo: browse files from filesystem and play/display JPEG, WAV, or TXT files (LVGL) | <details><summary>7 boards</summary>[esp-box](bsp/esp-box)<br/>[esp-box-3](bsp/esp-box-3)<br/>[esp-box-lite](bsp/esp-box-lite)<br/>[esp32_s3_korvo_2](bsp/esp32_s3_korvo_2)<br/>[esp32_s3_lcd_ev_board](bsp/esp32_s3_lcd_ev_board)<br/>[m5stack_core_2](bsp/m5stack_core_2)<br/>[m5stack_core_s3](bsp/m5stack_core_s3)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_audio_photo-) |
7474
| [Camera Example](examples/display_camera) | Stream camera output to display (LVGL) | <details><summary>4 boards</summary>[esp32_s2_kaluga_kit](bsp/esp32_s2_kaluga_kit)<br/>[esp32_s3_eye](bsp/esp32_s3_eye)<br/>[esp32_s3_korvo_2](bsp/esp32_s3_korvo_2)<br/>[m5stack_core_s3](bsp/m5stack_core_s3)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_camera-) |
75-
| [Camera Example (MIPI-CSI)](examples/display_camera_csi) | Stream camera (MIPI-CSI) output to display (LVGL) | <details><summary>1 board</summary>[esp32_p4_eye](bsp/esp32_p4_eye)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_camera-) |
75+
| [Camera Example (MIPI-CSI)](examples/display_camera_csi) | Stream camera (MIPI-CSI) output to display (LVGL) | <details><summary>2 boards</summary>[esp32_p4_eye](bsp/esp32_p4_eye)<br/>[esp32_p4_function_ev_board](bsp/esp32_p4_function_ev_board)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_camera-) |
7676
| [LVGL Benchmark Example](examples/display_lvgl_benchmark) | Run LVGL benchmark tests | <details><summary>10 boards</summary>[esp-box](bsp/esp-box)<br/>[esp-box-3](bsp/esp-box-3)<br/>[esp-box-lite](bsp/esp-box-lite)<br/>[esp32_p4_function_ev_board](bsp/esp32_p4_function_ev_board)<br/>[esp32_s2_kaluga_kit](bsp/esp32_s2_kaluga_kit)<br/>[esp32_s3_eye](bsp/esp32_s3_eye)<br/>[esp32_s3_korvo_2](bsp/esp32_s3_korvo_2)<br/>[esp32_s3_lcd_ev_board](bsp/esp32_s3_lcd_ev_board)<br/>[m5dial](bsp/m5dial)<br/>[m5stack_core_s3](bsp/m5stack_core_s3)</details> | - |
7777
| [LVGL Demos Example](examples/display_lvgl_demos) | Run the LVGL demo player - all LVGL examples are included (LVGL) | <details><summary>11 boards</summary>[esp-box](bsp/esp-box)<br/>[esp-box-3](bsp/esp-box-3)<br/>[esp-box-lite](bsp/esp-box-lite)<br/>[esp32_p4_eye](bsp/esp32_p4_eye)<br/>[esp32_p4_function_ev_board](bsp/esp32_p4_function_ev_board)<br/>[esp32_s2_kaluga_kit](bsp/esp32_s2_kaluga_kit)<br/>[esp32_s3_eye](bsp/esp32_s3_eye)<br/>[esp32_s3_korvo_2](bsp/esp32_s3_korvo_2)<br/>[esp32_s3_lcd_ev_board](bsp/esp32_s3_lcd_ev_board)<br/>[m5dial](bsp/m5dial)<br/>[m5stack_core_s3](bsp/m5stack_core_s3)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_lvgl_demos-) |
7878
| [Display Rotation Example](examples/display_rotation) | Rotate screen using buttons or an accelerometer (`BSP_CAPS_IMU`, if available) | <details><summary>10 boards</summary>[esp-box](bsp/esp-box)<br/>[esp-box-3](bsp/esp-box-3)<br/>[esp-box-lite](bsp/esp-box-lite)<br/>[esp32_p4_eye](bsp/esp32_p4_eye)<br/>[esp32_p4_function_ev_board](bsp/esp32_p4_function_ev_board)<br/>[esp32_s3_korvo_2](bsp/esp32_s3_korvo_2)<br/>[esp32_s3_lcd_ev_board](bsp/esp32_s3_lcd_ev_board)<br/>[m5dial](bsp/m5dial)<br/>[m5stack_core](bsp/m5stack_core)<br/>[m5stack_core_s3](bsp/m5stack_core_s3)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_rotation-) |

bsp/esp32_p4_eye/API.md

Lines changed: 68 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66

77

8-
| :1234: [CAPABILITIES](#1234-capabilities) | :floppy_disk: [SD CARD AND SPIFFS](#floppy_disk-sd-card-and-spiffs) | :musical_note: [AUDIO](#musical_note-audio) | :pager: [DISPLAY AND TOUCH](#pager-display-and-touch) | :radio_button: [BUTTONS](#radio_button-buttons) | :bulb: [LEDS](#bulb-leds) | :camera: [CAMERA](#camera-camera) | :battery: [BATTERY](#battery-battery) |
8+
| :1234: [CAPABILITIES](#1234-capabilities) | :floppy_disk: [SD CARD AND SPIFFS](#floppy_disk-sd-card-and-spiffs) | :musical_note: [AUDIO](#musical_note-audio) | :pager: [DISPLAY AND TOUCH](#pager-display-and-touch) | :radio_button: [BUTTONS](#radio_button-buttons) | :bulb: [LEDS](#bulb-leds) | :battery: [BATTERY](#battery-battery) | :camera: [CAMERA](#camera-camera) |
99
| :-------------------------: | :-------------------------: | :-------------------------: | :-------------------------: | :-------------------------: | :-------------------------: | :-------------------------: | :-------------------------: |
1010

1111
</div>
@@ -1522,83 +1522,6 @@ esp_err_t bsp_led_set (
15221522
15231523
15241524
1525-
## :camera: Camera
1526-
1527-
There is no dedicated BSP API for camera functionality. Instead, the BSP provides default configuration macros:
1528-
- `BSP_CAMERA_DEFAULT_CONFIG`
1529-
- `BSP_CAMERA_VFLIP`
1530-
- `BSP_CAMERA_HMIRROR`
1531-
1532-
These macros are designed for use with the [esp32-camera](https://components.espressif.com/components/espressif/esp32-camera) component.
1533-
1534-
> [!NOTE]
1535-
> Don't forget to initialize I2C (`bsp_i2c_init()`) before using the camera, as some camera modules require I2C for configuration.
1536-
1537-
### Example Usage
1538-
1539-
```
1540-
/* Initialize I2C bus (required by camera module) */
1541-
bsp_i2c_init();
1542-
1543-
/* Initialize the camera using BSP default config */
1544-
const camera_config_t camera_config = BSP_CAMERA_DEFAULT_CONFIG;
1545-
esp_camera_init(&camera_config);
1546-
1547-
/* Optional: Set camera orientation */
1548-
sensor_t *s = esp_camera_sensor_get();
1549-
s->set_vflip(s, BSP_CAMERA_VFLIP); // Vertical flip
1550-
s->set_hmirror(s, BSP_CAMERA_HMIRROR); // Horizontal mirror
1551-
1552-
...
1553-
1554-
/* Capture a frame */
1555-
camera_fb_t * pic = esp_camera_fb_get();
1556-
if (pic) {
1557-
/* Access raw image data in pic->buf with size pic->len */
1558-
process_image(pic->buf, pic->len); // Replace with your function
1559-
esp_camera_fb_return(pic);
1560-
}
1561-
```
1562-
1563-
### Camera API Reference
1564-
1565-
1566-
## Functions
1567-
1568-
| Type | Name |
1569-
| ---: | :--- |
1570-
| esp\_err\_t | [**bsp\_camera\_start**](#function-bsp_camera_start) (void) <br>_Initialize camera._ |
1571-
1572-
## Macros
1573-
1574-
| Type | Name |
1575-
| ---: | :--- |
1576-
| define | [**BSP\_CAMERA\_EN**](#define-bsp_camera_en) (GPIO\_NUM\_12)<br> |
1577-
| define | [**BSP\_CAMERA\_GPIO\_XCLK**](#define-bsp_camera_gpio_xclk) (GPIO\_NUM\_11)<br> |
1578-
| define | [**BSP\_CAMERA\_RST**](#define-bsp_camera_rst) (GPIO\_NUM\_26)<br> |
1579-
| define | [**BSP\_CAMERA\_XCLK\_CLOCK\_MHZ**](#define-bsp_camera_xclk_clock_mhz) 24<br> |
1580-
1581-
1582-
1583-
## Functions Documentation
1584-
1585-
### function `bsp_camera_start`
1586-
1587-
_Initialize camera._
1588-
```c
1589-
esp_err_t bsp_camera_start (
1590-
void
1591-
)
1592-
```
1593-
1594-
1595-
Camera sensor initialization.
1596-
1597-
1598-
1599-
1600-
1601-
16021525
## :battery: Battery
16031526
16041527
Some boards with battery support can measure the battery voltage using an ADC channel. BSP provides a simple API for this:
@@ -1698,6 +1621,73 @@ false Calibration failed
16981621
16991622
17001623
1624+
## :camera: Camera
1625+
1626+
The BSP provides a helper function bsp_camera_start() for initializing the on-board camera module.
1627+
This function sets up the required I2C bus, video subsystem, and camera clock if necessary.
1628+
1629+
### Example Usage
1630+
1631+
Camera usage can be quite complex. For a complete example, refer to the [`display_camera_csi`](https://github.com/espressif/esp-bsp/tree/master/examples/display_camera_csi) example in the BSP repository, or to the examples provided in the [`esp_video`](https://github.com/espressif/esp-video-components/tree/master/esp_video) component.
1632+
1633+
> [!NOTE]
1634+
> Please, do not forget select right camera sensor in `menuconfig`
1635+
1636+
### Camera API Reference
1637+
1638+
## Structures and Types
1639+
1640+
| Type | Name |
1641+
| ---: | :--- |
1642+
| struct | [**bsp\_camera\_cfg\_t**](#struct-bsp_camera_cfg_t) <br>_BSP camera configuration structure (for future use)_ |
1643+
1644+
## Functions
1645+
1646+
| Type | Name |
1647+
| ---: | :--- |
1648+
| esp\_err\_t | [**bsp\_camera\_start**](#function-bsp_camera_start) (const [**bsp\_camera\_cfg\_t**](#struct-bsp_camera_cfg_t) \*cfg) <br>_Initialize camera._ |
1649+
1650+
## Macros
1651+
1652+
| Type | Name |
1653+
| ---: | :--- |
1654+
| define | [**BSP\_CAMERA\_DEVICE**](#define-bsp_camera_device) (ESP\_VIDEO\_MIPI\_CSI\_DEVICE\_NAME)<br> |
1655+
| define | [**BSP\_CAMERA\_EN**](#define-bsp_camera_en) (GPIO\_NUM\_12)<br> |
1656+
| define | [**BSP\_CAMERA\_GPIO\_XCLK**](#define-bsp_camera_gpio_xclk) (GPIO\_NUM\_11)<br> |
1657+
| define | [**BSP\_CAMERA\_RST**](#define-bsp_camera_rst) (GPIO\_NUM\_26)<br> |
1658+
| define | [**BSP\_CAMERA\_XCLK\_CLOCK\_MHZ**](#define-bsp_camera_xclk_clock_mhz) (24)<br> |
1659+
1660+
1661+
## Structures and Types Documentation
1662+
1663+
### struct `bsp_camera_cfg_t`
1664+
1665+
_BSP camera configuration structure (for future use)_
1666+
1667+
Variables:
1668+
1669+
- uint8\_t dummy
1670+
1671+
1672+
## Functions Documentation
1673+
1674+
### function `bsp_camera_start`
1675+
1676+
_Initialize camera._
1677+
```c
1678+
esp_err_t bsp_camera_start (
1679+
const bsp_camera_cfg_t *cfg
1680+
)
1681+
```
1682+
1683+
1684+
Camera sensor initialization.
1685+
1686+
1687+
1688+
1689+
1690+
17011691
17021692
17031693
### Others API Reference

bsp/esp32_p4_eye/Kconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ menu "Board Support Package(ESP32-P4-EYE)"
1111
default 1
1212
range 0 1
1313
help
14-
MCU has two I2C peripherals, pick the one you want to use.
14+
Pick the I2C you want to use.
1515

1616
config BSP_I2C_FAST_MODE
1717
bool "Enable I2C fast mode"
@@ -90,5 +90,5 @@ menu "Board Support Package(ESP32-P4-EYE)"
9090
default 0
9191
range 0 2
9292
help
93-
MCU has three I2S peripherals, pick the one you want to use.
93+
Pick the I2S you want to use.
9494
endmenu

bsp/esp32_p4_eye/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ ESP32-P4-EYE is a vision development board based on the ESP32-P4 chip, mainly ta
4040
|:heavy_check_mark:| :microphone: AUDIO_MIC | | | |
4141
|:heavy_check_mark:| :floppy_disk: SDCARD | | idf | >=5.4 |
4242
|:heavy_check_mark:| :bulb: LED | |idf<br/>[espressif/led_indicator](https://components.espressif.com/components/espressif/led_indicator)|>=5.4<br/>^2|
43-
|:heavy_check_mark:| :camera: CAMERA | | | |
43+
|:heavy_check_mark:| :camera: CAMERA | OV2710 | | |
4444
|:heavy_check_mark:| :battery: BAT | | idf | >=5.4 |
4545
| :x: | :video_game: IMU | | | |
4646

@@ -61,4 +61,3 @@ ESP32-P4-EYE is a vision development board based on the ESP32-P4 chip, mainly ta
6161

6262
<!-- END_EXAMPLES -->
6363
</div>
64-

bsp/esp32_p4_eye/idf_component.yml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
version: "1.0.0"
2+
version: "2.0.0"
33
description: Board Support Package (BSP) for ESP32-P4-EYE
44
url: https://github.com/espressif/esp-bsp/tree/master/bsp/esp32_p4_eye
55

@@ -11,28 +11,34 @@ tags:
1111

1212
dependencies:
1313
idf: ">=5.4"
14-
14+
1515
esp_codec_dev:
1616
version: "~1.5"
1717
public: true
18-
18+
1919
espressif/esp_lvgl_port:
2020
version: "^2"
2121
public: true
22-
22+
2323
knob:
2424
version: "^1"
2525
public: true
26-
26+
2727
button:
2828
version: "^4"
2929
public: true
30-
30+
3131
esp_video:
3232
version: "~1.3"
3333
public: true
34-
34+
3535
led_indicator:
3636
version: "^2"
3737
public: true
38-
38+
39+
examples:
40+
- path: ../../examples/display
41+
- path: ../../examples/display_rotation
42+
- path: ../../examples/display_lvgl_demos
43+
- path: ../../examples/display_camera_csi
44+

bsp/esp32_p4_eye/include/bsp/esp32_p4_eye.h

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@
9898
#define BSP_LCD_EN (GPIO_NUM_12)
9999
/** @} */ // end of display
100100

101-
/** @defgroup g08_camera Camera
101+
/** @defgroup g12_camera Camera
102102
* @brief Camera BSP API
103103
* @{
104104
*/
@@ -557,24 +557,35 @@ void bsp_display_rotate(lv_display_t *disp, lv_disp_rotation_t rotation);
557557

558558
/** @} */ // end of display
559559

560-
/** @addtogroup g08_camera
560+
/** @addtogroup g12_camera
561561
* @{
562562
*/
563563

564564
/**************************************************************************************************
565565
*
566566
* Camera interface
567+
* Supported camera sensors: OV2710
568+
* More information in display_camera_csi example
567569
*
568570
**************************************************************************************************/
569571

570-
#define BSP_CAMERA_XCLK_CLOCK_MHZ 24
572+
#define BSP_CAMERA_DEVICE (ESP_VIDEO_MIPI_CSI_DEVICE_NAME)
573+
#define BSP_CAMERA_XCLK_CLOCK_MHZ (24)
574+
575+
/**
576+
* @brief BSP camera configuration structure (for future use)
577+
*
578+
*/
579+
typedef struct {
580+
uint8_t dummy;
581+
} bsp_camera_cfg_t;
571582

572583
/**
573584
* @brief Initialize camera
574585
*
575586
* Camera sensor initialization.
576587
*/
577-
esp_err_t bsp_camera_start(void);
588+
esp_err_t bsp_camera_start(const bsp_camera_cfg_t *cfg);
578589

579590
/** @} */ // end of camera
580591

0 commit comments

Comments
 (0)