Skip to content

Commit da0addd

Browse files
authored
Merge branch 'next' into qmi8658
2 parents f4ef594 + 9dbf889 commit da0addd

File tree

15 files changed

+1208
-1421
lines changed

15 files changed

+1208
-1421
lines changed

content/components/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,6 +1039,7 @@ ESPHome to cellular networks. **Does not encompass Wi-Fi.**
10391039
## Miscellaneous Components
10401040

10411041
{{< imgtable >}}
1042+
"Camera Encoder","components/camera/camera_encoder","camera.svg","dark-invert"
10421043
"ESP32 Camera","components/esp32_camera","camera.svg","dark-invert"
10431044
"Exposure Notifications","components/exposure_notifications","exposure_notifications.png",""
10441045
"GPS","components/gps","crosshairs-gps.svg","dark-invert"

content/components/bluetooth_proxy.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,12 @@ please search for it in the [Home Assistant Integrations](https://www.home-assis
4545

4646
```yaml
4747
bluetooth_proxy:
48+
# Active connections are now enabled by default
49+
# To disable active connections (previous default behavior), use:
50+
# active: false
4851
```
4952

50-
- **active** (*Optional*, boolean): Enables proxying active connections. Defaults to `false`.
53+
- **active** (*Optional*, boolean): Enables proxying active connections. Defaults to `true`.
5154
- **cache_services** (*Optional*, boolean): Enables caching GATT services in NVS flash storage which significantly speeds up active connections. Defaults to `true` when using the ESP-IDF framework.
5255
- **connection_slots** (*Optional*, int): The maximum number of BLE connection slots to use.
5356
Each configured slot consumes ~1KB of RAM. This can only be adjusted when using
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
description: "Instructions for setting up the camera encoder component in ESPHome."
3+
title: "Camera Encoder"
4+
params:
5+
seo:
6+
description: Instructions for setting up the camera encoder component in ESPHome.
7+
image: camera.svg
8+
---
9+
10+
The ``camera_encoder`` component provides image compression support for software-based cameras or cameras without
11+
internal compression. It allows raw camera frames to be compressed into a format suitable for transmission to API
12+
clients, such as Home Assistant, which expect JPEG-compressed images.
13+
14+
It supports different encoder implementations, such as a ESP32 Camera software JPEG encoder that can be configured with
15+
options like image quality and incremental encoding. These settings make it possible to balance image
16+
quality and performance depending on the use case.
17+
18+
{{< note >}}
19+
The default software JPEG encoder enables devices like the ESP32-S3 to stream images.
20+
It is primarily intended for smallar images due to limited processing power and memory,
21+
and supports only devices from the ESP32 family.
22+
{{< /note >}}
23+
24+
```yaml
25+
# Example configuration entry
26+
camera_encoder:
27+
```
28+
29+
## Configuration variables
30+
31+
- **type** (*Optional*): ``esp32_camera``
32+
33+
## esp32_camera Options
34+
35+
- **quality** (*Optional*, int): Sets JPEG compression quality.
36+
Valid values range from ``1`` (lowest quality, highest compression) to ``100`` (best quality, least compression). Defaults: ``80``.
37+
38+
- **buffer_size** (*Optional*, int): Initial size of the output buffer in bytes, used to store the JPEG-encoded image data.
39+
- Minimum: 1024 bytes
40+
- Maximum: 2097152 bytes (2 MB), sufficient for ESP32-S3 and ESP32-P4
41+
- Default: ``4096``.
42+
43+
- **buffer_expand_size** (*Optional*, int): Number of bytes to expand the output buffer if it is too small to hold the JPEG-encoded image. A value of ``0`` disables expansion.
44+
- Maximum: 2097152 bytes (2 MB), sufficient for ESP32-S3 and ESP32-P4
45+
- Default: ``1024``.
46+
47+
## See Also
48+
49+
- {{< apiref "camera/encoder.h" "camera/encoder.h" >}}
50+
- {{< apiref "camera_encoder/esp32_camera_jpeg_encoder.h" "camera_encoder/esp32_camera_jpeg_encoder.h" >}}

content/components/display/mipi_spi.md

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -58,27 +58,28 @@ using an octal SPI bus, so references here to parallel and octal SPI are equival
5858
### Boards with integrated displays
5959

6060
| Model | Manufacturer | Product Description |
61-
| ------------------------------------ | ------------ | ----------------------------------------------------------------- |
61+
|--------------------------------------| ------------ | ----------------------------------------------------------------- |
6262
| ADAFRUIT-S2-TFT-FEATHER | Adafruit | <https://www.adafruit.com/product/6312> |
6363
| ADAFRUIT-FUNHOUSE | Adafruit | <https://www.adafruit.com/product/4985> |
64-
| M5CORE | M5Stack | <https://docs.m5stack.com/en/core/BASIC%20v2.6> |
65-
| S3BOX | Espressif | <https://www.espressif.com/en/products/devkits/esp32-s3-box> |
66-
| S3BOXLITE | Espressif | <https://www.espressif.com/en/products/devkits/esp32-s3-box-lite> |
67-
| WAVESHARE-4-TFT | Waveshare | <https://www.waveshare.com/4inch-tft-touch-shield.htm> |
68-
| PICO-RESTOUCH-LCD-3.5 | Waveshare | <https://www.waveshare.com/pico-restouch-lcd-3.5.htm> |
64+
| M5CORE | M5Stack | <https://docs.m5stack.com/en/core/BASIC%20v2.6> |
65+
| S3BOX | Espressif | <https://www.espressif.com/en/products/devkits/esp32-s3-box> |
66+
| S3BOXLITE | Espressif | <https://www.espressif.com/en/products/devkits/esp32-s3-box-lite> |
67+
| WAVESHARE-4-TFT | Waveshare | <https://www.waveshare.com/4inch-tft-touch-shield.htm> |
68+
| PICO-RESTOUCH-LCD-3.5 | Waveshare | <https://www.waveshare.com/pico-restouch-lcd-3.5.htm> |
6969
| WAVESHARE-ESP32-S3-TOUCH-AMOLED-1.75 | Waveshare | <https://www.waveshare.com/esp32-s3-touch-amoled-1.75.htm> |
70-
| WT32-SC01-PLUS | Wireless-Tag | <https://www.wireless-tag.com/portfolio/wt32-sc01-plus/> |
71-
| ESP32-2432S028 | Sunton | <https://www.espressif.com/en/products/devkits/esp32-2432s028> |
72-
| JC3248W535 | Guition | <https://www.aliexpress.com/item/1005007566332450.html> |
73-
| JC3636W518 | Guition | <https://www.aliexpress.com/item/1005007890666293.html> |
74-
| LANBON-L8 | Lanbon | <https://www.lanbon.cn/product/lanbon-l8> |
75-
| T4-S3-AMOLED | Lilygo | <https://www.lilygo.cc/products/t4-s3> |
76-
| T-EMBED | Lilygo | <https://www.lilygo.cc/products/t-embed> |
77-
| T-DISPLAY | Lilygo | <https://www.lilygo.cc/products/t-display> |
78-
| T-DISPLAY-S3 | Lilygo | <https://www.lilygo.cc/products/t-display-s3> |
79-
| T-DISPLAY-S3-PRO | Lilygo | <https://www.lilygo.cc/products/t-display-s3-pro> |
80-
| T-DISPLAY-S3-AMOLED | Lilygo | <https://www.lilygo.cc/products/t-display-s3-amoled> |
81-
| T-DISPLAY-S3-AMOLED-PLUS | Lilygo | <https://www.lilygo.cc/products/t-display-s3-amoled-plus> |
70+
| WT32-SC01-PLUS | Wireless-Tag | <https://www.wireless-tag.com/portfolio/wt32-sc01-plus/> |
71+
| ESP32-2432S028 | Sunton | <https://www.espressif.com/en/products/devkits/esp32-2432s028> |
72+
| JC3248W535 | Guition | <https://www.aliexpress.com/item/1005007566332450.html> |
73+
| JC3636W518 | Guition | <https://www.aliexpress.com/item/1005007890666293.html> |
74+
| JC3636W518V2 | Guition | <https://www.aliexpress.com/item/1005007890666293.html> |
75+
| LANBON-L8 | Lanbon | <https://www.lanbon.cn/product/lanbon-l8> |
76+
| T4-S3-AMOLED | Lilygo | <https://www.lilygo.cc/products/t4-s3> |
77+
| T-EMBED | Lilygo | <https://www.lilygo.cc/products/t-embed> |
78+
| T-DISPLAY | Lilygo | <https://www.lilygo.cc/products/t-display> |
79+
| T-DISPLAY-S3 | Lilygo | <https://www.lilygo.cc/products/t-display-s3> |
80+
| T-DISPLAY-S3-PRO | Lilygo | <https://www.lilygo.cc/products/t-display-s3-pro> |
81+
| T-DISPLAY-S3-AMOLED | Lilygo | <https://www.lilygo.cc/products/t-display-s3-amoled> |
82+
| T-DISPLAY-S3-AMOLED-PLUS | Lilygo | <https://www.lilygo.cc/products/t-display-s3-amoled-plus> |
8283

8384
## SPI Bus
8485

content/components/lvgl/_index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ display:
3737
update_interval: never
3838
```
3939
40+
{{< img src="lvgl-hello.png" width="400" >}}
41+
4042
To make LVGL your own you will need to add widgets to the display. For example, to show a label with the text "Hello World!" in the center of the screen:
4143
4244
```yaml

content/components/lvgl/widgets.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ In addition to visual styling, each widget supports some boolean **flags** to in
119119
LVGL only supports **integers** for numeric `value`. Visualizer widgets can't display floats directly, but they allow scaling by 10s. Some examples in the {{< docref "/cookbook/lvgl" "Cookbook" >}} cover how to do that.
120120

121121
{{< /note >}}
122+
122123
{{< anchor "lvgl-widget-parts" >}}
123124

124125
## Widget parts
@@ -1575,13 +1576,15 @@ The spinbox contains a numeric value (as text) which can be increased or decreas
15751576
- **range_from** (*Optional*, float): The minimum value allowed to set the spinbox to. Defaults to `0`.
15761577
- **range_to** (*Optional*, float): The maximum value allowed to set the spinbox to. Defaults to `100`.
15771578
- **rollover** (*Optional*, boolean): While increasing or decreasing the value, if either the minimum or maximum value is reached with this option enabled, the value will change to the other limit. If disabled, the value will remain at the minimum or maximum value. Defaults to `false`.
1578-
- **step** (*Optional*, float): The granularity with which the value can be set. Defaults to `1.0`.
1579+
- **selected_digit** (*Optional*, int): The ordinal number of the digit to be initially focused. Defaults to `0` which
1580+
represents the least significant digit. This digit will
1581+
be incremented or decremented by one when `increment` or `decrement` actions are called.
15791582
- **value** (*Optional*, float): Actual value to be shown by the spinbox at start. Defaults to `0`.
15801583

15811584
{{< note >}}
15821585
The sign character will only be shown if the set range contains negatives.
1583-
15841586
{{< /note >}}
1587+
15851588
**Actions:**
15861589

15871590
- `lvgl.spinbox.update` [action](#actions-action) updates the widget styles and properties from the specific options above, just like the [lvgl.widget.update](#lvgl-automation-actions) action is used for the common styles, states or flags.

content/components/mapping.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ description: "Mapping Component"
33
title: "Mapping Component"
44
---
55

6-
The `mapping` component allows you to create a map or dictionary that allows a one-to-one translation from keys to values. This enables e.g. mapping a string to a number or vice versa, or mapping a string such as a weather condition to an image.
6+
The `mapping` component allows you to create a map or dictionary that allows a one-to-one translation from keys to
7+
values. This enables e.g. mapping a string to a number or vice versa, or mapping a string such as a weather condition to an image.
78

89
```yaml
910
# Example configuration entry
@@ -45,7 +46,11 @@ You can also map to a class. This is useful when you want to map to a more compl
4546

4647
## Using a mapping
4748

48-
A mapping defined in this component can be used in lambdas in other components. The mapping can be accessed using the `id` function, and the value can be looked up using the `[]` operator as per the above example.
49+
A mapping defined in this component can be used in lambdas in other components. The mapping can be accessed using
50+
the ``id`` function, and the value can be looked up using the ``[]`` operator as per the above example, or the ``get`` function.
51+
A map may be updated at run time using a lambda call, e.g. ``map.set("key", value)``.
52+
53+
Maps are stored in RAM, but will use PSRAM if available.
4954

5055
A more complex example follows:
5156

@@ -84,8 +89,14 @@ display:
8489
- platform: ...
8590
# update the display drawing random text in random colors
8691
lambda: |-
87-
auto color = color_map[random_uint32() % 3];
92+
auto color = color_map.get(random_uint32() % 3]); # Uses get() to index the color_map
8893
it.printf(100, 100, id(roboto20), color, id(string_map)[random_uint32() % 3].c_str(), Color(0));
94+
95+
on_...:
96+
then:
97+
- lambda: |-
98+
id(color_map).set(2, Color::random_color());
99+
89100
```
90101

91102
## See Also

content/components/nrf52.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,32 @@ There are two ways to reference GPIO pins:
7171
1. By pin name, e.g., `P0.15` or `P1.11`.
7272
1. By pin number, e.g., `15` or `43`.
7373

74+
## DFU (Device Firmware Update)
75+
76+
The ``dfu`` component enables automatic entry into **DFU (Device Firmware Update)** mode by monitoring
77+
the USB CDC serial connection. When a host opens the port at **1200 baud**, the component triggers
78+
a reset via a GPIO pin to put the device into DFU mode.
79+
80+
ESPHome uses this component internally when uploading firmware via:
81+
82+
```bash
83+
esphome upload d.yaml
84+
```
85+
86+
### Example Configuration
87+
88+
```yaml
89+
nrf52:
90+
dfu:
91+
reset_pin:
92+
number: 14
93+
inverted: true
94+
```
95+
96+
### Configuration variables
97+
98+
- **reset_pin** (*Required*, [Pin](#config-pin)): The pin to use for trigger a hardware reset. This pin should be connected to the MCU's reset line or to a circuit that causes the bootloader to enter DFU mode after reset.
99+
74100
## See Also
75101

76102
- {{< docref "esphome/" >}}

0 commit comments

Comments
 (0)