mirror of
https://github.com/esphome/esphome.git
synced 2024-11-26 12:27:13 +01:00
Add 2.13in-ttgo-b1 waveshare epaper module. (#1326)
This commit is contained in:
parent
818a7f1c78
commit
91898cb814
@ -48,6 +48,7 @@ MODELS = {
|
|||||||
"1.54in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_1_54_IN),
|
"1.54in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_1_54_IN),
|
||||||
"2.13in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_2_13_IN),
|
"2.13in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_2_13_IN),
|
||||||
"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-b73": ("a", WaveshareEPaperTypeAModel.TTGO_EPAPER_2_13_IN_B73),
|
"2.13in-ttgo-b73": ("a", WaveshareEPaperTypeAModel.TTGO_EPAPER_2_13_IN_B73),
|
||||||
"2.90in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_2_9_IN),
|
"2.90in": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_2_9_IN),
|
||||||
"2.90inv2": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_2_9_IN_V2),
|
"2.90inv2": ("a", WaveshareEPaperTypeAModel.WAVESHARE_EPAPER_2_9_IN_V2),
|
||||||
|
@ -9,6 +9,7 @@ namespace waveshare_epaper {
|
|||||||
static const char *TAG = "waveshare_epaper";
|
static const char *TAG = "waveshare_epaper";
|
||||||
|
|
||||||
static const uint8_t LUT_SIZE_WAVESHARE = 30;
|
static const uint8_t LUT_SIZE_WAVESHARE = 30;
|
||||||
|
|
||||||
static const uint8_t FULL_UPDATE_LUT[LUT_SIZE_WAVESHARE] = {0x02, 0x02, 0x01, 0x11, 0x12, 0x12, 0x22, 0x22, 0x66, 0x69,
|
static const uint8_t FULL_UPDATE_LUT[LUT_SIZE_WAVESHARE] = {0x02, 0x02, 0x01, 0x11, 0x12, 0x12, 0x22, 0x22, 0x66, 0x69,
|
||||||
0x69, 0x59, 0x58, 0x99, 0x99, 0x88, 0x00, 0x00, 0x00, 0x00,
|
0x69, 0x59, 0x58, 0x99, 0x99, 0x88, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xF8, 0xB4, 0x13, 0x51, 0x35, 0x51, 0x51, 0x19, 0x01, 0x00};
|
0xF8, 0xB4, 0x13, 0x51, 0x35, 0x51, 0x51, 0x19, 0x01, 0x00};
|
||||||
@ -18,7 +19,6 @@ static const uint8_t PARTIAL_UPDATE_LUT[LUT_SIZE_WAVESHARE] = {
|
|||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x14, 0x44, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x14, 0x44, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
|
||||||
static const uint8_t LUT_SIZE_TTGO = 70;
|
static const uint8_t LUT_SIZE_TTGO = 70;
|
||||||
static const uint8_t LUT_SIZE_TTGO_B73 = 100;
|
|
||||||
|
|
||||||
static const uint8_t FULL_UPDATE_LUT_TTGO[LUT_SIZE_TTGO] = {
|
static const uint8_t FULL_UPDATE_LUT_TTGO[LUT_SIZE_TTGO] = {
|
||||||
0x80, 0x60, 0x40, 0x00, 0x00, 0x00, 0x00, // LUT0: BB: VS 0 ~7
|
0x80, 0x60, 0x40, 0x00, 0x00, 0x00, 0x00, // LUT0: BB: VS 0 ~7
|
||||||
@ -35,6 +35,23 @@ static const uint8_t FULL_UPDATE_LUT_TTGO[LUT_SIZE_TTGO] = {
|
|||||||
0x00, 0x00, 0x00, 0x00, 0x00, // TP6 A~D RP6
|
0x00, 0x00, 0x00, 0x00, 0x00, // TP6 A~D RP6
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const uint8_t PARTIAL_UPDATE_LUT_TTGO[LUT_SIZE_TTGO] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT0: BB: VS 0 ~7
|
||||||
|
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT1: BW: VS 0 ~7
|
||||||
|
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT2: WB: VS 0 ~7
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT3: WW: VS 0 ~7
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT4: VCOM: VS 0 ~7
|
||||||
|
0x0A, 0x00, 0x00, 0x00, 0x00, // TP0 A~D RP0
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, // TP1 A~D RP1
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, // TP2 A~D RP2
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, // TP3 A~D RP3
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, // TP4 A~D RP4
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, // TP5 A~D RP5
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, // TP6 A~D RP6
|
||||||
|
};
|
||||||
|
|
||||||
|
static const uint8_t LUT_SIZE_TTGO_B73 = 100;
|
||||||
|
|
||||||
static const uint8_t FULL_UPDATE_LUT_TTGO_B73[LUT_SIZE_TTGO_B73] = {
|
static const uint8_t FULL_UPDATE_LUT_TTGO_B73[LUT_SIZE_TTGO_B73] = {
|
||||||
0xA0, 0x90, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x90, 0xA0, 0x00, 0x00, 0x00, 0x00,
|
0xA0, 0x90, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x90, 0xA0, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0xA0, 0x90, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x90, 0xA0, 0x00,
|
0x00, 0x00, 0x00, 0xA0, 0x90, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x90, 0xA0, 0x00,
|
||||||
@ -55,20 +72,15 @@ static const uint8_t PARTIAL_UPDATE_LUT_TTGO_B73[LUT_SIZE_TTGO_B73] = {
|
|||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint8_t PARTIAL_UPDATE_LUT_TTGO[LUT_SIZE_TTGO] = {
|
static const uint8_t LUT_SIZE_TTGO_B1 = 29;
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT0: BB: VS 0 ~7
|
|
||||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT1: BW: VS 0 ~7
|
static const uint8_t FULL_UPDATE_LUT_TTGO_B1[LUT_SIZE_TTGO_B1] = {
|
||||||
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT2: WB: VS 0 ~7
|
0x22, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT3: WW: VS 0 ~7
|
0x00, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x01, 0x00, 0x00, 0x00, 0x00};
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // LUT4: VCOM: VS 0 ~7
|
|
||||||
0x0A, 0x00, 0x00, 0x00, 0x00, // TP0 A~D RP0
|
static const uint8_t PARTIAL_UPDATE_LUT_TTGO_B1[LUT_SIZE_TTGO_B1] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, // TP1 A~D RP1
|
0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, // TP2 A~D RP2
|
0x00, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, // TP3 A~D RP3
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, // TP4 A~D RP4
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, // TP5 A~D RP5
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, // TP6 A~D RP6
|
|
||||||
};
|
|
||||||
|
|
||||||
void WaveshareEPaper::setup_pins_() {
|
void WaveshareEPaper::setup_pins_() {
|
||||||
this->init_internal_(this->get_buffer_length_());
|
this->init_internal_(this->get_buffer_length_());
|
||||||
@ -103,7 +115,7 @@ bool WaveshareEPaper::wait_until_idle_() {
|
|||||||
|
|
||||||
const uint32_t start = millis();
|
const uint32_t start = millis();
|
||||||
while (this->busy_pin_->digital_read()) {
|
while (this->busy_pin_->digital_read()) {
|
||||||
if (millis() - start > 1000) {
|
if (millis() - start > this->idle_timeout_()) {
|
||||||
ESP_LOGE(TAG, "Timeout while displaying image!");
|
ESP_LOGE(TAG, "Timeout while displaying image!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -177,13 +189,19 @@ void WaveshareEPaperTypeA::initialize() {
|
|||||||
|
|
||||||
// COMMAND DATA ENTRY MODE SETTING
|
// COMMAND DATA ENTRY MODE SETTING
|
||||||
this->command(0x11);
|
this->command(0x11);
|
||||||
this->data(0x03); // from top left to bottom right
|
switch (this->model_) {
|
||||||
|
case TTGO_EPAPER_2_13_IN_B1:
|
||||||
if (this->model_ == WAVESHARE_EPAPER_2_9_IN_V2) {
|
this->data(0x01); // x increase, y decrease : as in demo code
|
||||||
// RAM content option for Display Update
|
break;
|
||||||
this->command(0x21);
|
case WAVESHARE_EPAPER_2_9_IN_V2:
|
||||||
this->data(0x00);
|
this->data(0x03); // from top left to bottom right
|
||||||
this->data(0x80);
|
// RAM content option for Display Update
|
||||||
|
this->command(0x21);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(0x80);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
this->data(0x03); // from top left to bottom right
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void WaveshareEPaperTypeA::dump_config() {
|
void WaveshareEPaperTypeA::dump_config() {
|
||||||
@ -201,6 +219,9 @@ void WaveshareEPaperTypeA::dump_config() {
|
|||||||
case TTGO_EPAPER_2_13_IN_B73:
|
case TTGO_EPAPER_2_13_IN_B73:
|
||||||
ESP_LOGCONFIG(TAG, " Model: 2.13in (TTGO B73)");
|
ESP_LOGCONFIG(TAG, " Model: 2.13in (TTGO B73)");
|
||||||
break;
|
break;
|
||||||
|
case TTGO_EPAPER_2_13_IN_B1:
|
||||||
|
ESP_LOGCONFIG(TAG, " Model: 2.13in (TTGO B1)");
|
||||||
|
break;
|
||||||
case WAVESHARE_EPAPER_2_9_IN:
|
case WAVESHARE_EPAPER_2_9_IN:
|
||||||
ESP_LOGCONFIG(TAG, " Model: 2.9in");
|
ESP_LOGCONFIG(TAG, " Model: 2.9in");
|
||||||
break;
|
break;
|
||||||
@ -225,36 +246,67 @@ void HOT WaveshareEPaperTypeA::display() {
|
|||||||
|
|
||||||
if (this->full_update_every_ >= 1) {
|
if (this->full_update_every_ >= 1) {
|
||||||
if (full_update != prev_full_update) {
|
if (full_update != prev_full_update) {
|
||||||
if (this->model_ == TTGO_EPAPER_2_13_IN) {
|
switch (this->model_) {
|
||||||
this->write_lut_(full_update ? FULL_UPDATE_LUT_TTGO : PARTIAL_UPDATE_LUT_TTGO, LUT_SIZE_TTGO);
|
case TTGO_EPAPER_2_13_IN:
|
||||||
} else if (this->model_ == TTGO_EPAPER_2_13_IN_B73) {
|
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_B73 : PARTIAL_UPDATE_LUT_TTGO_B73, LUT_SIZE_TTGO_B73);
|
break;
|
||||||
} else {
|
case TTGO_EPAPER_2_13_IN_B73:
|
||||||
this->write_lut_(full_update ? FULL_UPDATE_LUT : PARTIAL_UPDATE_LUT, LUT_SIZE_WAVESHARE);
|
this->write_lut_(full_update ? FULL_UPDATE_LUT_TTGO_B73 : PARTIAL_UPDATE_LUT_TTGO_B73, LUT_SIZE_TTGO_B73);
|
||||||
|
break;
|
||||||
|
case TTGO_EPAPER_2_13_IN_B1:
|
||||||
|
this->write_lut_(full_update ? FULL_UPDATE_LUT_TTGO_B1 : PARTIAL_UPDATE_LUT_TTGO_B1, LUT_SIZE_TTGO_B1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
this->write_lut_(full_update ? FULL_UPDATE_LUT : PARTIAL_UPDATE_LUT, LUT_SIZE_WAVESHARE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->at_update_ = (this->at_update_ + 1) % this->full_update_every_;
|
this->at_update_ = (this->at_update_ + 1) % this->full_update_every_;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set x & y regions we want to write to (full)
|
// Set x & y regions we want to write to (full)
|
||||||
// COMMAND SET RAM X ADDRESS START END POSITION
|
switch (this->model_) {
|
||||||
this->command(0x44);
|
case TTGO_EPAPER_2_13_IN_B1:
|
||||||
this->data(0x00);
|
// COMMAND SET RAM X ADDRESS START END POSITION
|
||||||
this->data((this->get_width_internal() - 1) >> 3);
|
this->command(0x44);
|
||||||
// COMMAND SET RAM Y ADDRESS START END POSITION
|
this->data(0x00);
|
||||||
this->command(0x45);
|
this->data((this->get_width_internal() - 1) >> 3);
|
||||||
this->data(0x00);
|
// COMMAND SET RAM Y ADDRESS START END POSITION
|
||||||
this->data(0x00);
|
this->command(0x45);
|
||||||
this->data(this->get_height_internal() - 1);
|
this->data(this->get_height_internal() - 1);
|
||||||
this->data((this->get_height_internal() - 1) >> 8);
|
this->data((this->get_height_internal() - 1) >> 8);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(0x00);
|
||||||
|
|
||||||
// COMMAND SET RAM X ADDRESS COUNTER
|
// COMMAND SET RAM X ADDRESS COUNTER
|
||||||
this->command(0x4E);
|
this->command(0x4E);
|
||||||
this->data(0x00);
|
this->data(0x00);
|
||||||
// COMMAND SET RAM Y ADDRESS COUNTER
|
// COMMAND SET RAM Y ADDRESS COUNTER
|
||||||
this->command(0x4F);
|
this->command(0x4F);
|
||||||
this->data(0x00);
|
this->data(this->get_height_internal() - 1);
|
||||||
this->data(0x00);
|
this->data((this->get_height_internal() - 1) >> 8);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// COMMAND SET RAM X ADDRESS START END POSITION
|
||||||
|
this->command(0x44);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data((this->get_width_internal() - 1) >> 3);
|
||||||
|
// COMMAND SET RAM Y ADDRESS START END POSITION
|
||||||
|
this->command(0x45);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(this->get_height_internal() - 1);
|
||||||
|
this->data((this->get_height_internal() - 1) >> 8);
|
||||||
|
|
||||||
|
// COMMAND SET RAM X ADDRESS COUNTER
|
||||||
|
this->command(0x4E);
|
||||||
|
this->data(0x00);
|
||||||
|
// COMMAND SET RAM Y ADDRESS COUNTER
|
||||||
|
this->command(0x4F);
|
||||||
|
this->data(0x00);
|
||||||
|
this->data(0x00);
|
||||||
|
}
|
||||||
|
|
||||||
if (!this->wait_until_idle_()) {
|
if (!this->wait_until_idle_()) {
|
||||||
this->status_set_warning();
|
this->status_set_warning();
|
||||||
@ -264,7 +316,20 @@ void HOT WaveshareEPaperTypeA::display() {
|
|||||||
// COMMAND WRITE RAM
|
// COMMAND WRITE RAM
|
||||||
this->command(0x24);
|
this->command(0x24);
|
||||||
this->start_data_();
|
this->start_data_();
|
||||||
this->write_array(this->buffer_, this->get_buffer_length_());
|
switch (this->model_) {
|
||||||
|
case TTGO_EPAPER_2_13_IN_B1: { // block needed because of variable initializations
|
||||||
|
int16_t wb = ((this->get_width_internal()) >> 3);
|
||||||
|
for (int i = 0; i < this->get_height_internal(); i++) {
|
||||||
|
for (int j = 0; j < wb; j++) {
|
||||||
|
int idx = j + (this->get_height_internal() - 1 - i) * wb;
|
||||||
|
this->write_byte(this->buffer_[idx]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
this->write_array(this->buffer_, this->get_buffer_length_());
|
||||||
|
}
|
||||||
this->end_data_();
|
this->end_data_();
|
||||||
|
|
||||||
// COMMAND DISPLAY UPDATE CONTROL 2
|
// COMMAND DISPLAY UPDATE CONTROL 2
|
||||||
@ -294,6 +359,8 @@ int WaveshareEPaperTypeA::get_width_internal() {
|
|||||||
return 128;
|
return 128;
|
||||||
case TTGO_EPAPER_2_13_IN_B73:
|
case TTGO_EPAPER_2_13_IN_B73:
|
||||||
return 128;
|
return 128;
|
||||||
|
case TTGO_EPAPER_2_13_IN_B1:
|
||||||
|
return 128;
|
||||||
case WAVESHARE_EPAPER_2_9_IN:
|
case WAVESHARE_EPAPER_2_9_IN:
|
||||||
return 128;
|
return 128;
|
||||||
case WAVESHARE_EPAPER_2_9_IN_V2:
|
case WAVESHARE_EPAPER_2_9_IN_V2:
|
||||||
@ -311,6 +378,8 @@ int WaveshareEPaperTypeA::get_height_internal() {
|
|||||||
return 250;
|
return 250;
|
||||||
case TTGO_EPAPER_2_13_IN_B73:
|
case TTGO_EPAPER_2_13_IN_B73:
|
||||||
return 250;
|
return 250;
|
||||||
|
case TTGO_EPAPER_2_13_IN_B1:
|
||||||
|
return 250;
|
||||||
case WAVESHARE_EPAPER_2_9_IN:
|
case WAVESHARE_EPAPER_2_9_IN:
|
||||||
return 296;
|
return 296;
|
||||||
case WAVESHARE_EPAPER_2_9_IN_V2:
|
case WAVESHARE_EPAPER_2_9_IN_V2:
|
||||||
@ -329,6 +398,16 @@ void WaveshareEPaperTypeA::set_full_update_every(uint32_t full_update_every) {
|
|||||||
this->full_update_every_ = full_update_every;
|
this->full_update_every_ = full_update_every;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int WaveshareEPaperTypeA::idle_timeout_() {
|
||||||
|
switch (this->model_) {
|
||||||
|
case TTGO_EPAPER_2_13_IN_B1:
|
||||||
|
return 2500;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return WaveshareEPaper::idle_timeout_();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
// Type B
|
// Type B
|
||||||
// ========================================================
|
// ========================================================
|
||||||
|
@ -61,6 +61,7 @@ class WaveshareEPaper : public PollingComponent,
|
|||||||
GPIOPin *reset_pin_{nullptr};
|
GPIOPin *reset_pin_{nullptr};
|
||||||
GPIOPin *dc_pin_;
|
GPIOPin *dc_pin_;
|
||||||
GPIOPin *busy_pin_{nullptr};
|
GPIOPin *busy_pin_{nullptr};
|
||||||
|
virtual int idle_timeout_() { return 1000; } // NOLINT(readability-identifier-naming)
|
||||||
};
|
};
|
||||||
|
|
||||||
enum WaveshareEPaperTypeAModel {
|
enum WaveshareEPaperTypeAModel {
|
||||||
@ -70,6 +71,7 @@ enum WaveshareEPaperTypeAModel {
|
|||||||
WAVESHARE_EPAPER_2_9_IN_V2,
|
WAVESHARE_EPAPER_2_9_IN_V2,
|
||||||
TTGO_EPAPER_2_13_IN,
|
TTGO_EPAPER_2_13_IN,
|
||||||
TTGO_EPAPER_2_13_IN_B73,
|
TTGO_EPAPER_2_13_IN_B73,
|
||||||
|
TTGO_EPAPER_2_13_IN_B1,
|
||||||
};
|
};
|
||||||
|
|
||||||
class WaveshareEPaperTypeA : public WaveshareEPaper {
|
class WaveshareEPaperTypeA : public WaveshareEPaper {
|
||||||
@ -106,6 +108,7 @@ class WaveshareEPaperTypeA : public WaveshareEPaper {
|
|||||||
uint32_t full_update_every_{30};
|
uint32_t full_update_every_{30};
|
||||||
uint32_t at_update_{0};
|
uint32_t at_update_{0};
|
||||||
WaveshareEPaperTypeAModel model_;
|
WaveshareEPaperTypeAModel model_;
|
||||||
|
int idle_timeout_() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum WaveshareEPaperTypeBModel {
|
enum WaveshareEPaperTypeBModel {
|
||||||
|
@ -1887,24 +1887,6 @@ display:
|
|||||||
reset_pin: GPIO23
|
reset_pin: GPIO23
|
||||||
lambda: |-
|
lambda: |-
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
- platform: waveshare_epaper
|
|
||||||
cs_pin: GPIO23
|
|
||||||
dc_pin: GPIO23
|
|
||||||
busy_pin: GPIO23
|
|
||||||
reset_pin: GPIO23
|
|
||||||
model: 2.90in
|
|
||||||
full_update_every: 30
|
|
||||||
lambda: |-
|
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
||||||
- platform: waveshare_epaper
|
|
||||||
cs_pin: GPIO23
|
|
||||||
dc_pin: GPIO23
|
|
||||||
busy_pin: GPIO23
|
|
||||||
reset_pin: GPIO23
|
|
||||||
model: 2.90inv2
|
|
||||||
full_update_every: 30
|
|
||||||
lambda: |-
|
|
||||||
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
||||||
- platform: st7789v
|
- platform: st7789v
|
||||||
cs_pin: GPIO5
|
cs_pin: GPIO5
|
||||||
dc_pin: GPIO16
|
dc_pin: GPIO16
|
||||||
|
@ -132,3 +132,31 @@ display:
|
|||||||
it.rectangle(3, 3, it.get_width()-6, it.get_height()-6, red);
|
it.rectangle(3, 3, it.get_width()-6, it.get_height()-6, red);
|
||||||
rotation: 0°
|
rotation: 0°
|
||||||
update_interval: 16ms
|
update_interval: 16ms
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
cs_pin: GPIO23
|
||||||
|
dc_pin: GPIO23
|
||||||
|
busy_pin: GPIO23
|
||||||
|
reset_pin: GPIO23
|
||||||
|
model: 2.13in-ttgo-b1
|
||||||
|
full_update_every: 30
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
cs_pin: GPIO23
|
||||||
|
dc_pin: GPIO23
|
||||||
|
busy_pin: GPIO23
|
||||||
|
reset_pin: GPIO23
|
||||||
|
model: 2.90in
|
||||||
|
full_update_every: 30
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
- platform: waveshare_epaper
|
||||||
|
cs_pin: GPIO23
|
||||||
|
dc_pin: GPIO23
|
||||||
|
busy_pin: GPIO23
|
||||||
|
reset_pin: GPIO23
|
||||||
|
model: 2.90inv2
|
||||||
|
full_update_every: 30
|
||||||
|
lambda: |-
|
||||||
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user