mirror of
https://github.com/esphome/esphome.git
synced 2026-02-18 15:35:59 -07:00
89 lines
3.4 KiB
Python
89 lines
3.4 KiB
Python
import esphome.codegen as cg
|
|
from esphome.core import ID
|
|
|
|
from ..display import CONF_INIT_SEQUENCE_ID
|
|
from . import EpaperModel
|
|
|
|
|
|
class WaveshareModel(EpaperModel):
|
|
def __init__(self, name, lut, lut_partial=None, **defaults):
|
|
super().__init__(name, "EpaperWaveshare", **defaults)
|
|
self.lut = lut
|
|
self.lut_partial = lut_partial
|
|
|
|
def get_constructor_args(self, config) -> tuple:
|
|
lut = (
|
|
cg.static_const_array(
|
|
ID(config[CONF_INIT_SEQUENCE_ID].id + "_lut", type=cg.uint8), self.lut
|
|
),
|
|
len(self.lut),
|
|
)
|
|
if self.lut_partial is None:
|
|
lut_partial = cg.nullptr, 0
|
|
else:
|
|
lut_partial = (
|
|
cg.static_const_array(
|
|
ID(
|
|
config[CONF_INIT_SEQUENCE_ID].id + "_lut_partial", type=cg.uint8
|
|
),
|
|
self.lut_partial,
|
|
),
|
|
len(self.lut_partial),
|
|
)
|
|
return *lut, *lut_partial
|
|
|
|
|
|
# fmt: off
|
|
WaveshareModel(
|
|
"waveshare-2.13in-v3",
|
|
width=122,
|
|
height=250,
|
|
initsequence=(
|
|
(0x01, 0x27, 0x01, 0x00), # driver output control
|
|
(0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00),
|
|
(0x11, 0x03), # Data entry mode
|
|
(0x3F, 0x22), # Undocumented command
|
|
(0x2C, 0x36), # write VCOM register
|
|
(0x04, 0x41, 0x0C, 0x32), # SRC voltage
|
|
(0x03, 0x17), # Gate voltage
|
|
(0x21, 0x00, 0x80), # Display update control
|
|
(0x18, 0x80), # Select internal temperature sensor
|
|
),
|
|
lut=(
|
|
0x80, 0x4A, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x40, 0x4A, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x80, 0x4A, 0x40, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x4A, 0x80, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0xF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xF, 0x0, 0x0,
|
|
0xF, 0x0, 0x0, 0x2, 0xF, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
|
0x0, 0x0, 0x0,
|
|
),
|
|
lut_partial=(
|
|
0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x40, 0x40, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0xF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
|
0x0, 0x0, 0x0,
|
|
),
|
|
)
|