ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
epaper_spi_ssd1681.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace esphome::epaper_spi {
6
7// Partial refreshes compare RAM 0x24 (new image) with RAM 0x26 (image on the panel) and drive only changed pixels.
9 public:
10 EPaperSSD1681(const char *name, uint16_t width, uint16_t height, const uint8_t *init_sequence,
11 size_t init_sequence_length)
12 : EPaperSSD1683(name, width, height, init_sequence, init_sequence_length) {
13 // 0x12 puts the display option register back to its default, which turns off the RAM ping-pong the panel's
14 // OTP enables; without it the controller no longer carries 0x24 over to 0x26 after a partial refresh
15 this->software_reset_ = false;
16 }
17
18 protected:
19 // Reads the previous frame to compute the changed window for a partial refresh
20 bool needs_previous_frame() const override { return true; }
21 // Shrinks the update bounds to the bytes that differ from the frame last sent
23 bool transfer_data() override;
24 void refresh_screen(bool partial) override;
25};
26
27} // namespace esphome::epaper_spi
void refresh_screen(bool partial) override
bool needs_previous_frame() const override
EPaperSSD1681(const char *name, uint16_t width, uint16_t height, const uint8_t *init_sequence, size_t init_sequence_length)
A class for Solomon SSD1683 epaper displays.