libepaper 2.0.0
A C++23 library for controlling Waveshare e-paper displays on Raspberry Pi, featuring transparent sleep/wake management and a fluent builder API.
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Variables
epd27.hpp File Reference
#include "epaper/core/device.hpp"
#include "epaper/drivers/capabilities.hpp"
#include "epaper/drivers/driver.hpp"
#include "epaper/drivers/driver_concepts.hpp"
#include <array>
#include <cstddef>
#include <cstdint>
#include <expected>
#include <optional>
#include <span>
#include <utility>
Include dependency graph for epd27.hpp:

Go to the source code of this file.

Classes

struct  epaper::PowerConfig
 Power configuration settings for EPD27. More...
 
struct  epaper::BoosterConfig
 Booster soft start configuration. More...
 
struct  epaper::EPD27PinConfig
 Pin configuration for standard Raspberry Pi HATs. More...
 
class  epaper::EPD27
 2.7 inch e-paper display driver (176x264 pixels). More...
 
struct  epaper::driver_traits< EPD27 >
 

Namespaces

namespace  epaper
 
namespace  epaper::Timing
 Timing constants for EPD27 operations (in milliseconds).
 
namespace  epaper::PowerOptimization
 Power optimization register settings.
 
namespace  epaper::PanelConfig
 Panel configuration constants.
 
namespace  epaper::Resolution
 Resolution setting constants.
 
namespace  epaper::Grayscale
 Bit manipulation constants for grayscale processing.
 
namespace  epaper::DisplayOps
 Display operation constants.
 

Enumerations

enum class  epaper::Command : std::uint8_t {
  epaper::BOOSTER_SOFT_START = 0x06 , epaper::DATA_START_TRANSMISSION_1 = 0x10 , epaper::DISPLAY_REFRESH = 0x12 , epaper::DATA_START_TRANSMISSION_2 = 0x13 ,
  epaper::PARTIAL_DISPLAY_REFRESH = 0x16 , epaper::LUT_VCOM = 0x20 , epaper::LUT_WW = 0x21 , epaper::LUT_BW = 0x22 ,
  epaper::LUT_WB = 0x23 , epaper::LUT_BB = 0x24 , epaper::LUT_WW2 = 0x25 , epaper::PLL_CONTROL = 0x30 ,
  epaper::VCOM_DATA_INTERVAL = 0x50 , epaper::RESOLUTION_SETTING = 0x61 , epaper::GET_STATUS = 0x71 , epaper::VCM_DC_SETTING = 0x82 ,
  epaper::POWER_OPTIMIZATION = 0xF8 , epaper::PANEL_SETTING = 0x00 , epaper::POWER_SETTING = 0x01 , epaper::POWER_OFF = 0x02 ,
  epaper::POWER_ON = 0x04 , epaper::DEEP_SLEEP = 0x07
}
 E-paper display command codes for EPD27. More...
 

Variables

constexpr std::uint32_t epaper::Timing::BUSY_WAIT_DELAY_MS = 200
 Delay after busy wait.
 
constexpr std::uint32_t epaper::Timing::DISPLAY_REFRESH_DELAY_MS = 200
 Delay after display refresh.
 
constexpr std::uint32_t epaper::Timing::RESET_DELAY_MS = 200
 Reset signal delay.
 
constexpr std::uint32_t epaper::Timing::RESET_PULSE_MS = 2
 Reset pulse duration.
 
constexpr std::uint32_t epaper::Timing::BUSY_POLL_DELAY_MS = 10
 Polling delay when checking busy status.
 
constexpr PowerConfig epaper::POWER_CONFIG_BW
 Power configuration for black/white mode.
 
constexpr PowerConfig epaper::POWER_CONFIG_GRAYSCALE
 Power configuration for grayscale mode.
 
constexpr BoosterConfig epaper::BOOSTER_CONFIG = {.phase1 = 0x07, .phase2 = 0x07, .phase3 = 0x17}
 Standard booster soft start configuration.
 
constexpr std::uint8_t epaper::PowerOptimization::REG1 = 0x60
 
constexpr std::uint8_t epaper::PowerOptimization::VAL1 = 0xA5
 
constexpr std::uint8_t epaper::PowerOptimization::REG2 = 0x89
 
constexpr std::uint8_t epaper::PowerOptimization::VAL2 = 0xA5
 
constexpr std::uint8_t epaper::PowerOptimization::REG3 = 0x90
 
constexpr std::uint8_t epaper::PowerOptimization::VAL3 = 0x00
 
constexpr std::uint8_t epaper::PowerOptimization::REG4 = 0x93
 
constexpr std::uint8_t epaper::PowerOptimization::VAL4 = 0x2A
 
constexpr std::uint8_t epaper::PowerOptimization::REG5 = 0xA0
 
constexpr std::uint8_t epaper::PowerOptimization::VAL5 = 0xA5
 
constexpr std::uint8_t epaper::PowerOptimization::REG6 = 0xA1
 
constexpr std::uint8_t epaper::PowerOptimization::VAL6 = 0x00
 
constexpr std::uint8_t epaper::PowerOptimization::REG7 = 0x73
 
constexpr std::uint8_t epaper::PowerOptimization::VAL7 = 0x41
 
constexpr std::uint8_t epaper::PanelConfig::PANEL_SETTING_BW = 0xAF
 Panel setting for black/white mode.
 
constexpr std::uint8_t epaper::PanelConfig::PANEL_SETTING_GRAYSCALE = 0xBF
 Panel setting for grayscale mode.
 
constexpr std::uint8_t epaper::PanelConfig::PLL_SETTING_BW = 0x3A
 PLL 100Hz for black/white mode.
 
constexpr std::uint8_t epaper::PanelConfig::PLL_SETTING_GRAYSCALE = 0x90
 PLL 100Hz for grayscale mode.
 
constexpr std::uint8_t epaper::PanelConfig::VCM_DC_SETTING_VALUE = 0x12
 VCM DC setting value.
 
constexpr std::uint8_t epaper::Resolution::WIDTH_HIGH = 0x00
 Width high byte (176 >> 8)
 
constexpr std::uint8_t epaper::Resolution::WIDTH_LOW = 0xB0
 Width low byte (176 & 0xFF)
 
constexpr std::uint8_t epaper::Resolution::HEIGHT_HIGH = 0x01
 Height high byte (264 >> 8)
 
constexpr std::uint8_t epaper::Resolution::HEIGHT_LOW = 0x08
 Height low byte (264 & 0xFF)
 
constexpr std::uint8_t epaper::Grayscale::BLACK_MASK = 0x00
 Bit pattern for black pixel.
 
constexpr std::uint8_t epaper::Grayscale::BIT_SHIFT = 2
 Bit shift for 2-bit pixels.
 
constexpr std::uint8_t epaper::Grayscale::GRAY1_MASK = 0x80
 Bit pattern for gray level 1.
 
constexpr std::uint8_t epaper::Grayscale::GRAY2_MASK = 0x40
 Bit pattern for gray level 2.
 
constexpr std::uint8_t epaper::Grayscale::PIXEL_MASK = 0xC0
 Mask for extracting 2-bit pixel.
 
constexpr std::size_t epaper::Grayscale::TOTAL_PIXELS = 5808
 Total pixels / 8 for grayscale (176*264/8)
 
constexpr std::uint8_t epaper::Grayscale::WHITE_MASK = 0xC0
 Bit pattern for white pixel.
 
constexpr std::uint8_t epaper::DisplayOps::BUSY_STATUS_MASK = 0x01
 Mask for busy status bit.
 
constexpr std::uint8_t epaper::DisplayOps::CLEAR_FILL_VALUE = 0xFF
 Fill value for clearing (white)
 
constexpr std::uint8_t epaper::DisplayOps::PARTIAL_REFRESH_DISABLE = 0x00
 Disable partial refresh.
 
constexpr std::uint8_t epaper::DisplayOps::SLEEP_VCOM_DATA_INTERVAL = 0xF7
 VCOM interval for sleep mode.
 
constexpr std::uint8_t epaper::DisplayOps::DEEP_SLEEP_MAGIC = 0xA5
 Magic value for deep sleep.
 
constexpr std::uint8_t epaper::DisplayOps::VCOM_DATA_INTERVAL_GRAYSCALE = 0x97
 VCOM interval for grayscale.