# trace_h1: WaveShare ESP32-S3 AMOLED 1.8 V1 BSP
[](https://components.espressif.com/components/innoveloper/trace_h1)
`trace_h1` is a dedicated Board Support Package (BSP) for the **WaveShare ESP32-S3 AMOLED 1.8 V1** development board (featuring the **SH8601** AMOLED driver and **FT3168 / FT5x06** capacitive touch controller).
---
## Hardware Features
| Hardware Component | Controller / Driver IC | Interface |
| :--- | :--- | :--- |
| **AMOLED Display (1.8" 368×448)** | **SH8601** | QSPI (SPI Host 2) |
| **Capacitive Touch Screen** | **FT3168 / FT5x06** (Address `0x38`) | I2C |
| **IO Expander & Power Management** | **TCA9554** & **AXP2101 PMIC** | I2C |
| **Microphone & Audio Codec** | **ES8311** | I2S |
---
## Key Advantages in `trace_h1`
- **Zero White Boot Flash**: Implements native SH8601 initial power-on sequence setting startup brightness (register `0x51`) to `0x00` during panel reset.
- **V1 Hardware Native**: Fully supports discontinued V1 boards with `SH8601` AMOLED + `FT3168/FT5x06` touch controllers out of the box.
- **Thread-Safe LVGL Support**: Compatible with FreeRTOS `lvgl_port_lock()` / `unlock()`.
---
## Installation & Usage
Add `trace_h1` to your project's `main/idf_component.yml`:
```yaml
dependencies:
innoveloper/trace_h1: "^1.0.0"
```
### Basic Initialization Code Example
```c
#include "bsp/esp-bsp.h"
#include "esp_log.h"
#include "lvgl.h"
void app_main(void)
{
// Pre-initialize I2C & IO expander
bsp_i2c_init();
bsp_io_expander_init();
// Start display & touch pipeline
lv_display_t *disp = bsp_display_start();
// Lock LVGL for thread-safe UI creation
if (bsp_display_lock(0)) {
// Initialize your LVGL UI screens here
bsp_display_unlock();
}
}
```
---
## License
This project is licensed under the [Apache License 2.0](LICENSE). Derived from WaveShare ESP32 components.
idf.py add-dependency "innoveloper/trace_h1^1.0.3"