mirror of
https://github.com/esphome/esphome.git
synced 2025-09-16 02:02:21 +01:00
750 lines
15 KiB
Python
750 lines
15 KiB
Python
from esphome.components.spi import TYPE_OCTAL
|
|
|
|
from .. import MODE_RGB
|
|
from . import DriverChip, delay
|
|
from .commands import (
|
|
ADJCTL3,
|
|
CSCON,
|
|
DFUNCTR,
|
|
ETMOD,
|
|
FRMCTR1,
|
|
FRMCTR2,
|
|
FRMCTR3,
|
|
GAMMASET,
|
|
GMCTR,
|
|
GMCTRN1,
|
|
GMCTRP1,
|
|
IDMOFF,
|
|
IFCTR,
|
|
IFMODE,
|
|
INVCTR,
|
|
NORON,
|
|
PWCTR1,
|
|
PWCTR2,
|
|
PWCTR3,
|
|
PWCTR4,
|
|
PWCTR5,
|
|
PWSET,
|
|
PWSETN,
|
|
SETEXTC,
|
|
SWRESET,
|
|
VMCTR,
|
|
VMCTR1,
|
|
VMCTR2,
|
|
VSCRSADD,
|
|
)
|
|
|
|
DriverChip(
|
|
"M5CORE",
|
|
width=320,
|
|
height=240,
|
|
cs_pin=14,
|
|
dc_pin=27,
|
|
reset_pin=33,
|
|
initsequence=(
|
|
(SETEXTC, 0xFF, 0x93, 0x42),
|
|
(PWCTR1, 0x12, 0x12),
|
|
(PWCTR2, 0x03),
|
|
(VMCTR1, 0xF2),
|
|
(IFMODE, 0xE0),
|
|
(0xF6, 0x01, 0x00, 0x00),
|
|
(
|
|
GMCTRP1,
|
|
0x00,
|
|
0x0C,
|
|
0x11,
|
|
0x04,
|
|
0x11,
|
|
0x08,
|
|
0x37,
|
|
0x89,
|
|
0x4C,
|
|
0x06,
|
|
0x0C,
|
|
0x0A,
|
|
0x2E,
|
|
0x34,
|
|
0x0F,
|
|
),
|
|
(
|
|
GMCTRN1,
|
|
0x00,
|
|
0x0B,
|
|
0x11,
|
|
0x05,
|
|
0x13,
|
|
0x09,
|
|
0x33,
|
|
0x67,
|
|
0x48,
|
|
0x07,
|
|
0x0E,
|
|
0x0B,
|
|
0x2E,
|
|
0x33,
|
|
0x0F,
|
|
),
|
|
(DFUNCTR, 0x08, 0x82, 0x1D, 0x04),
|
|
(IDMOFF,),
|
|
),
|
|
)
|
|
ILI9341 = DriverChip(
|
|
"ILI9341",
|
|
mirror_x=True,
|
|
width=240,
|
|
height=320,
|
|
initsequence=(
|
|
(0xEF, 0x03, 0x80, 0x02),
|
|
(0xCF, 0x00, 0xC1, 0x30),
|
|
(0xED, 0x64, 0x03, 0x12, 0x81),
|
|
(0xE8, 0x85, 0x00, 0x78),
|
|
(0xCB, 0x39, 0x2C, 0x00, 0x34, 0x02),
|
|
(0xF7, 0x20),
|
|
(0xEA, 0x00, 0x00),
|
|
(PWCTR1, 0x23),
|
|
(PWCTR2, 0x10),
|
|
(VMCTR1, 0x3E, 0x28),
|
|
(VMCTR2, 0x86),
|
|
(VSCRSADD, 0x00),
|
|
(FRMCTR1, 0x00, 0x18),
|
|
(DFUNCTR, 0x08, 0x82, 0x27),
|
|
(0xF2, 0x00),
|
|
(GAMMASET, 0x01),
|
|
(
|
|
GMCTRP1,
|
|
0x0F,
|
|
0x31,
|
|
0x2B,
|
|
0x0C,
|
|
0x0E,
|
|
0x08,
|
|
0x4E,
|
|
0xF1,
|
|
0x37,
|
|
0x07,
|
|
0x10,
|
|
0x03,
|
|
0x0E,
|
|
0x09,
|
|
0x00,
|
|
),
|
|
(
|
|
GMCTRN1,
|
|
0x00,
|
|
0x0E,
|
|
0x14,
|
|
0x03,
|
|
0x11,
|
|
0x07,
|
|
0x31,
|
|
0xC1,
|
|
0x48,
|
|
0x08,
|
|
0x0F,
|
|
0x0C,
|
|
0x31,
|
|
0x36,
|
|
0x0F,
|
|
),
|
|
),
|
|
)
|
|
DriverChip(
|
|
"ILI9481",
|
|
mirror_x=True,
|
|
width=320,
|
|
height=480,
|
|
use_axis_flips=True,
|
|
initsequence=(
|
|
(PWSET, 0x07, 0x42, 0x18),
|
|
(VMCTR, 0x00, 0x07, 0x10),
|
|
(PWSETN, 0x01, 0x02),
|
|
(PWCTR1, 0x10, 0x3B, 0x00, 0x02, 0x11),
|
|
(VMCTR1, 0x03),
|
|
(IFCTR, 0x83),
|
|
(GMCTR, 0x32, 0x36, 0x45, 0x06, 0x16, 0x37, 0x75, 0x77, 0x54, 0x0C, 0x00),
|
|
),
|
|
)
|
|
DriverChip(
|
|
"ILI9486",
|
|
mirror_x=True,
|
|
width=320,
|
|
height=480,
|
|
initsequence=(
|
|
(PWCTR3, 0x44),
|
|
(VMCTR1, 0x00, 0x00, 0x00, 0x00),
|
|
(
|
|
GMCTRP1,
|
|
0x0F,
|
|
0x1F,
|
|
0x1C,
|
|
0x0C,
|
|
0x0F,
|
|
0x08,
|
|
0x48,
|
|
0x98,
|
|
0x37,
|
|
0x0A,
|
|
0x13,
|
|
0x04,
|
|
0x11,
|
|
0x0D,
|
|
0x00,
|
|
),
|
|
(
|
|
GMCTRN1,
|
|
0x0F,
|
|
0x32,
|
|
0x2E,
|
|
0x0B,
|
|
0x0D,
|
|
0x05,
|
|
0x47,
|
|
0x75,
|
|
0x37,
|
|
0x06,
|
|
0x10,
|
|
0x03,
|
|
0x24,
|
|
0x20,
|
|
0x00,
|
|
),
|
|
),
|
|
)
|
|
DriverChip(
|
|
"ILI9488",
|
|
width=320,
|
|
height=480,
|
|
pixel_mode="18bit",
|
|
initsequence=(
|
|
(
|
|
GMCTRP1,
|
|
0x0F,
|
|
0x24,
|
|
0x1C,
|
|
0x0A,
|
|
0x0F,
|
|
0x08,
|
|
0x43,
|
|
0x88,
|
|
0x32,
|
|
0x0F,
|
|
0x10,
|
|
0x06,
|
|
0x0F,
|
|
0x07,
|
|
0x00,
|
|
),
|
|
(
|
|
GMCTRN1,
|
|
0x0F,
|
|
0x38,
|
|
0x30,
|
|
0x09,
|
|
0x0F,
|
|
0x0F,
|
|
0x4E,
|
|
0x77,
|
|
0x3C,
|
|
0x07,
|
|
0x10,
|
|
0x05,
|
|
0x23,
|
|
0x1B,
|
|
0x00,
|
|
),
|
|
(PWCTR1, 0x17, 0x15),
|
|
(PWCTR2, 0x41),
|
|
(VMCTR1, 0x00, 0x12, 0x80),
|
|
(IFMODE, 0x00),
|
|
(FRMCTR1, 0xA0),
|
|
(INVCTR, 0x02),
|
|
(0xE9, 0x00),
|
|
(ADJCTL3, 0xA9, 0x51, 0x2C, 0x82),
|
|
),
|
|
)
|
|
ILI9488_A = DriverChip(
|
|
"ILI9488_A",
|
|
width=320,
|
|
height=480,
|
|
invert_colors=False,
|
|
pixel_mode="18bit",
|
|
mirror_x=True,
|
|
initsequence=(
|
|
(
|
|
GMCTRP1,
|
|
0x00,
|
|
0x03,
|
|
0x09,
|
|
0x08,
|
|
0x16,
|
|
0x0A,
|
|
0x3F,
|
|
0x78,
|
|
0x4C,
|
|
0x09,
|
|
0x0A,
|
|
0x08,
|
|
0x16,
|
|
0x1A,
|
|
0x0F,
|
|
),
|
|
(
|
|
GMCTRN1,
|
|
0x00,
|
|
0x16,
|
|
0x19,
|
|
0x03,
|
|
0x0F,
|
|
0x05,
|
|
0x32,
|
|
0x45,
|
|
0x46,
|
|
0x04,
|
|
0x0E,
|
|
0x0D,
|
|
0x35,
|
|
0x37,
|
|
0x0F,
|
|
),
|
|
(PWCTR1, 0x17, 0x15),
|
|
(PWCTR2, 0x41),
|
|
(VMCTR1, 0x00, 0x12, 0x80),
|
|
(IFMODE, 0x00),
|
|
(FRMCTR1, 0xA0),
|
|
(INVCTR, 0x02),
|
|
(DFUNCTR, 0x02, 0x02),
|
|
(0xE9, 0x00),
|
|
(ADJCTL3, 0xA9, 0x51, 0x2C, 0x82),
|
|
),
|
|
)
|
|
ST7796 = DriverChip(
|
|
"ST7796",
|
|
mirror_x=True,
|
|
width=320,
|
|
height=480,
|
|
initsequence=(
|
|
(SWRESET,),
|
|
(CSCON, 0xC3),
|
|
(CSCON, 0x96),
|
|
(VMCTR1, 0x1C),
|
|
(IFMODE, 0x80),
|
|
(INVCTR, 0x01),
|
|
(DFUNCTR, 0x80, 0x02, 0x3B),
|
|
(ETMOD, 0xC6),
|
|
(CSCON, 0x69),
|
|
(CSCON, 0x3C),
|
|
),
|
|
)
|
|
DriverChip(
|
|
"S3BOX",
|
|
width=320,
|
|
height=240,
|
|
mirror_x=True,
|
|
mirror_y=True,
|
|
invert_colors=False,
|
|
data_rate="40MHz",
|
|
dc_pin=4,
|
|
cs_pin=5,
|
|
# reset_pin={CONF_INVERTED: True, CONF_NUMBER: 48},
|
|
initsequence=(
|
|
(0xEF, 0x03, 0x80, 0x02),
|
|
(0xCF, 0x00, 0xC1, 0x30),
|
|
(0xED, 0x64, 0x03, 0x12, 0x81),
|
|
(0xE8, 0x85, 0x00, 0x78),
|
|
(0xCB, 0x39, 0x2C, 0x00, 0x34, 0x02),
|
|
(0xF7, 0x20),
|
|
(0xEA, 0x00, 0x00),
|
|
(PWCTR1, 0x23),
|
|
(PWCTR2, 0x10),
|
|
(VMCTR1, 0x3E, 0x28),
|
|
(VMCTR2, 0x86),
|
|
(VSCRSADD, 0x00),
|
|
(FRMCTR1, 0x00, 0x18),
|
|
(DFUNCTR, 0x08, 0x82, 0x27),
|
|
(0xF2, 0x00),
|
|
(GAMMASET, 0x01),
|
|
(
|
|
GMCTRP1,
|
|
0x0F,
|
|
0x31,
|
|
0x2B,
|
|
0x0C,
|
|
0x0E,
|
|
0x08,
|
|
0x4E,
|
|
0xF1,
|
|
0x37,
|
|
0x07,
|
|
0x10,
|
|
0x03,
|
|
0x0E,
|
|
0x09,
|
|
0x00,
|
|
),
|
|
(
|
|
GMCTRN1,
|
|
0x00,
|
|
0x0E,
|
|
0x14,
|
|
0x03,
|
|
0x11,
|
|
0x07,
|
|
0x31,
|
|
0xC1,
|
|
0x48,
|
|
0x08,
|
|
0x0F,
|
|
0x0C,
|
|
0x31,
|
|
0x36,
|
|
0x0F,
|
|
),
|
|
),
|
|
)
|
|
DriverChip(
|
|
"S3BOXLITE",
|
|
mirror_x=True,
|
|
color_order=MODE_RGB,
|
|
width=320,
|
|
height=240,
|
|
cs_pin=5,
|
|
dc_pin=4,
|
|
reset_pin=48,
|
|
initsequence=(
|
|
(0xEF, 0x03, 0x80, 0x02),
|
|
(0xCF, 0x00, 0xC1, 0x30),
|
|
(0xED, 0x64, 0x03, 0x12, 0x81),
|
|
(0xE8, 0x85, 0x00, 0x78),
|
|
(0xCB, 0x39, 0x2C, 0x00, 0x34, 0x02),
|
|
(0xF7, 0x20),
|
|
(0xEA, 0x00, 0x00),
|
|
(PWCTR1, 0x23),
|
|
(PWCTR2, 0x10),
|
|
(VMCTR1, 0x3E, 0x28),
|
|
(VMCTR2, 0x86),
|
|
(VSCRSADD, 0x00),
|
|
(FRMCTR1, 0x00, 0x18),
|
|
(DFUNCTR, 0x08, 0x82, 0x27),
|
|
(0xF2, 0x00),
|
|
(GAMMASET, 0x01),
|
|
(
|
|
GMCTRP1,
|
|
0xF0,
|
|
0x09,
|
|
0x0B,
|
|
0x06,
|
|
0x04,
|
|
0x15,
|
|
0x2F,
|
|
0x54,
|
|
0x42,
|
|
0x3C,
|
|
0x17,
|
|
0x14,
|
|
0x18,
|
|
0x1B,
|
|
),
|
|
(
|
|
GMCTRN1,
|
|
0xE0,
|
|
0x09,
|
|
0x0B,
|
|
0x06,
|
|
0x04,
|
|
0x03,
|
|
0x2B,
|
|
0x43,
|
|
0x42,
|
|
0x3B,
|
|
0x16,
|
|
0x14,
|
|
0x17,
|
|
0x1B,
|
|
),
|
|
),
|
|
)
|
|
ST7789V = DriverChip(
|
|
"ST7789V",
|
|
width=240,
|
|
height=320,
|
|
initsequence=(
|
|
(DFUNCTR, 0x0A, 0x82),
|
|
(FRMCTR2, 0x0C, 0x0C, 0x00, 0x33, 0x33),
|
|
(ETMOD, 0x35),
|
|
(0xBB, 0x28),
|
|
(PWCTR1, 0x0C),
|
|
(PWCTR3, 0x01, 0xFF),
|
|
(PWCTR4, 0x10),
|
|
(PWCTR5, 0x20),
|
|
(IFCTR, 0x0F),
|
|
(PWSET, 0xA4, 0xA1),
|
|
(
|
|
GMCTRP1,
|
|
0xD0,
|
|
0x00,
|
|
0x02,
|
|
0x07,
|
|
0x0A,
|
|
0x28,
|
|
0x32,
|
|
0x44,
|
|
0x42,
|
|
0x06,
|
|
0x0E,
|
|
0x12,
|
|
0x14,
|
|
0x17,
|
|
),
|
|
(
|
|
GMCTRN1,
|
|
0xD0,
|
|
0x00,
|
|
0x02,
|
|
0x07,
|
|
0x0A,
|
|
0x28,
|
|
0x31,
|
|
0x54,
|
|
0x47,
|
|
0x0E,
|
|
0x1C,
|
|
0x17,
|
|
0x1B,
|
|
0x1E,
|
|
),
|
|
),
|
|
)
|
|
DriverChip(
|
|
"GC9A01A",
|
|
mirror_x=True,
|
|
width=240,
|
|
height=240,
|
|
initsequence=(
|
|
(0xEF,),
|
|
(0xEB, 0x14),
|
|
(0xFE,),
|
|
(0xEF,),
|
|
(0xEB, 0x14),
|
|
(0x84, 0x40),
|
|
(0x85, 0xFF),
|
|
(0x86, 0xFF),
|
|
(0x87, 0xFF),
|
|
(0x88, 0x0A),
|
|
(0x89, 0x21),
|
|
(0x8A, 0x00),
|
|
(0x8B, 0x80),
|
|
(0x8C, 0x01),
|
|
(0x8D, 0x01),
|
|
(0x8E, 0xFF),
|
|
(0x8F, 0xFF),
|
|
(0xB6, 0x00, 0x00),
|
|
(0x90, 0x08, 0x08, 0x08, 0x08),
|
|
(0xBD, 0x06),
|
|
(0xBC, 0x00),
|
|
(0xFF, 0x60, 0x01, 0x04),
|
|
(0xC3, 0x13),
|
|
(0xC4, 0x13),
|
|
(0xF9, 0x22),
|
|
(0xBE, 0x11),
|
|
(0xE1, 0x10, 0x0E),
|
|
(0xDF, 0x21, 0x0C, 0x02),
|
|
(0xF0, 0x45, 0x09, 0x08, 0x08, 0x26, 0x2A),
|
|
(0xF1, 0x43, 0x70, 0x72, 0x36, 0x37, 0x6F),
|
|
(0xF2, 0x45, 0x09, 0x08, 0x08, 0x26, 0x2A),
|
|
(0xF3, 0x43, 0x70, 0x72, 0x36, 0x37, 0x6F),
|
|
(0xED, 0x1B, 0x0B),
|
|
(0xAE, 0x77),
|
|
(0xCD, 0x63),
|
|
(0xE8, 0x34),
|
|
(
|
|
0x62,
|
|
0x18,
|
|
0x0D,
|
|
0x71,
|
|
0xED,
|
|
0x70,
|
|
0x70,
|
|
0x18,
|
|
0x0F,
|
|
0x71,
|
|
0xEF,
|
|
0x70,
|
|
0x70,
|
|
),
|
|
(
|
|
0x63,
|
|
0x18,
|
|
0x11,
|
|
0x71,
|
|
0xF1,
|
|
0x70,
|
|
0x70,
|
|
0x18,
|
|
0x13,
|
|
0x71,
|
|
0xF3,
|
|
0x70,
|
|
0x70,
|
|
),
|
|
(0x64, 0x28, 0x29, 0xF1, 0x01, 0xF1, 0x00, 0x07),
|
|
(0x66, 0x3C, 0x00, 0xCD, 0x67, 0x45, 0x45, 0x10, 0x00, 0x00, 0x00),
|
|
(0x67, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x01, 0x54, 0x10, 0x32, 0x98),
|
|
(0x74, 0x10, 0x85, 0x80, 0x00, 0x00, 0x4E, 0x00),
|
|
(0x98, 0x3E, 0x07),
|
|
(0x35,),
|
|
),
|
|
)
|
|
DriverChip(
|
|
"GC9D01N",
|
|
width=160,
|
|
height=160,
|
|
initsequence=(
|
|
(0xFE,),
|
|
(0xEF,),
|
|
(0x80, 0xFF),
|
|
(0x81, 0xFF),
|
|
(0x82, 0xFF),
|
|
(0x83, 0xFF),
|
|
(0x84, 0xFF),
|
|
(0x85, 0xFF),
|
|
(0x86, 0xFF),
|
|
(0x87, 0xFF),
|
|
(0x88, 0xFF),
|
|
(0x89, 0xFF),
|
|
(0x8A, 0xFF),
|
|
(0x8B, 0xFF),
|
|
(0x8C, 0xFF),
|
|
(0x8D, 0xFF),
|
|
(0x8E, 0xFF),
|
|
(0x8F, 0xFF),
|
|
(0x3A, 0x05),
|
|
(0xEC, 0x01),
|
|
(0x74, 0x02, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00),
|
|
(0x98, 0x3E),
|
|
(0x99, 0x3E),
|
|
(0xB5, 0x0D, 0x0D),
|
|
(0x60, 0x38, 0x0F, 0x79, 0x67),
|
|
(0x61, 0x38, 0x11, 0x79, 0x67),
|
|
(0x64, 0x38, 0x17, 0x71, 0x5F, 0x79, 0x67),
|
|
(0x65, 0x38, 0x13, 0x71, 0x5B, 0x79, 0x67),
|
|
(0x6A, 0x00, 0x00),
|
|
(0x6C, 0x22, 0x02, 0x22, 0x02, 0x22, 0x22, 0x50),
|
|
(
|
|
0x6E,
|
|
0x03,
|
|
0x03,
|
|
0x01,
|
|
0x01,
|
|
0x00,
|
|
0x00,
|
|
0x0F,
|
|
0x0F,
|
|
0x0D,
|
|
0x0D,
|
|
0x0B,
|
|
0x0B,
|
|
0x09,
|
|
0x09,
|
|
0x00,
|
|
0x00,
|
|
0x00,
|
|
0x00,
|
|
0x0A,
|
|
0x0A,
|
|
0x0C,
|
|
0x0C,
|
|
0x0E,
|
|
0x0E,
|
|
0x10,
|
|
0x10,
|
|
0x00,
|
|
0x00,
|
|
0x02,
|
|
0x02,
|
|
0x04,
|
|
0x04,
|
|
),
|
|
(0xBF, 0x01),
|
|
(0xF9, 0x40),
|
|
(0x9B, 0x3B, 0x93, 0x33, 0x7F, 0x00),
|
|
(0x7E, 0x30),
|
|
(0x70, 0x0D, 0x02, 0x08, 0x0D, 0x02, 0x08),
|
|
(0x71, 0x0D, 0x02, 0x08),
|
|
(0x91, 0x0E, 0x09),
|
|
(0xC3, 0x19, 0xC4, 0x19, 0xC9, 0x3C),
|
|
(0xF0, 0x53, 0x15, 0x0A, 0x04, 0x00, 0x3E),
|
|
(0xF1, 0x56, 0xA8, 0x7F, 0x33, 0x34, 0x5F),
|
|
(0xF2, 0x53, 0x15, 0x0A, 0x04, 0x00, 0x3A),
|
|
(0xF3, 0x52, 0xA4, 0x7F, 0x33, 0x34, 0xDF),
|
|
),
|
|
)
|
|
DriverChip(
|
|
"ST7735",
|
|
color_order=MODE_RGB,
|
|
width=128,
|
|
height=160,
|
|
initsequence=(
|
|
SWRESET,
|
|
delay(10),
|
|
(FRMCTR1, 0x01, 0x2C, 0x2D),
|
|
(FRMCTR2, 0x01, 0x2C, 0x2D),
|
|
(FRMCTR3, 0x01, 0x2C, 0x2D, 0x01, 0x2C, 0x2D),
|
|
(INVCTR, 0x07),
|
|
(PWCTR1, 0xA2, 0x02, 0x84),
|
|
(PWCTR2, 0xC5),
|
|
(PWCTR3, 0x0A, 0x00),
|
|
(PWCTR4, 0x8A, 0x2A),
|
|
(PWCTR5, 0x8A, 0xEE),
|
|
(VMCTR1, 0x0E),
|
|
(
|
|
GMCTRP1,
|
|
0x02,
|
|
0x1C,
|
|
0x07,
|
|
0x12,
|
|
0x37,
|
|
0x32,
|
|
0x29,
|
|
0x2D,
|
|
0x29,
|
|
0x25,
|
|
0x2B,
|
|
0x39,
|
|
0x00,
|
|
0x01,
|
|
0x03,
|
|
0x10,
|
|
),
|
|
(
|
|
GMCTRN1,
|
|
0x03,
|
|
0x1D,
|
|
0x07,
|
|
0x06,
|
|
0x2E,
|
|
0x2C,
|
|
0x29,
|
|
0x2D,
|
|
0x2E,
|
|
0x2E,
|
|
0x37,
|
|
0x3F,
|
|
0x00,
|
|
0x00,
|
|
0x02,
|
|
0x10,
|
|
),
|
|
NORON,
|
|
),
|
|
)
|
|
ST7796.extend(
|
|
"WT32-SC01-PLUS",
|
|
bus_mode=TYPE_OCTAL,
|
|
mirror_x=True,
|
|
reset_pin=4,
|
|
dc_pin=0,
|
|
invert_colors=True,
|
|
)
|
|
|
|
models = {}
|