# ssd1619a
Driver for the **Solomon Systech SSD1619A** e-Paper display controller for [`embedded-graphics`].
It has been tested on a WeAct Studio 4.2″ EPD module that uses a display assembly made by Holitech.
[`embedded-graphics`]: https://crates.io/crates/embedded-graphics
## Goals
As of [`ssd1619a`] v0.1, the driver supports B/W modules and provides a blocking API for updating
the display. It requires the use of a framebuffer with a capacity of 15000 bytes of graphics data
for a native resolution of 400×300 pixels. Partial screen refresh is not supported; this crate is
intended for displaying graphics and text that do not have any motion.
[`ssd1619a`]: https://crates.io/crates/ssd1619a
## Examples
```toml
[dependencies]
ssd1619a = "0.1.0"
```
```rust
pub fn draw_graphics(
spi: impl SpiDevice,
dc: impl OutputPin,
rst: impl OutputPin,
busy: impl InputPin,
) -> Result<(), impl core::error::Error> {
let interface = SpiInterface::new(spi, dc, rst, busy);
let mut display = Builder::new(interface)
.with_buffer(/* &'static mut [u8; 15000] */)
.init(&mut Delay)?;
let style = PrimitiveStyleBuilder::new()
.fill_color(BinaryColor::On) // Black
.build();
Rectangle::new(Point::new(0, 40), Size::new(400, 220))
.into_styled(style)
.draw(&mut display)?;
display.update(&mut Delay)
}
```
## Minimum supported Rust version
The minimum supported Rust version for `ssd1619a` is `1.89`.
## License
The source code of `ssd1619a` is dual-licensed under:
* Apache License, Version 2.0 ([LICENSE-APACHE] or <http://www.apache.org/licenses/LICENSE-2.0>)
* MIT License ([LICENSE-MIT] or <http://opensource.org/licenses/MIT>)
at your option.
[LICENSE-APACHE]: LICENSE-APACHE
[LICENSE-MIT]: LICENSE-MIT