Add support for waveshare_epaper 1.54v2 (#1843)

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
Geoff Davis 2021-06-09 19:05:27 -07:00 committed by GitHub
parent 99d90845b5
commit d23376b81e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 3 deletions

View file

@ -46,6 +46,7 @@ WaveshareEPaperTypeBModel = waveshare_epaper_ns.enum("WaveshareEPaperTypeBModel"
MODELS = { 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),
"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-b1": ("a", WaveshareEPaperTypeAModel.TTGO_EPAPER_2_13_IN_B1),
@ -67,7 +68,7 @@ def validate_full_update_every_only_type_a(value):
if MODELS[value[CONF_MODEL]][0] != "a": if MODELS[value[CONF_MODEL]][0] != "a":
raise cv.Invalid( raise cv.Invalid(
"The 'full_update_every' option is only available for models " "The 'full_update_every' option is only available for models "
"'1.54in', '2.13in', '2.90in', and '2.90inV2'." "'1.54in', '1.54inV2', '2.13in', '2.90in', and '2.90inV2'."
) )
return value return value

View file

@ -210,6 +210,9 @@ void WaveshareEPaperTypeA::dump_config() {
case WAVESHARE_EPAPER_1_54_IN: case WAVESHARE_EPAPER_1_54_IN:
ESP_LOGCONFIG(TAG, " Model: 1.54in"); ESP_LOGCONFIG(TAG, " Model: 1.54in");
break; break;
case WAVESHARE_EPAPER_1_54_IN_V2:
ESP_LOGCONFIG(TAG, " Model: 1.54inV2");
break;
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;
@ -334,7 +337,7 @@ void HOT WaveshareEPaperTypeA::display() {
// COMMAND DISPLAY UPDATE CONTROL 2 // COMMAND DISPLAY UPDATE CONTROL 2
this->command(0x22); this->command(0x22);
if (this->model_ == WAVESHARE_EPAPER_2_9_IN_V2) { if (this->model_ == WAVESHARE_EPAPER_2_9_IN_V2 || this->model_ == WAVESHARE_EPAPER_1_54_IN_V2) {
this->data(full_update ? 0xF7 : 0xFF); this->data(full_update ? 0xF7 : 0xFF);
} else if (this->model_ == TTGO_EPAPER_2_13_IN_B73) { } else if (this->model_ == TTGO_EPAPER_2_13_IN_B73) {
this->data(0xC7); this->data(0xC7);
@ -353,6 +356,8 @@ int WaveshareEPaperTypeA::get_width_internal() {
switch (this->model_) { switch (this->model_) {
case WAVESHARE_EPAPER_1_54_IN: case WAVESHARE_EPAPER_1_54_IN:
return 200; return 200;
case WAVESHARE_EPAPER_1_54_IN_V2:
return 200;
case WAVESHARE_EPAPER_2_13_IN: case WAVESHARE_EPAPER_2_13_IN:
return 128; return 128;
case TTGO_EPAPER_2_13_IN: case TTGO_EPAPER_2_13_IN:
@ -372,6 +377,8 @@ int WaveshareEPaperTypeA::get_height_internal() {
switch (this->model_) { switch (this->model_) {
case WAVESHARE_EPAPER_1_54_IN: case WAVESHARE_EPAPER_1_54_IN:
return 200; return 200;
case WAVESHARE_EPAPER_1_54_IN_V2:
return 200;
case WAVESHARE_EPAPER_2_13_IN: case WAVESHARE_EPAPER_2_13_IN:
return 250; return 250;
case TTGO_EPAPER_2_13_IN: case TTGO_EPAPER_2_13_IN:

View file

@ -66,6 +66,7 @@ class WaveshareEPaper : public PollingComponent,
enum WaveshareEPaperTypeAModel { enum WaveshareEPaperTypeAModel {
WAVESHARE_EPAPER_1_54_IN = 0, WAVESHARE_EPAPER_1_54_IN = 0,
WAVESHARE_EPAPER_1_54_IN_V2,
WAVESHARE_EPAPER_2_13_IN, WAVESHARE_EPAPER_2_13_IN,
WAVESHARE_EPAPER_2_9_IN, WAVESHARE_EPAPER_2_9_IN,
WAVESHARE_EPAPER_2_9_IN_V2, WAVESHARE_EPAPER_2_9_IN_V2,
@ -85,7 +86,7 @@ class WaveshareEPaperTypeA : public WaveshareEPaper {
void display() override; void display() override;
void deep_sleep() override { void deep_sleep() override {
if (this->model_ == WAVESHARE_EPAPER_2_9_IN_V2) { if (this->model_ == WAVESHARE_EPAPER_2_9_IN_V2 || this->model_ == WAVESHARE_EPAPER_1_54_IN_V2) {
// COMMAND DEEP SLEEP MODE // COMMAND DEEP SLEEP MODE
this->command(0x10); this->command(0x10);
this->data(0x01); this->data(0x01);