mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Support inkplate 5 and 5 V2 (#7448)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
		| @@ -53,6 +53,8 @@ MODELS = { | |||||||
|     "inkplate_10": InkplateModel.INKPLATE_10, |     "inkplate_10": InkplateModel.INKPLATE_10, | ||||||
|     "inkplate_6_plus": InkplateModel.INKPLATE_6_PLUS, |     "inkplate_6_plus": InkplateModel.INKPLATE_6_PLUS, | ||||||
|     "inkplate_6_v2": InkplateModel.INKPLATE_6_V2, |     "inkplate_6_v2": InkplateModel.INKPLATE_6_V2, | ||||||
|  |     "inkplate_5": InkplateModel.INKPLATE_5, | ||||||
|  |     "inkplate_5_v2": InkplateModel.INKPLATE_5_V2, | ||||||
| } | } | ||||||
|  |  | ||||||
| CONFIG_SCHEMA = cv.All( | CONFIG_SCHEMA = cv.All( | ||||||
|   | |||||||
| @@ -15,6 +15,8 @@ enum InkplateModel : uint8_t { | |||||||
|   INKPLATE_10 = 1, |   INKPLATE_10 = 1, | ||||||
|   INKPLATE_6_PLUS = 2, |   INKPLATE_6_PLUS = 2, | ||||||
|   INKPLATE_6_V2 = 3, |   INKPLATE_6_V2 = 3, | ||||||
|  |   INKPLATE_5 = 4, | ||||||
|  |   INKPLATE_5_V2 = 5, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| class Inkplate6 : public display::DisplayBuffer, public i2c::I2CDevice { | class Inkplate6 : public display::DisplayBuffer, public i2c::I2CDevice { | ||||||
| @@ -29,7 +31,7 @@ class Inkplate6 : public display::DisplayBuffer, public i2c::I2CDevice { | |||||||
|   const uint8_t pixelMaskLUT[8] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80}; |   const uint8_t pixelMaskLUT[8] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80}; | ||||||
|   const uint8_t pixelMaskGLUT[2] = {0x0F, 0xF0}; |   const uint8_t pixelMaskGLUT[2] = {0x0F, 0xF0}; | ||||||
|  |  | ||||||
|   const uint8_t waveform3BitAll[4][8][9] = {// INKPLATE_6 |   const uint8_t waveform3BitAll[6][8][9] = {// INKPLATE_6 | ||||||
|                                             {{0, 1, 1, 0, 0, 1, 1, 0, 0}, |                                             {{0, 1, 1, 0, 0, 1, 1, 0, 0}, | ||||||
|                                              {0, 1, 2, 1, 1, 2, 1, 0, 0}, |                                              {0, 1, 2, 1, 1, 2, 1, 0, 0}, | ||||||
|                                              {1, 1, 1, 2, 2, 1, 0, 0, 0}, |                                              {1, 1, 1, 2, 2, 1, 0, 0, 0}, | ||||||
| @@ -64,7 +66,25 @@ class Inkplate6 : public display::DisplayBuffer, public i2c::I2CDevice { | |||||||
|                                              {1, 1, 1, 1, 2, 2, 1, 0, 0}, |                                              {1, 1, 1, 1, 2, 2, 1, 0, 0}, | ||||||
|                                              {0, 1, 1, 1, 2, 2, 1, 0, 0}, |                                              {0, 1, 1, 1, 2, 2, 1, 0, 0}, | ||||||
|                                              {0, 0, 0, 0, 1, 1, 2, 0, 0}, |                                              {0, 0, 0, 0, 1, 1, 2, 0, 0}, | ||||||
|                                              {0, 0, 0, 0, 0, 1, 2, 0, 0}}}; |                                              {0, 0, 0, 0, 0, 1, 2, 0, 0}}, | ||||||
|  |                                             // INKPLATE_5 | ||||||
|  |                                             {{0, 0, 1, 1, 0, 1, 1, 1, 0}, | ||||||
|  |                                              {0, 1, 1, 1, 1, 2, 0, 1, 0}, | ||||||
|  |                                              {1, 2, 2, 0, 2, 1, 1, 1, 0}, | ||||||
|  |                                              {1, 1, 1, 2, 0, 1, 1, 2, 0}, | ||||||
|  |                                              {0, 1, 1, 1, 2, 0, 1, 2, 0}, | ||||||
|  |                                              {0, 0, 0, 1, 1, 2, 1, 2, 0}, | ||||||
|  |                                              {1, 1, 1, 2, 0, 2, 1, 2, 0}, | ||||||
|  |                                              {0, 0, 0, 0, 0, 0, 0, 0, 0}}, | ||||||
|  |                                             // INKPLATE_5_V2 | ||||||
|  |                                             {{0, 0, 1, 1, 2, 1, 1, 1, 0}, | ||||||
|  |                                              {1, 1, 2, 2, 1, 2, 1, 1, 0}, | ||||||
|  |                                              {0, 1, 2, 2, 1, 1, 2, 1, 0}, | ||||||
|  |                                              {0, 0, 1, 1, 1, 1, 1, 2, 0}, | ||||||
|  |                                              {1, 2, 1, 2, 1, 1, 1, 2, 0}, | ||||||
|  |                                              {0, 1, 1, 1, 2, 0, 1, 2, 0}, | ||||||
|  |                                              {1, 1, 1, 2, 2, 2, 1, 2, 0}, | ||||||
|  |                                              {0, 0, 0, 0, 0, 0, 0, 0, 0}}}; | ||||||
|  |  | ||||||
|   void set_greyscale(bool greyscale) { |   void set_greyscale(bool greyscale) { | ||||||
|     this->greyscale_ = greyscale; |     this->greyscale_ = greyscale; | ||||||
| @@ -146,6 +166,10 @@ class Inkplate6 : public display::DisplayBuffer, public i2c::I2CDevice { | |||||||
|       return 800; |       return 800; | ||||||
|     } else if (this->model_ == INKPLATE_10) { |     } else if (this->model_ == INKPLATE_10) { | ||||||
|       return 1200; |       return 1200; | ||||||
|  |     } else if (this->model_ == INKPLATE_5) { | ||||||
|  |       return 960; | ||||||
|  |     } else if (this->model_ == INKPLATE_5_V2) { | ||||||
|  |       return 1280; | ||||||
|     } else if (this->model_ == INKPLATE_6_PLUS) { |     } else if (this->model_ == INKPLATE_6_PLUS) { | ||||||
|       return 1024; |       return 1024; | ||||||
|     } |     } | ||||||
| @@ -155,6 +179,10 @@ class Inkplate6 : public display::DisplayBuffer, public i2c::I2CDevice { | |||||||
|   int get_height_internal() override { |   int get_height_internal() override { | ||||||
|     if (this->model_ == INKPLATE_6 || this->model_ == INKPLATE_6_V2) { |     if (this->model_ == INKPLATE_6 || this->model_ == INKPLATE_6_V2) { | ||||||
|       return 600; |       return 600; | ||||||
|  |     } else if (this->model_ == INKPLATE_5) { | ||||||
|  |       return 540; | ||||||
|  |     } else if (this->model_ == INKPLATE_5_V2) { | ||||||
|  |       return 720; | ||||||
|     } else if (this->model_ == INKPLATE_10) { |     } else if (this->model_ == INKPLATE_10) { | ||||||
|       return 825; |       return 825; | ||||||
|     } else if (this->model_ == INKPLATE_6_PLUS) { |     } else if (this->model_ == INKPLATE_6_PLUS) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user