Hi there,
I started working on a ESPHome firmware for the SenseCap Indicator. This is still very much work in progress and still has a lot of moving parts but maybe someone finds this useful!
Link: HomeDicator · GitHub
Best,
Paul
Hi there,
I started working on a ESPHome firmware for the SenseCap Indicator. This is still very much work in progress and still has a lot of moving parts but maybe someone finds this useful!
Link: HomeDicator · GitHub
Best,
Paul
Greetings,
This is awesome. I have forked and created a GUI (monitoring) for another project.
I have also created a tile: sensor/wide_half_height
Code here:
GitHub - PaulSchulz/HomeDicator at dynamic-operating-envelope
Cheers,
(another) Paul
Neat! Just a suggestion: Maybe instead of forking the whole thing it makes sense to only provide a custom main yaml file on your GitHub as in a HomeDicator configuration? So users of your fork benefit from other updates in my code as well?
Also you are welcome to send a pull request for your wide_half_height tile!
Best,
Paul
I was waiting for someone smart enough to make this! Thanks!!
Glad you like it! ![]()
It’d be nice if there was a little more documentation on how to actually get the complied code onto the device. I have not clue. Got it to compile but I have no clue how to get it on the device.
Since this is not specific to this firmware please try following the official guide for this! Some more info can also be found here although not ESPHome specific. Is there anything specific not working?
Thanks for your help. I finally figured out that I was compiling the wrong file. I now have it working and in Home Assistant!!
Thanks a ton for all your hard work!
Mike
Hello,
This is a very interesting project.
Before I install the firmware, I have two questions:
How is the data from the internal sensors transmitted to HA?
Can I address these sensors somehow or is the project only for use as a display device?
Best regards
Michael
Not yet but there are two open pull request for that which I will look into later today:
This is truly superb, thank you!
I noticed on the the SenseCAP GitHub page they also show tiles containing what look like switches. Is this something you have considered adding or you could give some guidance as to how to go about adding them? Thanks
Hi,
I do plan to add this but haven’t had the time yet.
Best,
Paul
Sadly can’t seem to get this to work, which is sad because the idea is awesome. After flashing it to the device the screen just goes black. ![]()
Update: I finally got it working, but when I tried to change it to use my sensors, I suddenly got some weird errors in ESP Home about not supporting the display.
I really like this project! I’ve been frustrated with the verbosity of LVGL YAML descriptions and the amount of boilerplate declarations for touchscreen devices.
It would be easy to add various hardware device templates, giving the ability to easily port tiles and GUIs to different devices – rather than copy and pasting them from the ESPHome device database. Would also be easier to keep them in sync and updated along with ESPHome itself.
Is there a way to sync a git repo in the esphome config directory or some nicer way to keep these templates up-to-date other than uploading a zip file? Something like HACS??
@paviro I hope you don’t mind but I copied the content of your hardware.yaml file and created a page for the Seeed SenseCAP Indicator for the esphome device database and submitted a pull request.
For those of you who find installing this (great) package cumbersome, you can “simply” copy/paste the following in your ESPHome YAML file – but you’re on your own with defining the sensors and LVGL widgets…
esphome:
name: seeed-sensecap
friendly_name: Seeed SenseCAP
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
image:
- file: https://esphome.io/_static/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
This is fantastic. Thanks to you both. I have a couple of these running now, and they work great.