ssd1619a 0.1.0

Driver for the SSD1619A e-Paper display controller, for use with embedded-graphics
Documentation
# 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