#lcd #embedded-graphics #adafruit #no-std #memory-display

no-std sharp-memory-display

A no-std-compatible embedded-graphics driver for SHARP memory-in-pixel displays

4 releases (2 breaking)

0.3.0 Nov 14, 2022
0.2.0 Sep 13, 2022
0.1.1 Sep 3, 2022
0.1.0 Sep 3, 2022

#1725 in Hardware support

GPL-3.0+

18KB
223 lines

sharp-memory-display

Crates.io Crates.io

Summary

sharp-memory-display provides an embedded-graphics driver for SHARP memory-in-pixel displays, such as the LS027B7DH01 and similar models. The crate depends on embedded-hal and is #![no_std]-compatible.

Usage

Just depend on the crate in your Cargo manifest, specifying your display model via features:

[dependencies]
sharp-memory-display = { version: "0.1", features: ["ls027b7dh01"] }

Now you can bring the crate into scope:

use sharp_memory_display::*

Then simply construct a new MemoryDisplay from an SPI struct, a chip-select pin, and a display pin similar to this:

let cs = pins.pa14.into_push_pull_output();
let disp = pins.pa16.into_push_pull_output();
let spi = spi::Config::new(&peripherals.MCLK, spi_sercom, pads, freq)
    .baud(Hertz(500_000u32))
    .spi_mode(sharp_memory_display::MODE)
    .enable();

// Create display
let mut disp = MemoryDisplay::new(spi, cs, disp)
disp.enable();
disp.clear();

Please note the maximum supported SPI baud rate for your display. You can find it in the corresponding datasheet.

You can now use the display as a DrawTarget. To write the changes to the screen, you must invoke the flush_buffer function. Please see the documentation for notes on usage.

Note: You must specify your display via features. Supported display models currently are:

  • ls027b7dh01 (tested)
  • ls013b7dh05
  • ls012b7dd06
  • ls010b7dh04
  • ls011b7dh03 (tested)

Support for additional display models can be easily added. Merge requests are welcome :)

Bug Reports and Feature Requests

Contributions to this project are welcome. You can find the issue tracker and the code repository at sourcehut. You may also submit bug reports or feature requests via email to ~doesnotcompete/sharp-memory-display@todo.sr.ht.

Dependencies

~5MB
~81K SLoC