ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
epaper_spi_ssd1677.h
Go to the documentation of this file.
1#pragma once
2
3#include "epaper_spi_mono.h"
4
5namespace esphome::epaper_spi {
6
23class EPaperSSD1677 : public EPaperMono {
24 public:
25 EPaperSSD1677(const char *name, uint16_t width, uint16_t height, const uint8_t *init_sequence,
26 size_t init_sequence_length, DisplayType display_type = DISPLAY_TYPE_BINARY, uint8_t bits_per_pixel = 1)
27 : EPaperMono(name, width, height, init_sequence, init_sequence_length, display_type, bits_per_pixel) {}
28
29 void setup() override;
30
31 protected:
32 // Allocates the comparison frame when partial updates are enabled. Separate from setup() so it
33 // can run without a bus.
35 // Bytes in one row of a RAM plane: 8 pixels per byte, whatever the buffer holds.
36 size_t plane_row_length_() const { return (this->width_ + 7) / 8; }
37 // Row y of the frame as a RAM plane holds it, 1 bit per pixel with 1 = white.
38 virtual void plane_row(size_t y, uint8_t *out);
39 bool reset() override;
40 bool transfer_data() override;
41
42 split_buffer::SplitBuffer sent_{}; // the frame last sent to 0x24, i.e. what the panel shows
43 uint8_t plane_{0}; // 0 while sending 0x26, 1 while sending 0x24
44};
45
46} // namespace esphome::epaper_spi
A class for monochrome epaper displays.
Monochrome SSD1677 with partial refreshes that leave unchanged pixels alone.
virtual void plane_row(size_t y, uint8_t *out)
EPaperSSD1677(const char *name, uint16_t width, uint16_t height, const uint8_t *init_sequence, size_t init_sequence_length, DisplayType display_type=DISPLAY_TYPE_BINARY, uint8_t bits_per_pixel=1)
A SplitBuffer allocates a large memory buffer potentially as multiple smaller buffers to facilitate a...
std::vector< uint8_t > & out
Definition gif.cpp:49
uint16_t y
Definition tt21100.cpp:6