# AB1024-EGA (AC057TC1) [![ab1024-ega on crates.io](https://img.shields.io/crates/d/ab1024-ega)](https://crates.io/crates/ab1024-ega) [![ab1024-ega on docs.rs](https://img.shields.io/docsrs/ab1024-ega)](https://docs.rs/ab1024-ega/latest/uf2_decode/) An `embedded-hal` SPI driver for AB1024-EGA/AC057TC1 (as used in Inkplate 6 COLOR). AFAIK there is no way to send partial updates to AB1024-EGA/AC057TC1. Thus, this driver allocates a ~130kb buffer for pixel data. Included examples assume Inkplate 6 COLOR but the driver itself should be usable with AB1024-EGA/AC057TC1 displays connected to other hardware. This driver is heavily based on the [Soldered Inkplate Arduino library](https://github.com/SolderedElectronics/Inkplate-Arduino-library), hence the LGPL 3 license. ![Inkplate displaying a dithered version of Vincent van Gogh's The Starry Night][image-photo] ## Running I've tried to strike a balance between making tests and examples easy to run even though these run in very different environments. This is why the esp toolchain necessary for examples is not selected for you automatically by a `rust-toolchain.toml`. It must be selected manually (assuming it is not the system default). To run examples: `cargo +esp re $EXAMPLE_NAME` To run tests: `cargo test --tests` ## Setting up esp32 environment An esp32 environment is needed to run the Inkplate examples on Inkplate hardware. The specific architecture used on Inkplate 6 COLOR is _not_ RISC-V but Xtensa. There are instructions for setting up an Xtensa Rust development environment at . At time of writing the main steps can be summarised as: 1. Install espup `cargo install espup` 2. Get espup to do environment setup `espup install` 3. Source environment init file on non-Windows OS. `. $HOME/export-esp.sh` [image-photo]: examples/image_photo.jpg