mirror of
https://github.com/esphome/esphome.git
synced 2024-11-21 22:48:10 +01:00
Add support for Waveshare 2.13" V2 display (#6337)
* Add support for Waveshare 2.13" V2 display * Fix clang-tidy error, add comment about BUSY in deep sleep * Add test * Add nullptr check and move tests to separate file * Fix GPIO pins in test
This commit is contained in:
parent
32be12423a
commit
a96762220a
5 changed files with 228 additions and 137 deletions
|
@ -85,6 +85,9 @@ WaveshareEPaper7P5InHDB = waveshare_epaper_ns.class_(
|
||||||
WaveshareEPaper2P13InDKE = waveshare_epaper_ns.class_(
|
WaveshareEPaper2P13InDKE = waveshare_epaper_ns.class_(
|
||||||
"WaveshareEPaper2P13InDKE", WaveshareEPaper
|
"WaveshareEPaper2P13InDKE", WaveshareEPaper
|
||||||
)
|
)
|
||||||
|
WaveshareEPaper2P13InV2 = waveshare_epaper_ns.class_(
|
||||||
|
"WaveshareEPaper2P13InV2", WaveshareEPaper
|
||||||
|
)
|
||||||
WaveshareEPaper2P13InV3 = waveshare_epaper_ns.class_(
|
WaveshareEPaper2P13InV3 = waveshare_epaper_ns.class_(
|
||||||
"WaveshareEPaper2P13InV3", WaveshareEPaper
|
"WaveshareEPaper2P13InV3", WaveshareEPaper
|
||||||
)
|
)
|
||||||
|
@ -97,6 +100,7 @@ MODELS = {
|
||||||
"1.54in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_1_54_IN),
|
"1.54in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_1_54_IN),
|
||||||
"1.54inv2": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_1_54_IN_V2),
|
"1.54inv2": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_1_54_IN_V2),
|
||||||
"2.13in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_2_13_IN),
|
"2.13in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_2_13_IN),
|
||||||
|
"2.13inv2": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_2_13_IN_V2),
|
||||||
"2.13in-ttgo": ("a", WaveshareEPaperTypeAModel.TTGO_EPAPER_2_13_IN),
|
"2.13in-ttgo": ("a", WaveshareEPaperTypeAModel.TTGO_EPAPER_2_13_IN),
|
||||||
"2.13in-ttgo-b1": ("a", WaveshareEPaperTypeAModel.TTGO_EPAPER_2_13_IN_B1),
|
"2.13in-ttgo-b1": ("a", WaveshareEPaperTypeAModel.TTGO_EPAPER_2_13_IN_B1),
|
||||||
"2.13in-ttgo-b73": ("a", WaveshareEPaperTypeAModel.TTGO_EPAPER_2_13_IN_B73),
|
"2.13in-ttgo-b73": ("a", WaveshareEPaperTypeAModel.TTGO_EPAPER_2_13_IN_B73),
|
||||||
|
|
|
@ -256,12 +256,14 @@ void WaveshareEPaperTypeA::initialize() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void WaveshareEPaperTypeA::init_display_() {
|
void WaveshareEPaperTypeA::init_display_() {
|
||||||
if (this->model_ == TTGO_EPAPER_2_13_IN_B74) {
|
if (this->model_ == TTGO_EPAPER_2_13_IN_B74 || this->model_ == WAVESHARE_EPAPER_2_13_IN_V2) {
|
||||||
this->reset_pin_->digital_write(false);
|
if (this->reset_pin_ != nullptr) {
|
||||||
delay(10);
|
this->reset_pin_->digital_write(false);
|
||||||
this->reset_pin_->digital_write(true);
|
delay(10);
|
||||||
delay(10);
|
this->reset_pin_->digital_write(true);
|
||||||
this->wait_until_idle_();
|
delay(10);
|
||||||
|
this->wait_until_idle_();
|
||||||
|
}
|
||||||
|
|
||||||
this->command(0x12); // SWRESET
|
this->command(0x12); // SWRESET
|
||||||
this->wait_until_idle_();
|
this->wait_until_idle_();
|
||||||
|
@ -321,6 +323,9 @@ void WaveshareEPaperTypeA::dump_config() {
|
||||||
case WAVESHARE_EPAPER_2_13_IN:
|
case WAVESHARE_EPAPER_2_13_IN:
|
||||||
ESP_LOGCONFIG(TAG, " Model: 2.13in");
|
ESP_LOGCONFIG(TAG, " Model: 2.13in");
|
||||||
break;
|
break;
|
||||||
|
case WAVESHARE_EPAPER_2_13_IN_V2:
|
||||||
|
ESP_LOGCONFIG(TAG, " Model: 2.13inV2");
|
||||||
|
break;
|
||||||
case TTGO_EPAPER_2_13_IN:
|
case TTGO_EPAPER_2_13_IN:
|
||||||
ESP_LOGCONFIG(TAG, " Model: 2.13in (TTGO)");
|
ESP_LOGCONFIG(TAG, " Model: 2.13in (TTGO)");
|
||||||
break;
|
break;
|
||||||
|
@ -366,6 +371,8 @@ void HOT WaveshareEPaperTypeA::display() {
|
||||||
if (full_update != prev_full_update) {
|
if (full_update != prev_full_update) {
|
||||||
switch (this->model_) {
|
switch (this->model_) {
|
||||||
case TTGO_EPAPER_2_13_IN:
|
case TTGO_EPAPER_2_13_IN:
|
||||||
|
case WAVESHARE_EPAPER_2_13_IN_V2:
|
||||||
|
// Waveshare 2.13" V2 uses the same LUTs as TTGO
|
||||||
this->write_lut_(full_update ? FULL_UPDATE_LUT_TTGO : PARTIAL_UPDATE_LUT_TTGO, LUT_SIZE_TTGO);
|
this->write_lut_(full_update ? FULL_UPDATE_LUT_TTGO : PARTIAL_UPDATE_LUT_TTGO, LUT_SIZE_TTGO);
|
||||||
break;
|
break;
|
||||||
case TTGO_EPAPER_2_13_IN_B73:
|
case TTGO_EPAPER_2_13_IN_B73:
|
||||||
|
@ -384,6 +391,41 @@ void HOT WaveshareEPaperTypeA::display() {
|
||||||
this->at_update_ = (this->at_update_ + 1) % this->full_update_every_;
|
this->at_update_ = (this->at_update_ + 1) % this->full_update_every_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->model_ == WAVESHARE_EPAPER_2_13_IN_V2) {
|
||||||
|
// Set VCOM for full or partial update
|
||||||
|
this->command(0x2C);
|
||||||
|
this->data(full_update ? 0x55 : 0x26);
|
||||||
|
|
||||||
|
if (!full_update) {
|
||||||
|
// Enable "ping-pong"
|
||||||
|
this->command(0x37);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(0x40);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(0x00);
|
||||||
|
this->command(0x22);
|
||||||
|
this->data(0xc0);
|
||||||
|
this->command(0x20);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Border waveform
|
||||||
|
switch (this->model_) {
|
||||||
|
case TTGO_EPAPER_2_13_IN_B74:
|
||||||
|
this->command(0x3C);
|
||||||
|
this->data(full_update ? 0x05 : 0x80);
|
||||||
|
break;
|
||||||
|
case WAVESHARE_EPAPER_2_13_IN_V2:
|
||||||
|
this->command(0x3C);
|
||||||
|
this->data(full_update ? 0x03 : 0x01);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// Set x & y regions we want to write to (full)
|
// Set x & y regions we want to write to (full)
|
||||||
switch (this->model_) {
|
switch (this->model_) {
|
||||||
case TTGO_EPAPER_2_13_IN_B1:
|
case TTGO_EPAPER_2_13_IN_B1:
|
||||||
|
@ -407,12 +449,6 @@ void HOT WaveshareEPaperTypeA::display() {
|
||||||
this->data((this->get_height_internal() - 1) >> 8);
|
this->data((this->get_height_internal() - 1) >> 8);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case TTGO_EPAPER_2_13_IN_B74:
|
|
||||||
// BorderWaveform
|
|
||||||
this->command(0x3C);
|
|
||||||
this->data(full_update ? 0x05 : 0x80);
|
|
||||||
|
|
||||||
// fall through
|
|
||||||
default:
|
default:
|
||||||
// COMMAND SET RAM X ADDRESS START END POSITION
|
// COMMAND SET RAM X ADDRESS START END POSITION
|
||||||
this->command(0x44);
|
this->command(0x44);
|
||||||
|
@ -458,6 +494,14 @@ void HOT WaveshareEPaperTypeA::display() {
|
||||||
}
|
}
|
||||||
this->end_data_();
|
this->end_data_();
|
||||||
|
|
||||||
|
if (this->model_ == WAVESHARE_EPAPER_2_13_IN_V2 && full_update) {
|
||||||
|
// Write base image again on full refresh
|
||||||
|
this->command(0x26);
|
||||||
|
this->start_data_();
|
||||||
|
this->write_array(this->buffer_, this->get_buffer_length_());
|
||||||
|
this->end_data_();
|
||||||
|
}
|
||||||
|
|
||||||
// COMMAND DISPLAY UPDATE CONTROL 2
|
// COMMAND DISPLAY UPDATE CONTROL 2
|
||||||
this->command(0x22);
|
this->command(0x22);
|
||||||
switch (this->model_) {
|
switch (this->model_) {
|
||||||
|
@ -469,6 +513,9 @@ void HOT WaveshareEPaperTypeA::display() {
|
||||||
case TTGO_EPAPER_2_13_IN_B73:
|
case TTGO_EPAPER_2_13_IN_B73:
|
||||||
this->data(0xC7);
|
this->data(0xC7);
|
||||||
break;
|
break;
|
||||||
|
case WAVESHARE_EPAPER_2_13_IN_V2:
|
||||||
|
this->data(full_update ? 0xC7 : 0x0C);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
this->data(0xC4);
|
this->data(0xC4);
|
||||||
break;
|
break;
|
||||||
|
@ -492,6 +539,7 @@ int WaveshareEPaperTypeA::get_width_internal() {
|
||||||
case WAVESHARE_EPAPER_1_54_IN_V2:
|
case WAVESHARE_EPAPER_1_54_IN_V2:
|
||||||
return 200;
|
return 200;
|
||||||
case WAVESHARE_EPAPER_2_13_IN:
|
case WAVESHARE_EPAPER_2_13_IN:
|
||||||
|
case WAVESHARE_EPAPER_2_13_IN_V2:
|
||||||
case TTGO_EPAPER_2_13_IN:
|
case TTGO_EPAPER_2_13_IN:
|
||||||
case TTGO_EPAPER_2_13_IN_B73:
|
case TTGO_EPAPER_2_13_IN_B73:
|
||||||
case TTGO_EPAPER_2_13_IN_B74:
|
case TTGO_EPAPER_2_13_IN_B74:
|
||||||
|
@ -507,6 +555,7 @@ int WaveshareEPaperTypeA::get_width_internal() {
|
||||||
int WaveshareEPaperTypeA::get_width_controller() {
|
int WaveshareEPaperTypeA::get_width_controller() {
|
||||||
switch (this->model_) {
|
switch (this->model_) {
|
||||||
case WAVESHARE_EPAPER_2_13_IN:
|
case WAVESHARE_EPAPER_2_13_IN:
|
||||||
|
case WAVESHARE_EPAPER_2_13_IN_V2:
|
||||||
case TTGO_EPAPER_2_13_IN:
|
case TTGO_EPAPER_2_13_IN:
|
||||||
case TTGO_EPAPER_2_13_IN_B73:
|
case TTGO_EPAPER_2_13_IN_B73:
|
||||||
case TTGO_EPAPER_2_13_IN_B74:
|
case TTGO_EPAPER_2_13_IN_B74:
|
||||||
|
@ -522,6 +571,7 @@ int WaveshareEPaperTypeA::get_height_internal() {
|
||||||
case WAVESHARE_EPAPER_1_54_IN_V2:
|
case WAVESHARE_EPAPER_1_54_IN_V2:
|
||||||
return 200;
|
return 200;
|
||||||
case WAVESHARE_EPAPER_2_13_IN:
|
case WAVESHARE_EPAPER_2_13_IN:
|
||||||
|
case WAVESHARE_EPAPER_2_13_IN_V2:
|
||||||
case TTGO_EPAPER_2_13_IN:
|
case TTGO_EPAPER_2_13_IN:
|
||||||
case TTGO_EPAPER_2_13_IN_B73:
|
case TTGO_EPAPER_2_13_IN_B73:
|
||||||
case TTGO_EPAPER_2_13_IN_B74:
|
case TTGO_EPAPER_2_13_IN_B74:
|
||||||
|
@ -548,6 +598,7 @@ uint32_t WaveshareEPaperTypeA::idle_timeout_() {
|
||||||
switch (this->model_) {
|
switch (this->model_) {
|
||||||
case WAVESHARE_EPAPER_1_54_IN:
|
case WAVESHARE_EPAPER_1_54_IN:
|
||||||
case WAVESHARE_EPAPER_1_54_IN_V2:
|
case WAVESHARE_EPAPER_1_54_IN_V2:
|
||||||
|
case WAVESHARE_EPAPER_2_13_IN_V2:
|
||||||
case TTGO_EPAPER_2_13_IN_B1:
|
case TTGO_EPAPER_2_13_IN_B1:
|
||||||
return 2500;
|
return 2500;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -90,6 +90,7 @@ enum WaveshareEPaperTypeAModel {
|
||||||
WAVESHARE_EPAPER_1_54_IN = 0,
|
WAVESHARE_EPAPER_1_54_IN = 0,
|
||||||
WAVESHARE_EPAPER_1_54_IN_V2,
|
WAVESHARE_EPAPER_1_54_IN_V2,
|
||||||
WAVESHARE_EPAPER_2_13_IN,
|
WAVESHARE_EPAPER_2_13_IN,
|
||||||
|
WAVESHARE_EPAPER_2_13_IN_V2,
|
||||||
WAVESHARE_EPAPER_2_9_IN,
|
WAVESHARE_EPAPER_2_9_IN,
|
||||||
WAVESHARE_EPAPER_2_9_IN_V2,
|
WAVESHARE_EPAPER_2_9_IN_V2,
|
||||||
TTGO_EPAPER_2_13_IN,
|
TTGO_EPAPER_2_13_IN,
|
||||||
|
@ -114,6 +115,7 @@ class WaveshareEPaperTypeA : public WaveshareEPaper {
|
||||||
case WAVESHARE_EPAPER_1_54_IN:
|
case WAVESHARE_EPAPER_1_54_IN:
|
||||||
case WAVESHARE_EPAPER_1_54_IN_V2:
|
case WAVESHARE_EPAPER_1_54_IN_V2:
|
||||||
case WAVESHARE_EPAPER_2_9_IN_V2:
|
case WAVESHARE_EPAPER_2_9_IN_V2:
|
||||||
|
case WAVESHARE_EPAPER_2_13_IN_V2:
|
||||||
// COMMAND DEEP SLEEP MODE
|
// COMMAND DEEP SLEEP MODE
|
||||||
this->command(0x10);
|
this->command(0x10);
|
||||||
this->data(0x01);
|
this->data(0x01);
|
||||||
|
@ -124,7 +126,11 @@ class WaveshareEPaperTypeA : public WaveshareEPaper {
|
||||||
this->command(0x10);
|
this->command(0x10);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this->wait_until_idle_();
|
if (this->model_ != WAVESHARE_EPAPER_2_13_IN_V2) {
|
||||||
|
// From panel specification:
|
||||||
|
// "After this command initiated, the chip will enter Deep Sleep Mode, BUSY pad will keep output high."
|
||||||
|
this->wait_until_idle_();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_full_update_every(uint32_t full_update_every);
|
void set_full_update_every(uint32_t full_update_every);
|
||||||
|
|
154
tests/components/waveshare_epaper/test.esp32.yaml
Normal file
154
tests/components/waveshare_epaper/test.esp32.yaml
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
---
|
||||||
|
spi:
|
||||||
|
- id: spi_id_1
|
||||||
|
clk_pin:
|
||||||
|
number: GPIO18
|
||||||
|
mosi_pin:
|
||||||
|
number: GPIO23
|
||||||
|
miso_pin:
|
||||||
|
number: GPIO19
|
||||||
|
interface: hardware
|
||||||
|
|
||||||
|
display:
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
model: 2.13in-ttgo-b1
|
||||||
|
spi_id: spi_id_1
|
||||||
|
cs_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO25
|
||||||
|
dc_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO26
|
||||||
|
busy_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO27
|
||||||
|
reset_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO32
|
||||||
|
full_update_every: 30
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
model: 2.90in
|
||||||
|
spi_id: spi_id_1
|
||||||
|
cs_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO25
|
||||||
|
dc_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO26
|
||||||
|
busy_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO27
|
||||||
|
reset_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO32
|
||||||
|
full_update_every: 30
|
||||||
|
reset_duration: 200ms
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
model: 2.90inv2
|
||||||
|
spi_id: spi_id_1
|
||||||
|
cs_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO25
|
||||||
|
dc_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO26
|
||||||
|
busy_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO27
|
||||||
|
reset_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO32
|
||||||
|
full_update_every: 30
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
model: 2.70in-b
|
||||||
|
spi_id: spi_id_1
|
||||||
|
cs_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO25
|
||||||
|
dc_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO26
|
||||||
|
busy_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO27
|
||||||
|
reset_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO32
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
model: 2.70in-bv2
|
||||||
|
spi_id: spi_id_1
|
||||||
|
cs_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO25
|
||||||
|
dc_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO26
|
||||||
|
busy_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO27
|
||||||
|
reset_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO32
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
model: 1.54in-m5coreink-m09
|
||||||
|
spi_id: spi_id_1
|
||||||
|
cs_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO25
|
||||||
|
dc_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO26
|
||||||
|
busy_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO27
|
||||||
|
reset_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO32
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
model: 2.13inv3
|
||||||
|
spi_id: spi_id_1
|
||||||
|
cs_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO25
|
||||||
|
dc_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO26
|
||||||
|
busy_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO27
|
||||||
|
reset_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO32
|
||||||
|
full_update_every: 30
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
model: 2.13inv2
|
||||||
|
spi_id: spi_id_1
|
||||||
|
cs_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO25
|
||||||
|
dc_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO26
|
||||||
|
busy_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO27
|
||||||
|
reset_pin:
|
||||||
|
allow_other_uses: true
|
||||||
|
number: GPIO32
|
||||||
|
full_update_every: 30
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
124
tests/test4.yaml
124
tests/test4.yaml
|
@ -612,112 +612,6 @@ display:
|
||||||
rotation: 0°
|
rotation: 0°
|
||||||
update_interval: 16ms
|
update_interval: 16ms
|
||||||
|
|
||||||
- platform: waveshare_epaper
|
|
||||||
spi_id: spi_id_1
|
|
||||||
cs_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
dc_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
busy_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
reset_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
model: 2.13in-ttgo-b1
|
|
||||||
full_update_every: 30
|
|
||||||
lambda: |-
|
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
||||||
- platform: waveshare_epaper
|
|
||||||
spi_id: spi_id_1
|
|
||||||
cs_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
dc_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
busy_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
reset_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
model: 2.90in
|
|
||||||
full_update_every: 30
|
|
||||||
reset_duration: 200ms
|
|
||||||
lambda: |-
|
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
||||||
- platform: waveshare_epaper
|
|
||||||
spi_id: spi_id_1
|
|
||||||
cs_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
dc_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
busy_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
reset_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
model: 2.90inv2
|
|
||||||
full_update_every: 30
|
|
||||||
lambda: |-
|
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
||||||
- platform: waveshare_epaper
|
|
||||||
spi_id: spi_id_1
|
|
||||||
cs_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
dc_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
busy_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
reset_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
model: 2.70in-b
|
|
||||||
lambda: |-
|
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
||||||
- platform: waveshare_epaper
|
|
||||||
spi_id: spi_id_1
|
|
||||||
cs_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
dc_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
busy_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
reset_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
model: 2.70in-bv2
|
|
||||||
lambda: |-
|
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
||||||
- platform: waveshare_epaper
|
|
||||||
spi_id: spi_id_1
|
|
||||||
cs_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
dc_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
busy_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
reset_pin:
|
|
||||||
allow_other_uses: true
|
|
||||||
number: GPIO23
|
|
||||||
model: 1.54in-m5coreink-m09
|
|
||||||
lambda: |-
|
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
||||||
- platform: inkplate6
|
- platform: inkplate6
|
||||||
id: inkplate_display
|
id: inkplate_display
|
||||||
greyscale: false
|
greyscale: false
|
||||||
|
@ -771,24 +665,6 @@ display:
|
||||||
vcom_pin:
|
vcom_pin:
|
||||||
number: GPIO1
|
number: GPIO1
|
||||||
allow_other_uses: true
|
allow_other_uses: true
|
||||||
- platform: waveshare_epaper
|
|
||||||
spi_id: spi_id_1
|
|
||||||
cs_pin:
|
|
||||||
number: GPIO23
|
|
||||||
allow_other_uses: true
|
|
||||||
dc_pin:
|
|
||||||
number: GPIO23
|
|
||||||
allow_other_uses: true
|
|
||||||
busy_pin:
|
|
||||||
number: GPIO23
|
|
||||||
allow_other_uses: true
|
|
||||||
reset_pin:
|
|
||||||
number: GPIO23
|
|
||||||
allow_other_uses: true
|
|
||||||
model: 2.13inv3
|
|
||||||
full_update_every: 30
|
|
||||||
lambda: |-
|
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
||||||
|
|
||||||
number:
|
number:
|
||||||
- platform: tuya
|
- platform: tuya
|
||||||
|
|
Loading…
Reference in a new issue