Seeed SenseCap Indicator

Drivers
- Processor: ESP32-S3, RP2040
- Touchscreen: ft5x06`
- Display: ST7701S
GPIO Pinout
SPI (used for display)
| Pin | Function |
|---|---|
| GPIO41 | clock |
| GPIO48 | mosi |
| GPIO4 | cs |
| GPIO18 | de |
| GPIO5 | reset |
| GPIO16 | hsync |
| GPIO17 | vsync |
| GPIO21 | pclk |
| GPIO4, GPIO3, GPIO2, GPIO1, GPIO0 | red |
| GPIO10, GPIO9, GPIO8, GPIO7, GPIO6, GPIO5 | green |
| GPIO15, GPIO14, GPIO13, GPIO12, GPIO11 | green |
I²C (used for touchscreen)
| Pin | Function |
|---|---|
| GPIO39 | i2c SDA |
| GPIO40 | i2c SCL |
Backlight
| Pin | Function |
|---|---|
| GPIO45 | backlight |
Hardware Configuration
# Basic Config
esp32:
board: esp32-s3-devkitc-1
variant: esp32s3
flash_size: 8MB
framework:
type: esp-idf
sdkconfig_options:
CONFIG_ESPTOOLPY_FLASHSIZE_8MB: y
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: y
CONFIG_ESP32S3_DATA_CACHE_64KB: y
CONFIG_SPIRAM_FETCH_INSTRUCTIONS: y
CONFIG_SPIRAM_RODATA: y
psram:
mode: octal
speed: 80MHz
output:
- platform: ledc
pin:
number: GPIO45
ignore_strapping_warning: true
id: ledc_gpio45
frequency: 100Hz
i2c:
- id: bus_a
sda: GPIO39
scl: GPIO40
scan: false
spi:
- id: lcd_spi
clk_pin: GPIO41
mosi_pin: GPIO48
pca9554:
- id: pca9554a_device
address: 0x20
pin_count: 16
display:
- platform: st7701s
id: sensecap_display
auto_clear_enabled: false
data_rate: 4MHz
update_interval: never
spi_mode: MODE3
color_order: RGB
dimensions:
width: 480
height: 480
invert_colors: true
transform:
mirror_x: true
mirror_y: true
cs_pin:
pca9554: pca9554a_device
number: 4
reset_pin:
pca9554: pca9554a_device
number: 5
de_pin: GPIO18
hsync_pin: GPIO16
vsync_pin: GPIO17
pclk_pin: GPIO21
init_sequence:
- 1 # select canned init sequence number 1
- delay 5ms
- [0xE0, 0x1F] # Set sunlight readable enhancement
data_pins:
red:
- GPIO4 #r1
- GPIO3 #r2
- GPIO2 #r3
- GPIO1 #r4
- GPIO0 #r5
green:
- GPIO10 #g0
- GPIO9 #g1
- GPIO8 #g2
- GPIO7 #g3
- GPIO6 #g4
- GPIO5 #g5
blue:
- GPIO15 #b1
- GPIO14 #b2
- GPIO13 #b3
- GPIO12 #b4
- GPIO11 #b5
light:
- platform: monochromatic
name: "Backlight"
id: backlight
output: ledc_gpio45
restore_mode: ALWAYS_ON
touchscreen:
platform: ft5x06
id: sensecap_touchscreen
transform:
mirror_x: true
mirror_y: true
on_release:
- if:
condition: lvgl.is_paused
then:
- lvgl.resume:
- lvgl.widget.redraw:
- light.turn_on: backlight
Example Configuration
# Basic Config
esphome:
name: seeed-sensecap
friendly_name: Seeed SenseCAP
<hardware configation from above>
image:
- file: https://esphome.io/favicon-512x512.png
id: boot_logo
resize: 200x200
type: RGB565
transparency: alpha_channel
lvgl:
on_idle:
timeout: !lambda "return 10000;"
then:
- light.turn_off: backlight
- lvgl.pause:
top_layer:
widgets:
- obj:
id: boot_screen
x: 0
y: 0
width: 100%
height: 100%
bg_color: 0xffffff
bg_opa: COVER
radius: 0
pad_all: 0
border_width: 0
widgets:
- image:
align: CENTER
src: boot_logo
y: -40
- spinner:
align: CENTER
y: 95
height: 50
width: 50
spin_time: 1s
arc_length: 60deg
arc_width: 8
indicator:
arc_color: 0x18bcf2
arc_width: 8