1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-30 14:43:51 +00:00

Group component tests to reduce CI time (#11134)

This commit is contained in:
J. Nick Koston
2025-10-11 08:21:45 -10:00
committed by GitHub
parent 6a11700a6b
commit dcf2697a2a
1808 changed files with 8564 additions and 5758 deletions

View File

@@ -3,7 +3,7 @@ esphome:
friendly_name: $component_name
bk72xx:
board: generic-bk7231n-qfn32-tuya
board: generic-bk7252
logger:
level: VERY_VERBOSE

View File

@@ -0,0 +1,248 @@
# Common Bus Configurations for Component Tests
This directory contains standardized bus configurations (I2C, SPI, UART, Modbus, BLE) that component tests use, enabling multiple components to be tested together with intelligent grouping.
## Purpose
These common configs allow multiple components to **share a single bus**, dramatically reducing CI time by compiling multiple compatible components together. Components with identical bus configurations are automatically grouped and tested together.
## Structure
```
common/
├── i2c/ # Standard I2C (50kHz)
│ ├── esp32-idf.yaml
│ ├── esp32-ard.yaml
│ ├── esp32-c3-idf.yaml
│ ├── esp32-c3-ard.yaml
│ ├── esp32-s2-idf.yaml
│ ├── esp32-s2-ard.yaml
│ ├── esp32-s3-idf.yaml
│ ├── esp32-s3-ard.yaml
│ ├── esp8266-ard.yaml
│ ├── rp2040-ard.yaml
│ └── bk72xx-ard.yaml
├── i2c_low_freq/ # Low frequency I2C (10kHz)
│ └── (same platform variants)
├── spi/
│ └── (same platform variants)
├── uart/
│ ├── esp32-idf.yaml
│ ├── esp32-c3-idf.yaml
│ ├── esp8266-ard.yaml
│ └── rp2040-ard.yaml
├── modbus/ # Modbus (includes uart via packages)
│ ├── esp32-idf.yaml
│ ├── esp32-c3-idf.yaml
│ ├── esp8266-ard.yaml
│ └── rp2040-ard.yaml
└── ble/
├── esp32-idf.yaml
├── esp32-ard.yaml
└── esp32-c3-idf.yaml
```
## How It Works
### Component Test Structure
Each component test includes the common bus config:
```yaml
# tests/components/bh1750/test.esp32-idf.yaml
packages:
i2c: !include ../../test_build_components/common/i2c/esp32-idf.yaml
<<: !include common.yaml
```
The common config provides:
- Standardized pin assignments
- A shared bus instance (`i2c_bus`, `spi_bus`, `uart_bus`, `modbus_bus`, etc.)
The component's `common.yaml` references the shared bus:
```yaml
# tests/components/bh1750/common.yaml
sensor:
- platform: bh1750
i2c_id: i2c_bus
name: Living Room Brightness
address: 0x23
```
### Intelligent Grouping (Implemented)
Components with identical bus configurations are automatically grouped and tested together:
```yaml
# Auto-generated merged config (created by test_build_components.py)
packages:
i2c: !include ../../test_build_components/common/i2c/esp32-idf.yaml
sensor:
- platform: bme280_i2c
i2c_id: i2c_bus
temperature:
name: BME280 Temperature
- platform: bh1750
i2c_id: i2c_bus
name: BH1750 Illuminance
- platform: sht3xd
i2c_id: i2c_bus
temperature:
name: SHT3xD Temperature
```
**Result**: 3 components compile in one test instead of 3 separate tests!
### Package Dependencies
Some packages include other packages to avoid duplication:
```yaml
# tests/test_build_components/common/modbus/esp32-idf.yaml
packages:
uart: !include ../uart/esp32-idf.yaml # Modbus requires UART
substitutions:
flow_control_pin: GPIO4
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}
```
Components using `modbus` packages automatically get `uart` as well.
## Pin Allocations
### I2C (Standard - 50kHz)
- **ESP32 IDF**: SCL=GPIO16, SDA=GPIO17
- **ESP32 Arduino**: SCL=GPIO22, SDA=GPIO21
- **ESP32-C3**: SCL=GPIO5, SDA=GPIO4
- **ESP32-S2/S3**: SCL=GPIO9, SDA=GPIO8
- **ESP8266**: SCL=GPIO5, SDA=GPIO4
- **RP2040**: SCL=GPIO5, SDA=GPIO4
- **BK72xx**: SCL=P20, SDA=P21
### I2C Low Frequency (10kHz)
Same pin allocations as standard I2C, but with 10kHz frequency for components requiring slower speeds.
### SPI
- **ESP32**: CLK=GPIO18, MOSI=GPIO23, MISO=GPIO19
- **ESP32-C3**: CLK=GPIO6, MOSI=GPIO7, MISO=GPIO5
- **ESP32-S2**: CLK=GPIO36, MOSI=GPIO35, MISO=GPIO37
- **ESP32-S3**: CLK=GPIO40, MOSI=GPIO6, MISO=GPIO41
- **ESP8266**: CLK=GPIO14, MOSI=GPIO13, MISO=GPIO12
- **RP2040**: CLK=GPIO18, MOSI=GPIO19, MISO=GPIO16
- CS pins are component-specific (each SPI device needs unique CS)
### UART
- **ESP32 IDF**: TX=GPIO17, RX=GPIO16 (baud: 19200)
- **ESP32-C3 IDF**: TX=GPIO7, RX=GPIO6 (baud: 19200)
- **ESP8266**: TX=GPIO1, RX=GPIO3 (baud: 19200)
- **RP2040**: TX=GPIO0, RX=GPIO1 (baud: 19200)
### Modbus (includes UART)
Same UART pins as above, plus:
- **flow_control_pin**: GPIO4 (all platforms)
### BLE
- **ESP32**: Shared `esp32_ble_tracker` infrastructure
- Each component defines unique `ble_client` with different MAC addresses
## Benefits
1. **Shared bus = less duplication**
- 200+ I2C components use common bus configs
- 60+ SPI components use common bus configs
- 80+ UART components use common bus configs
- 6 Modbus components use common modbus configs (which include UART)
2. **Intelligent grouping reduces CI time**
- Components with identical bus configs are automatically grouped
- Typical reduction: 80-90% fewer builds
- Example: 3 I2C components → 1 merged build (saves 2 builds)
- CI runs 5 component batches in parallel (configurable via `max-parallel` in `.github/workflows/ci.yml`)
3. **Easier maintenance**
- Change bus pins for a platform once, affects all component tests
- Consistent pin assignments across all components
- Centralized bus configuration
## Component Compatibility
### Groupable Components
Components are automatically grouped when they have:
- Identical bus package references (e.g., all use `i2c/esp32-idf.yaml`)
- No local file references (`$component_dir`)
- No `!extend` or `!remove` directives
- Proper bus ID references (`i2c_id: i2c_bus`, `spi_id: spi_bus`, etc.)
### Non-Groupable Components
Components tested individually when they:
- Use different bus frequencies (e.g., `i2c` vs `i2c_low_freq`)
- Reference local files with `$component_dir`
- Are platform components (abstract base classes with `IS_PLATFORM_COMPONENT = True`)
- Define buses directly (not migrated to packages yet)
- Are in `ISOLATED_COMPONENTS` list (known build conflicts)
### Bus Variants
- **i2c** (50kHz): Standard I2C frequency for most sensors
- **i2c_low_freq** (10kHz): For sensors requiring slower I2C speeds
- **modbus**: Includes UART via package dependencies
### Making Components Groupable
**WARNING**: Using `!extend` or `!remove` directives in component test files prevents automatic component grouping in CI, making builds slower.
When platform-specific parameters are needed, inline the full configuration rather than using `!extend` or `!remove`. This allows the component to be grouped with other compatible components, reducing CI build time.
**Note**: Some components legitimately require `!extend` or `!remove` for platform-specific features (e.g., `adc` removing ESP32-only `attenuation` parameter on ESP8266). These are correctly identified as non-groupable.
## Testing Components
### Testing Individual Components
Test specific components using `test_build_components`:
```bash
# Test a single component
./script/test_build_components -c bme280_i2c -t esp32-idf -e config
# Test multiple components
./script/test_build_components -c bme280_i2c,bh1750,sht3xd -t esp32-idf -e compile
```
### Testing All Components Together
To verify that all components can be tested together without ID conflicts or configuration issues:
```bash
./script/test_component_grouping.py -e config --all
```
This tests all components in a single build to catch conflicts that might not appear when testing components individually. This is useful for:
- Detecting ID conflicts between components
- Validating that components can coexist in the same configuration
- Ensuring proper `i2c_id`, `spi_id`, `uart_id` specifications
Use `-e config` for fast configuration validation, or `-e compile` for full compilation testing.
### Testing Component Groups
Test specific groups of components by bus signature:
```bash
# Test all I2C components together
./script/test_component_grouping.py -s i2c -e config
# Test with custom group sizes
./script/test_component_grouping.py --min-size 5 --max-size 20 --max-groups 3
```
## Implementation Details
### Scripts
- `script/analyze_component_buses.py`: Analyzes components to detect bus usage and grouping compatibility
- `script/merge_component_configs.py`: Merges multiple component configs into a single test file
- `script/test_build_components.py`: Main test runner with intelligent grouping
- `script/test_component_grouping.py`: Test component groups or all components together
- `script/split_components_for_ci.py`: Splits components into batches for parallel CI execution
### Configuration
- `.github/workflows/ci.yml`: CI workflow with `max-parallel: 5` for component testing
- Package dependencies defined in `PACKAGE_DEPENDENCIES` (e.g., modbus → uart)
- Base bus components excluded from migration warnings: `i2c`, `spi`, `uart`, `modbus`, `canbus`

View File

@@ -0,0 +1,9 @@
# Common BLE tracker configuration for ESP32 Arduino tests
# BLE client components share this tracker infrastructure
# Each component defines its own ble_client with unique MAC address
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true

View File

@@ -0,0 +1,9 @@
# Common BLE tracker configuration for ESP32-C3 IDF tests
# BLE client components share this tracker infrastructure
# Each component defines its own ble_client with unique MAC address
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true

View File

@@ -0,0 +1,9 @@
# Common BLE tracker configuration for ESP32 IDF tests
# BLE client components share this tracker infrastructure
# Each component defines its own ble_client with unique MAC address
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true

View File

@@ -0,0 +1,29 @@
esp32_camera:
name: ESP32 Camera
data_pins:
- number: 17
- number: 35
- number: 34
- number: 5
- number: 39
- number: 18
- number: 36
- number: 19
vsync_pin: 22
href_pin: 26
pixel_clock_pin: 21
external_clock:
pin: 27
frequency: 20MHz
i2c_pins:
sda: 25
scl: 23
reset_pin: 15
power_down_pin: 1
resolution: 640x480
jpeg_quality: 10
frame_buffer_location: PSRAM
on_image:
then:
- lambda: |-
ESP_LOGD("main", "image len=%d, data=%c", image.length, image.data[0]);

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for BK72XX Arduino tests
substitutions:
scl_pin: P26
sda_pin: P24
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for ESP32 Arduino tests
substitutions:
scl_pin: GPIO22
sda_pin: GPIO21
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for ESP32-C3 Arduino tests
substitutions:
scl_pin: GPIO8
sda_pin: GPIO10
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for ESP32-C3 IDF tests
substitutions:
scl_pin: GPIO8
sda_pin: GPIO10
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,13 @@
# Common I2C configuration for ESP32 IDF tests
# Provides a shared I2C bus that all components can use
# Components will auto-use this bus if they don't specify i2c_id
substitutions:
scl_pin: GPIO16
sda_pin: GPIO17
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,13 @@
# Common I2C configuration for ESP32-P4 IDF tests
# Provides a shared I2C bus that all components can use
# Components will auto-use this bus if they don't specify i2c_id
substitutions:
scl_pin: GPIO8
sda_pin: GPIO7
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for ESP32-S2 Arduino tests
substitutions:
scl_pin: GPIO16
sda_pin: GPIO17
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for ESP32-S2 IDF tests
substitutions:
scl_pin: GPIO16
sda_pin: GPIO17
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for ESP32-S3 Arduino tests
substitutions:
scl_pin: GPIO9
sda_pin: GPIO8
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for ESP32-S3 IDF tests
substitutions:
scl_pin: GPIO9
sda_pin: GPIO8
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for ESP8266 Arduino tests
substitutions:
scl_pin: GPIO5
sda_pin: GPIO4
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,11 @@
# Common I2C configuration for RP2040 Arduino tests
substitutions:
scl_pin: GPIO5
sda_pin: GPIO4
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
scan: true

View File

@@ -0,0 +1,12 @@
# Common I2C configuration for ESP32 Arduino tests - Low Frequency (10kHz)
substitutions:
scl_pin: GPIO22
sda_pin: GPIO21
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
frequency: 10kHz
scan: true

View File

@@ -0,0 +1,12 @@
# Common I2C configuration for ESP32-C3 Arduino tests - Low Frequency (10kHz)
substitutions:
scl_pin: GPIO6
sda_pin: GPIO5
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
frequency: 10kHz
scan: true

View File

@@ -0,0 +1,12 @@
# Common I2C configuration for ESP32-C3 IDF tests - Low Frequency (10kHz)
substitutions:
scl_pin: GPIO5
sda_pin: GPIO4
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
frequency: 10kHz
scan: true

View File

@@ -0,0 +1,13 @@
# Common I2C configuration for ESP32 IDF tests - Low Frequency (10kHz)
# For components that require I2C frequency <= 15kHz (ags10, ltr501, ltr_als_ps)
substitutions:
scl_pin: GPIO16
sda_pin: GPIO17
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
frequency: 10kHz
scan: true

View File

@@ -0,0 +1,12 @@
# Common I2C configuration for ESP8266 Arduino tests - Low Frequency (10kHz)
substitutions:
scl_pin: GPIO5
sda_pin: GPIO4
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
frequency: 10kHz
scan: true

View File

@@ -0,0 +1,12 @@
# Common I2C configuration for RP2040 Arduino tests - Low Frequency (10kHz)
substitutions:
scl_pin: GPIO5
sda_pin: GPIO4
i2c:
- id: i2c_bus
scl: ${scl_pin}
sda: ${sda_pin}
frequency: 10kHz
scan: true

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for BK72XX Arduino tests
packages:
uart: !include ../uart/bk72xx-ard.yaml
substitutions:
flow_control_pin: P6
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for ESP32 Arduino tests
packages:
uart: !include ../uart/esp32-ard.yaml
substitutions:
flow_control_pin: GPIO4
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for ESP32-C3 Arduino tests
packages:
uart: !include ../uart/esp32-c3-ard.yaml
substitutions:
flow_control_pin: GPIO4
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for ESP32-C3 IDF tests
packages:
uart: !include ../uart/esp32-c3-idf.yaml
substitutions:
flow_control_pin: GPIO4
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,13 @@
# Common Modbus configuration for ESP32 IDF tests
# Provides a shared Modbus bus that all components can use
packages:
uart: !include ../uart/esp32-idf.yaml
substitutions:
flow_control_pin: GPIO4
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for ESP32-S2 Arduino tests
packages:
uart: !include ../uart/esp32-s2-ard.yaml
substitutions:
flow_control_pin: GPIO4
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for ESP32-S2 IDF tests
packages:
uart: !include ../uart/esp32-s2-idf.yaml
substitutions:
flow_control_pin: GPIO4
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for ESP32-S3 Arduino tests
packages:
uart: !include ../uart/esp32-s3-ard.yaml
substitutions:
flow_control_pin: GPIO4
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for ESP32-S3 IDF tests
packages:
uart: !include ../uart/esp32-s3-idf.yaml
substitutions:
flow_control_pin: GPIO4
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for ESP8266 Arduino tests
packages:
uart: !include ../uart/esp8266-ard.yaml
substitutions:
flow_control_pin: GPIO5
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,12 @@
# Common Modbus configuration for RP2040 Arduino tests
packages:
uart: !include ../uart/rp2040-ard.yaml
substitutions:
flow_control_pin: GPIO2
modbus:
- id: modbus_bus
uart_id: uart_bus
flow_control_pin: ${flow_control_pin}

View File

@@ -0,0 +1,13 @@
# Common QSPI configuration for ESP32-S3 IDF tests
# For components that need QuadSPI (qspi_dbi displays)
spi:
- id: quad_spi
type: quad
interface: spi3
clk_pin: 47
data_pins:
- 40
- 41
- 42
- 43

View File

@@ -0,0 +1,12 @@
# Common SPI configuration for BK72XX Arduino tests
substitutions:
clk_pin: P10
mosi_pin: P11
miso_pin: P6
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,12 @@
# Common SPI configuration for ESP32 Arduino tests
substitutions:
clk_pin: GPIO18
mosi_pin: GPIO23
miso_pin: GPIO19
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,12 @@
# Common SPI configuration for ESP32-C3 Arduino tests
substitutions:
clk_pin: GPIO4
mosi_pin: GPIO6
miso_pin: GPIO5
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,15 @@
# Common SPI configuration for ESP32-C3 IDF tests
# Provides a shared SPI bus that all components can use
# Components will auto-use this bus if they don't specify spi_id
# CS pins are component-specific
substitutions:
clk_pin: GPIO4
mosi_pin: GPIO6
miso_pin: GPIO5
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,15 @@
# Common SPI configuration for ESP32 IDF tests
# Provides a shared SPI bus that all components can use
# Components will auto-use this bus if they don't specify spi_id
# CS pins are component-specific
substitutions:
clk_pin: GPIO18
mosi_pin: GPIO23
miso_pin: GPIO19
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,12 @@
# Common SPI configuration for ESP32-S2 Arduino tests
substitutions:
clk_pin: GPIO36
mosi_pin: GPIO35
miso_pin: GPIO37
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,12 @@
# Common SPI configuration for ESP32-S2 IDF tests
substitutions:
clk_pin: GPIO36
mosi_pin: GPIO35
miso_pin: GPIO37
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,12 @@
# Common SPI configuration for ESP32-S3 Arduino tests
substitutions:
clk_pin: GPIO40
mosi_pin: GPIO6
miso_pin: GPIO41
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,12 @@
# Common SPI configuration for ESP32-S3 IDF tests
substitutions:
clk_pin: GPIO40
mosi_pin: GPIO6
miso_pin: GPIO41
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,12 @@
# Common SPI configuration for ESP8266 Arduino tests
substitutions:
clk_pin: GPIO14
mosi_pin: GPIO13
miso_pin: GPIO12
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,12 @@
# Common SPI configuration for RP2040 Arduino tests
substitutions:
clk_pin: GPIO18
mosi_pin: GPIO19
miso_pin: GPIO16
spi:
- id: spi_bus
clk_pin: ${clk_pin}
mosi_pin: ${mosi_pin}
miso_pin: ${miso_pin}

View File

@@ -0,0 +1,13 @@
# Common UART configuration for BK72XX Arduino tests
# Provides a shared UART bus that components can use
# Components will auto-use this bus if they don't specify uart_id
substitutions:
tx_pin: TX1
rx_pin: RX1
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32 Arduino tests
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32-C3 Arduino tests
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600

View File

@@ -0,0 +1,13 @@
# Common UART configuration for ESP32-C3 IDF tests
# Provides a shared UART bus that components can use
# Components will auto-use this bus if they don't specify uart_id
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600

View File

@@ -0,0 +1,13 @@
# Common UART configuration for ESP32 IDF tests
# Provides a shared UART bus that components can use
# Components will auto-use this bus if they don't specify uart_id
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP8266 Arduino tests
substitutions:
tx_pin: GPIO1
rx_pin: GPIO3
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600

View File

@@ -0,0 +1,11 @@
# Common UART configuration for RP2040 Arduino tests
substitutions:
tx_pin: GPIO0
rx_pin: GPIO1
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32 Arduino tests - 115200 baud
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 115200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32-C3 Arduino tests - 115200 baud
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 115200

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32-C3 IDF tests - 115200 baud
# For components that require UART baud rate 115200 (bl0906)
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 115200

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32 IDF tests - 115200 baud
# For components that require UART baud rate 115200 (bl0906)
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 115200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP8266 Arduino tests - 115200 baud
substitutions:
tx_pin: GPIO4
rx_pin: GPIO5
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 115200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for RP2040 Arduino tests - 115200 baud
substitutions:
tx_pin: GPIO0
rx_pin: GPIO1
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 115200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32 Arduino tests - 1200 baud
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32-C3 Arduino tests - 1200 baud
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32-C3 IDF tests - 1200 baud
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32 IDF tests - 1200 baud
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP8266 Arduino tests - 1200 baud
substitutions:
tx_pin: GPIO4
rx_pin: GPIO5
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for RP2040 Arduino tests - 1200 baud
substitutions:
tx_pin: GPIO0
rx_pin: GPIO1
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32 Arduino tests - 1200 baud even parity
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32-C3 Arduino tests - 1200 baud even parity
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32-C3 IDF tests - 1200 baud, EVEN parity
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32 IDF tests - 1200 baud, EVEN parity
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP8266 Arduino tests - 1200 baud even parity
substitutions:
tx_pin: GPIO4
rx_pin: GPIO5
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for RP2040 Arduino tests - 1200 baud even parity
substitutions:
tx_pin: GPIO0
rx_pin: GPIO1
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 1200
parity: EVEN

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32 Arduino tests - 19200 baud
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 19200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32-C3 Arduino tests - 19200 baud
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 19200

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32-C3 IDF tests - 19200 baud
# For components that require UART baud rate 19200 (bl0906)
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 19200

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32 IDF tests - 19200 baud
# For components that require UART baud rate 19200 (bl0906)
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 19200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP8266 Arduino tests - 19200 baud
substitutions:
tx_pin: GPIO1
rx_pin: GPIO3
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 19200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for RP2040 Arduino tests - 19200 baud
substitutions:
tx_pin: GPIO0
rx_pin: GPIO1
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 19200

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32 Arduino tests - 38400 baud
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 38400

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32-C3 Arduino tests - 38400 baud
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 38400

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32-C3 IDF tests - 38400 baud
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 38400

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32 IDF tests - 38400 baud
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 38400

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP8266 Arduino tests - 38400 baud
substitutions:
tx_pin: GPIO4
rx_pin: GPIO5
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 38400

View File

@@ -0,0 +1,11 @@
# Common UART configuration for RP2040 Arduino tests - 38400 baud
substitutions:
tx_pin: GPIO0
rx_pin: GPIO1
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 38400

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32 Arduino tests - 4800 baud
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32-C3 Arduino tests - 4800 baud
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32-C3 IDF tests - 4800 baud
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP32 IDF tests - 4800 baud
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800

View File

@@ -0,0 +1,11 @@
# Common UART configuration for ESP8266 Arduino tests - 4800 baud
substitutions:
tx_pin: GPIO4
rx_pin: GPIO5
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800

View File

@@ -0,0 +1,11 @@
# Common UART configuration for RP2040 Arduino tests - 4800 baud
substitutions:
tx_pin: GPIO0
rx_pin: GPIO1
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32 Arduino tests - 4800 baud even parity
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32-C3 Arduino tests - 4800 baud even parity
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32-C3 IDF tests - 4800 baud, EVEN parity
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32 IDF tests - 4800 baud, EVEN parity
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP8266 Arduino tests - 4800 baud even parity
substitutions:
tx_pin: GPIO4
rx_pin: GPIO5
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for RP2040 Arduino tests - 4800 baud even parity
substitutions:
tx_pin: GPIO0
rx_pin: GPIO1
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 4800
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32 Arduino tests - 9600 baud even parity
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32-C3 Arduino tests - 9600 baud even parity
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32-C3 IDF tests - 9600 baud, EVEN parity
substitutions:
tx_pin: GPIO20
rx_pin: GPIO21
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600
parity: EVEN

View File

@@ -0,0 +1,12 @@
# Common UART configuration for ESP32 IDF tests - 9600 baud, EVEN parity
substitutions:
tx_pin: GPIO17
rx_pin: GPIO16
uart:
- id: uart_bus
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}
baud_rate: 9600
parity: EVEN

Some files were not shown because too many files have changed in this diff Show More