diff --git a/CHANGELOG.md b/CHANGELOG.md index f3eeac2..9a4ae72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,15 +8,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] ### Added - - Added QuickRefresh Trait and implemented it for EPD4in2 in #62 (thanks to @David-OConnor) - - Added Epd 2in7 (B) support in #60 (thanks to @pjsier) + +- Added QuickRefresh Trait and implemented it for EPD4in2 in #62 (thanks to @David-OConnor) +- Added Epd 2in7 (B) support in #60 (thanks to @pjsier) ### Changed - - Use specific ParseColorError instead of () - - EPD4in2: Don't set the resolution (and some more) over and over again (#48) -### Fixed +- Use specific ParseColorError instead of () +- EPD4in2: Don't set the resolution (and some more) over and over again (#48) +- Removed `#[allow(non_camel_case_types)]` to fix various issues around it +### Fixed ## [v0.5.0] @@ -25,56 +27,65 @@ TODO! ## [v0.4.0] - 2020-04-06 ### Added - - New supported epds: epd7in5 (thanks to @str4d), epd7in5 v2 (thanks to @asaaki), epd1in54b (thanks to @jkristell) - - Added update_and_display_frame to WaveshareDisplay trait (fixes #38) - - also improve position of busy_wait (#30) once more - - More Documenation + +- New supported epds: epd7in5 (thanks to @str4d), epd7in5 v2 (thanks to @asaaki), epd1in54b (thanks to @jkristell) +- Added update_and_display_frame to WaveshareDisplay trait (fixes #38) +- also improve position of busy_wait (#30) once more +- More Documentation ### Changed - - Update embedded-graphics to 0.6 (changes Display Trait) (and to 0.5 before thanks to @dbr) - - Remove useless Featuregates (Doesn't change size) - - Update and integrate a few important examples and remove the others - - Use Embedded_hal:digital::v2 +- Update embedded-graphics to 0.6 (changes Display Trait) (and to 0.5 before thanks to @dbr) +- Remove useless feature gates (Doesn't change size) +- Update and integrate a few important examples and remove the others +- Use Embedded_hal:digital::v2 ### Fixed - - Doc Tests +- Doc Tests ## [v0.3.2] - 2019-06-17 ### Fixed - - Added some more missing wait_until_idle calls + +- Added some more missing wait_until_idle calls ## [v0.3.1] - 2019-04-06 ### Added - - Example for epd4in2 and BluePill-Board + +- Example for epd4in2 and BluePill-Board ### Changed - - Improved CI + +- Improved CI ### Fixed - - Timing issues in display_frame function: epd1in54 and epd2in9 were both missing a necessary wait_until_idle call at the end of their display_frame function which sometimes caused invalid/ignored commands/inputs afterwards - - Some CI Targets were not tested correctly before + +- Timing issues in display_frame function: epd1in54 and epd2in9 were both missing a necessary wait_until_idle call at + the end of their display_frame function which sometimes caused invalid/ignored commands/inputs afterwards +- Some CI Targets were not tested correctly before ## [v0.3.0] - 2019-04-04 ### Added + - added eink to keywords - added reference to previous crate-name - improved readme/docs e.g. added reference to a few great arduino display libs for these epds - Added is_busy to Waveshare_Interface - Added IS_BUSY_LOW const for all supported epds - Added is_busy to DisplayInterface -- Added VarDisplay (a variable buffersize display/graphic driver) +- Added VarDisplay (a variable buffer-size display/graphic driver) - Updated and added more examples - add a feature gated alternative full lut for type_a displays ### Removed + - Removed all Buffers (Buffer1in54,...) and instead made specialised Displays (Display1in54,...) with included Buffers ### Changed + - Switch to 2018 edition - "cargo fix --edition" for the library - Use cargo fix edition-idioms and remove the internal renaming from embedded_hal to hal @@ -87,19 +98,25 @@ TODO! Initial release with Changelog ### Added + - Uses embedded-graphics now - Tested and fixed 1.54 inch, 2.9 inch and 4.2 inch display ### Removed + - Old included Graphics Library ### Changed + - Lots of internal changes - Renamed to `epd-waveshare` - [Unreleased]: https://github.com/Caemor/eink-waveshare-rs/compare/v0.4.0...HEAD + [v0.4.0]: https://github.com/Caemor/eink-waveshare-rs/compare/v0.3.2...v0.4.0 + [v0.3.2]: https://github.com/Caemor/eink-waveshare-rs/compare/v0.3.1...v0.3.2 + [v0.3.1]: https://github.com/Caemor/eink-waveshare-rs/compare/v0.3.0...v0.3.1 + [v0.3.0]: https://github.com/Caemor/eink-waveshare-rs/compare/v0.2.0...v0.3.0 diff --git a/README.md b/README.md index 200e601..99fcb1b 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,14 @@ [![Build Status](https://travis-ci.com/caemor/epd-waveshare.svg?branch=master)](https://travis-ci.com/caemor/epd-waveshare) -This library contains a driver for E-Paper Modules from Waveshare (which are basically the same as the Dalian Good Display ones). +This library contains a driver for E-Paper Modules from Waveshare (which are basically the same as the Dalian Good +Display ones). It uses the [embedded graphics](https://crates.io/crates/embedded-graphics) library for the optional graphics support. A 2018-edition compatible version (Rust 1.31+) is needed. -Other similiar libraries with support for much more displays are [u8g2](https://github.com/olikraus/u8g2) and [GxEPD](https://github.com/ZinggJM/GxEPD) for arduino. +Other similar libraries with support for much more displays are [u8g2](https://github.com/olikraus/u8g2) +and [GxEPD](https://github.com/ZinggJM/GxEPD) for arduino. ## Examples @@ -14,24 +16,24 @@ There are multiple examples in the examples folder. Use `cargo run --example exa ```Rust // Setup the epd -let mut epd = EPD4in2::new(&mut spi, cs, busy, dc, rst, &mut delay)?; +let mut epd = EPD4in2::new( & mut spi, cs, busy, dc, rst, & mut delay) ?; // Setup the graphics -let mut display = Display4in2::default(); +let mut display = Display4in2::default (); // Draw some text display.draw( - let _ = Text::new("Hello Rust!", Point::new(x, y)) - .into_styled(text_style!( +let _ = Text::new("Hello Rust!", Point::new(x, y)) +.into_styled(text_style!( font = Font12x16, text_color = Black, background_color = White )) - .draw(display); +.draw(display); ); // Transfer the frame data to the epd and display it -epd.update_and_display_frame(&mut spi, &display.buffer())?; +epd.update_and_display_frame( & mut spi, & display.buffer()) ?; ``` ## (Supported) Devices @@ -50,11 +52,10 @@ epd.update_and_display_frame(&mut spi, &display.buffer())?; | [5.65 Inch 7 Color (F)](https://www.waveshare.com/5.65inch-e-paper-module-f.htm) | Black, White, Red, Green, Blue, Yellow, Orange | ✕ | ✕ | ✔ | ✔ | | [2.7 Inch 3 Color (B)](https://www.waveshare.com/2.7inch-e-paper-b.htm) | Black, White, Red | ✕ | ✔ | ✔ | ✔ | - ### [1]: 7.5 Inch B/W V2 (A) -Since November 2019 Waveshare sells their updated version of these displays. -They should have a "V2" marking sticker on the backside of the panel. +Since November 2019 Waveshare sells their updated version of these displays. They should have a "V2" marking sticker on +the backside of the panel. Use `epd7in5_v2` instead of `epd7in5`, because the protocol changed. @@ -69,21 +70,23 @@ It's possible with this driver but might lead to ghosting / burn-in effects ther | Interface | Description | | :---: | :--- | -| VCC | 3.3V | -| GND | GND | -| DIN | SPI MOSI | -| CLK | SPI SCK | -| CS | SPI chip select (Low active) | -| DC | Data/Command control pin (High for data, and low for command) | -| RST | External reset pin (Low for reset) | -| BUSY | Busy state output pin (Low for busy) | +| VCC | 3.3V | +| GND | GND | +| DIN | SPI MOSI | +| CLK | SPI SCK | +| CS | SPI chip select (Low active) | +| DC | Data/Command control pin (High for data, and low for command) | +| RST | External reset pin (Low for reset) | +| BUSY | Busy state output pin (Low for busy) | ### Display Configs -There are two types of Display Configurations used in Wavedshare EPDs, which also needs to be set on the "new" E-Paper Driver HAT. -They are also called A and B, but you shouldn't get confused and mix it with the Type A,B,C and D of the various Displays, which just describe different types (colored variants) or new versions. In the Display Config the seperation is most likely due to included fast partial refresh of the displays. In a Tabular form: +There are two types of Display Configurations used in Waveshare EPDs, which also needs to be set on the "new" E-Paper +Driver HAT. They are also called A and B, but you shouldn't get confused and mix it with the Type A,B,C and D of the +various Displays, which just describe different types (colored variants) or new versions. In the Display Config the +separation is most likely due to included fast partial refresh of the displays. In a Tabular form: -| Type A | Tybe B | +| Type A | Type B | | :---: | :---: | | 1.54in (A) | 1.54in (B) | | 2.13in (A) | 1.54in (C) |