Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,17 @@ bilingual documentation, and generation/build checks.
<a href="boards/esp32_s3_lr1121_oled_1_54_xf/">Board definition</a> · <a href="https://docs.waveshare.com/ESP32-S3-LR1121-OLED-1.54">Product documentation</a>
</td>
</tr>
<tr>
<td align="center" valign="middle" width="180">
<a href="https://docs.waveshare.com/ESP32-S3-LR1121-ePaper-2.9">
<img src="https://raw.githubusercontent.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/4aa6c326ca3a23317b180c86bbaea15d3327386f/docs/images/ESP32-S3-LR1121-ePaper-2.9-details-5-2.webp" alt="ESP32-S3-LR1121-ePaper-2.9 development board" width="160">
</a>
</td>
<td valign="middle" width="600">
<p><strong>ESP32-S3-LR1121-ePaper-2.9</strong></p>
<a href="boards/esp32_s3_lr1121_epaper_2_9/">Board definition</a> · <a href="https://docs.waveshare.com/ESP32-S3-LR1121-ePaper-2.9">Product documentation</a>
</td>
</tr>
</table>

<details>
Expand All @@ -93,6 +104,7 @@ such as `spi_sd` describe a bus; they do not imply a complete storage applicatio
<!-- BEGIN SUPPORTED_BOARDS -->
| Board | Chip | Device definitions | Peripheral definitions |
| --- | --- | --- | --- |
| [`esp32_s3_lr1121_epaper_2_9`](boards/esp32_s3_lr1121_epaper_2_9/) | ESP32-S3 | `status_led`, `epaper_power_ctrl`, `epaper_ssd16xx`, `rtc_pcf85063a`, `bat_axp2602`, `radio_lr1121` | `i2c_master`, `spi_shared`, `gpio_boot`, `gpio_epaper_power` |
| [`esp32_s3_lr1121_oled_1_54_xf`](boards/esp32_s3_lr1121_oled_1_54_xf/) | ESP32-S3 | `button_boot`, `button_power`, `button_menu`, `button_ptt`, `button_rtc_irq`, `radio`, `oled`, `rtc`, `battery`, `audio`, `sdcard` | `i2c_main`, `spi_radio`, `gpio_boot`, `gpio_power`, `gpio_menu`, `gpio_ptt`, `gpio_rtc_irq`, `gpio_amplifier`, `gpio_radio_cs`, `gpio_radio_irq`, `gpio_radio_reset`, `gpio_radio_busy`, `i2s_speaker`, `i2s_microphone` |
| [`esp32_s3_touch_amoled_1_75c`](boards/esp32_s3_touch_amoled_1_75c/) | ESP32-S3 | `axp2101_power_manager`, `audio_dac`, `audio_adc`, `display_lcd`, `lcd_touch` | `i2c_master`, `i2s_audio_out`, `i2s_audio_in`, `gpio_pa_control`, `spi_display` |
| [`esp32_s3_touch_amoled_1_8`](boards/esp32_s3_touch_amoled_1_8/) | ESP32-S3 | `gpio_expander`, `axp2101_power_manager`, `audio_dac`, `audio_adc`, `display_lcd`, `lcd_touch`, `fs_sdcard` | `i2c_master`, `i2s_audio_out`, `i2s_audio_in`, `gpio_pa_control`, `spi_display` |
Expand All @@ -109,6 +121,10 @@ CI validates generation and compilation; physical operation requires board testi
The LR1121 OLED XF profile provides hardware definitions and requires application-side
custom device adapters; see [its support scope](docs/BOARDS.md#lr1121-oled-154-xf-definition-scope).

The LR1121 ePaper 2.9 profile defines the display, radio, RTC, battery gauge and
status LED. Custom devices require application-side adapters; see
[its support scope](docs/BOARDS.md#lr1121-epaper-29-definition-scope).

<a id="quick-start"></a>

## 🚀 Quick start
Expand Down
15 changes: 15 additions & 0 deletions README_ZH.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,17 @@
<a href="boards/esp32_s3_lr1121_oled_1_54_xf/">板卡定义</a> · <a href="https://docs.waveshare.com/ESP32-S3-LR1121-OLED-1.54">产品文档</a>
</td>
</tr>
<tr>
<td align="center" valign="middle" width="180">
<a href="https://docs.waveshare.com/ESP32-S3-LR1121-ePaper-2.9">
<img src="https://raw.githubusercontent.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/4aa6c326ca3a23317b180c86bbaea15d3327386f/docs/images/ESP32-S3-LR1121-ePaper-2.9-details-5-2.webp" alt="ESP32-S3-LR1121-ePaper-2.9 开发板产品图" width="160">
</a>
</td>
<td valign="middle" width="600">
<p><strong>ESP32-S3-LR1121-ePaper-2.9</strong></p>
<a href="boards/esp32_s3_lr1121_epaper_2_9/">板卡定义</a> · <a href="https://docs.waveshare.com/ESP32-S3-LR1121-ePaper-2.9">产品文档</a>
</td>
</tr>
</table>

<details>
Expand All @@ -91,6 +102,7 @@
<!-- BEGIN SUPPORTED_BOARDS -->
| 开发板 | 芯片 | 设备定义 | 外设定义 |
| --- | --- | --- | --- |
| [`esp32_s3_lr1121_epaper_2_9`](boards/esp32_s3_lr1121_epaper_2_9/) | ESP32-S3 | `status_led`, `epaper_power_ctrl`, `epaper_ssd16xx`, `rtc_pcf85063a`, `bat_axp2602`, `radio_lr1121` | `i2c_master`, `spi_shared`, `gpio_boot`, `gpio_epaper_power` |
| [`esp32_s3_lr1121_oled_1_54_xf`](boards/esp32_s3_lr1121_oled_1_54_xf/) | ESP32-S3 | `button_boot`, `button_power`, `button_menu`, `button_ptt`, `button_rtc_irq`, `radio`, `oled`, `rtc`, `battery`, `audio`, `sdcard` | `i2c_main`, `spi_radio`, `gpio_boot`, `gpio_power`, `gpio_menu`, `gpio_ptt`, `gpio_rtc_irq`, `gpio_amplifier`, `gpio_radio_cs`, `gpio_radio_irq`, `gpio_radio_reset`, `gpio_radio_busy`, `i2s_speaker`, `i2s_microphone` |
| [`esp32_s3_touch_amoled_1_75c`](boards/esp32_s3_touch_amoled_1_75c/) | ESP32-S3 | `axp2101_power_manager`, `audio_dac`, `audio_adc`, `display_lcd`, `lcd_touch` | `i2c_master`, `i2s_audio_out`, `i2s_audio_in`, `gpio_pa_control`, `spi_display` |
| [`esp32_s3_touch_amoled_1_8`](boards/esp32_s3_touch_amoled_1_8/) | ESP32-S3 | `gpio_expander`, `axp2101_power_manager`, `audio_dac`, `audio_adc`, `display_lcd`, `lcd_touch`, `fs_sdcard` | `i2c_master`, `i2s_audio_out`, `i2s_audio_in`, `gpio_pa_control`, `spi_display` |
Expand All @@ -106,6 +118,9 @@
LR1121 OLED XF 配置提供硬件定义,自定义设备需要应用侧适配代码,详见
[支持范围](docs/BOARDS_ZH.md#lr1121-oled-154-xf-定义范围)。

LR1121 ePaper 2.9 配置包含电子纸、无线、RTC、电量计和状态灯定义,
自定义设备需要应用侧适配代码,详见[支持范围](docs/BOARDS_ZH.md#lr1121-epaper-29-定义范围)。

<a id="quick-start"></a>

## 🚀 快速开始
Expand Down
82 changes: 82 additions & 0 deletions boards/esp32_s3_lr1121_epaper_2_9/board_devices.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
devices:
- name: status_led
chip: ws2812
type: led_strip
sub_type: rmt
version: 1.0.0
init_skip: true
config:
strip_gpio_num: 21
max_leds: 1
led_model: LED_MODEL_WS2812
color_component_format: LED_STRIP_COLOR_COMPONENT_FMT_GRB
invert_out: false
rmt:
clk_src: RMT_CLK_SRC_DEFAULT
resolution_hz: 10000000
mem_block_symbols: 0
with_dma: false

- name: epaper_power_ctrl
type: power_ctrl
sub_type: gpio
version: 1.0.0
peripherals:
- name: gpio_epaper_power
active_level: 1

- name: epaper_ssd16xx
chip: ssd16xx_290
type: custom
version: 1.0.0
init_skip: true
power_ctrl_device: epaper_power_ctrl
config:
busy_gpio: 8
reset_gpio: 9
dc_gpio: 17
cs_gpio: 18
spi_speed_hz: 10000000
peripherals:
- name: spi_shared

- name: rtc_pcf85063a
chip: pcf85063a
type: custom
version: 1.0.0
init_skip: true
config:
address: 0x51
frequency: 400000
int_gpio: 7
peripherals:
- name: i2c_master

- name: bat_axp2602
chip: axp2602
type: custom
version: 1.0.0
init_skip: true
config:
address: 0x62
frequency: 400000
sense_resistor_mohm: 10
idle_current_threshold_ma: 1
peripherals:
- name: i2c_master

- name: radio_lr1121
chip: lr1121
type: custom
version: 1.0.0
init_skip: true
config:
dio1_gpio: 6
nss_gpio: 42
reset_gpio: 39
busy_gpio: 41
dio7_gpio: -1
dio8_gpio: -1
spi_speed_hz: 8000000
peripherals:
- name: spi_shared
5 changes: 5 additions & 0 deletions boards/esp32_s3_lr1121_epaper_2_9/board_info.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
board: esp32_s3_lr1121_epaper_2_9
chip: esp32s3
version: 1.0.0
description: "Waveshare ESP32-S3-LR1121-ePaper-2.9"
manufacturer: "Waveshare"
43 changes: 43 additions & 0 deletions boards/esp32_s3_lr1121_epaper_2_9/board_peripherals.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Pin map migrated from the existing examples and board support implementation.
peripherals:
- name: i2c_master
type: i2c
role: master
config:
port: 0
pins:
sda: 13
scl: 14
enable_internal_pullup: true
glitch_count: 7

- name: spi_shared
type: spi
role: master
config:
spi_bus_config:
spi_port: SPI2_HOST
mosi_io_num: 45
miso_io_num: 46
sclk_io_num: 40
quadwp_io_num: -1
quadhd_io_num: -1
max_transfer_sz: 4096

- name: gpio_boot
type: gpio
role: io
config:
pin: 0
mode: GPIO_MODE_INPUT
pull_up: true
pull_down: false
default_level: 1

- name: gpio_epaper_power
type: gpio
role: io
config:
pin: 38
mode: GPIO_MODE_OUTPUT
default_level: 1
45 changes: 45 additions & 0 deletions docs/BOARDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ is `waveshare/waveshare_boards`. Keep all definitions in:

```text
boards/
esp32_s3_lr1121_epaper_2_9/
esp32_s3_lr1121_oled_1_54_xf/
esp32_s3_touch_lcd_7/
esp32_s3_touch_amoled_1_75c/
Expand All @@ -31,6 +32,50 @@ passes this version's override-dependency name filter. No upstream patch or
customer-path argument is needed. See the pinned
[discovery implementation](https://github.com/espressif/esp-board-manager/blob/2beb9b22b0892b343bd555a1ebc9929a7edce8fc/generators/config_generator.py).

## LR1121 ePaper 2.9 definition scope

`esp32_s3_lr1121_epaper_2_9` imports the three YAML files from the product's
original example board profile. The published [product examples](https://github.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/blob/4aa6c326ca3a23317b180c86bbaea15d3327386f/examples/esp-idf/README.md#board-manager-integration)
consume this profile through `waveshare/waveshare_boards`. The profile describes
an ESP32-S3, an SSD16xx-compatible 2.9-inch e-paper device, LR1121 radio,
PCF85063A RTC, AXP2602 battery gauge, one WS2812 status LED and display power control.

The following values are configuration references, not verified schematic results:

| Interface | Configured GPIOs / parameters |
| --- | --- |
| I2C | SDA 13, SCL 14; RTC address `0x51`, battery gauge address `0x62` |
| Shared SPI2 | SCLK 40, MOSI 45, MISO 46; display 10 MHz, radio 8 MHz |
| E-paper | BUSY 8, reset 9, DC 17, CS 18; power GPIO 38, active high |
| LR1121 | DIO1 6, NSS 42, reset 39, BUSY 41 |
| Other | RTC interrupt 7; WS2812 GPIO 21, one GRB LED; BOOT input GPIO 0 |

`status_led` uses Board Manager's native RMT `led_strip` device.
It and the four custom devices (`epaper_ssd16xx`, `rtc_pcf85063a`,
`bat_axp2602`, `radio_lr1121`) retain `init_skip: true` and require explicit
initialization. Applications must provide and register initialization/deinitialization
adapters and their driver dependencies for the custom devices. These adapters are
not included in this pack; the YAML alone does not implement display refresh or
radio communication. Both devices share `spi_shared` and use separate chip selects.

`epaper_power_ctrl` uses the native GPIO power-control device and does **not** skip
initialization; its GPIO 38 default is high. The display references it through
`power_ctrl_device`. Applications must account for this power behavior during
startup and sleep. BOOT is only a GPIO declaration; no button device or SD card
device is defined. The AXP2602 sense-resistor value of 10 mΩ is a configuration
default that still needs checking against the installed hardware.

The published [hardware reference](https://github.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/blob/4aa6c326ca3a23317b180c86bbaea15d3327386f/docs/hardware-facts.zh-CN.md)
and [Rev1.1 schematic](https://github.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/blob/4aa6c326ca3a23317b180c86bbaea15d3327386f/hardware/schematics/ESP32-S3-LR1121-ePaper-2.9-XF-Schematics.pdf)
are available in the product repository. The GPIO assignments above agree with
that hardware reference; this import has not undergone a full schematic audit
or physical-board validation. Verify the exact PCB revision, display/power timing,
radio configuration and battery measurement separately. GPIO 38 controls a shared
power domain for the display, radio, WS2812 and microSD, despite the device name
`epaper_power_ctrl`.
The README uses the published [product image](https://raw.githubusercontent.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/4aa6c326ca3a23317b180c86bbaea15d3327386f/docs/images/ESP32-S3-LR1121-ePaper-2.9-details-5-2.webp),
pinned to product-repository commit `4aa6c326ca3a23317b180c86bbaea15d3327386f`.

## LR1121 OLED 1.54 XF definition scope

`esp32_s3_lr1121_oled_1_54_xf` imports the three YAML files from the
Expand Down
38 changes: 38 additions & 0 deletions docs/BOARDS_ZH.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

```text
boards/
esp32_s3_lr1121_epaper_2_9/
esp32_s3_lr1121_oled_1_54_xf/
esp32_s3_touch_lcd_7/
esp32_s3_touch_amoled_1_75c/
Expand All @@ -28,6 +29,43 @@ boards/
`_boards` 后缀能够通过该版本对覆盖依赖名称的筛选,无需修改上级组件或传入 customer-path 参数。
依据见固定版本的[扫描实现](https://github.com/espressif/esp-board-manager/blob/2beb9b22b0892b343bd555a1ebc9929a7edce8fc/generators/config_generator.py)。

## LR1121 ePaper 2.9 定义范围

`esp32_s3_lr1121_epaper_2_9` 导入产品原有示例板卡配置中的三份 YAML。
已公开的[产品示例](https://github.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/blob/4aa6c326ca3a23317b180c86bbaea15d3327386f/examples/esp-idf/README.md#board-manager-integration)
通过 `waveshare/waveshare_boards` 使用此配置。配置描述 ESP32-S3、兼容 SSD16xx 的
2.9 英寸电子纸、LR1121 无线、PCF85063A RTC、AXP2602 电量计、一颗 WS2812 状态灯和显示电源控制。

下列数值是配置参考,不代表已经完成原理图核对:

| 接口 | 配置的 GPIO / 参数 |
| --- | --- |
| I2C | SDA 13、SCL 14;RTC 地址 `0x51`,电量计地址 `0x62` |
| 共用 SPI2 | SCLK 40、MOSI 45、MISO 46;显示 10 MHz,无线 8 MHz |
| 电子纸 | BUSY 8、复位 9、DC 17、CS 18;电源 GPIO38,高电平有效 |
| LR1121 | DIO1 6、NSS 42、复位 39、BUSY 41 |
| 其他 | RTC 中断 7;WS2812 GPIO21,一颗 GRB 灯;BOOT 输入 GPIO0 |

`status_led` 使用 Board Manager 原生 RMT `led_strip` 设备。
它与四个自定义设备(`epaper_ssd16xx`、`rtc_pcf85063a`、`bat_axp2602`、
`radio_lr1121`)均保留 `init_skip: true`,需要显式初始化。
自定义设备还需要应用提供并注册初始化/反初始化适配代码及驱动依赖,
本组件包未包含这些代码;仅有 YAML 不会实现显示刷新或无线通信。
电子纸与无线共用 `spi_shared`,分别使用独立片选。

`epaper_power_ctrl` 使用原生 GPIO 电源控制设备,**没有**跳过初始化,
其 GPIO38 默认输出高电平;显示设备通过 `power_ctrl_device` 引用它。
应用启动和休眠时需考虑这一电源行为。BOOT 仅声明为 GPIO,未定义按键设备或 SD 卡设备。
AXP2602 的 10 mΩ 采样电阻值是配置默认值,仍需核对实装硬件。

产品仓库已公开[硬件说明](https://github.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/blob/4aa6c326ca3a23317b180c86bbaea15d3327386f/docs/hardware-facts.zh-CN.md)
和 [Rev1.1 原理图](https://github.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/blob/4aa6c326ca3a23317b180c86bbaea15d3327386f/hardware/schematics/ESP32-S3-LR1121-ePaper-2.9-XF-Schematics.pdf)。
上述 GPIO 分配与硬件说明一致;本次导入未完成完整原理图审计或实机验证,
具体 PCB 版本、显示/供电时序、无线配置及电量测量仍需分别验证。
虽然设备名为 `epaper_power_ctrl`,GPIO38 实际控制电子纸、无线、WS2812 和 microSD 的共用电源域。
README 使用已发布的[产品图片](https://raw.githubusercontent.com/waveshareteam/ESP32-S3-LR1121-ePaper-2.9/4aa6c326ca3a23317b180c86bbaea15d3327386f/docs/images/ESP32-S3-LR1121-ePaper-2.9-details-5-2.webp),
固定到产品仓库提交 `4aa6c326ca3a23317b180c86bbaea15d3327386f`。

## LR1121 OLED 1.54 XF 定义范围

`esp32_s3_lr1121_oled_1_54_xf` 的三份 YAML 来自
Expand Down
4 changes: 2 additions & 2 deletions docs/CI.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ published versions satisfying the range are tested, with duplicates removed.
Registry lookup failures fail the job. Each matrix entry records an exact version.

The initial Board Manager floor is **0.7.2**, matching the reference board-pack
template. Five board profiles are discovered. Each resolved Board Manager version
adds ten builds across the two IDF lines. Keep the floor until a deliberate
template. Six board profiles are discovered. Each resolved Board Manager version
adds twelve builds across the two IDF lines. Keep the floor until a deliberate
compatibility change is tested. Unsupported catalog profiles or generation failures fail CI; they are
not counted as successful builds.

Expand Down
2 changes: 1 addition & 1 deletion docs/CI_ZH.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
相同版本合并。组件库查询失败会使任务失败,每个矩阵项均记录明确版本。

Board Manager 初始最低版本为 **0.7.2**,与参考板卡包模板一致。
当前发现五块板卡,每个解析出的 Board Manager 版本在两个 IDF 版本线上共十项编译。
当前发现六块板卡,每个解析出的 Board Manager 版本在两个 IDF 版本线上共十二项编译。
调整最低版本前需要明确兼容性变更并测试。
不支持的芯片能力配置或生成失败会使 CI 失败,不会被计为编译成功。

Expand Down
2 changes: 1 addition & 1 deletion idf_component.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: "0.1.2"
version: "0.1.3"
description: Waveshare board definitions for ESP Board Manager
license: Apache-2.0
url: https://github.com/waveshareteam/waveshare_boards
Expand Down
Loading