In version 0.8, mipidsi updated its dependency on embedded-hal to 1.0 and changed how displays are constructed.
Use generic Builder::new instead of model-specific constructors
Model-specific constructors like Builder::ili9341_rgb565 were removed. Use Builder::new with a model instance instead.
// 0.7
use mipidsi::Builder;
let display = Builder::ili9341_rgb565(di)
.init(&mut delay, None)?;
// 0.8
use mipidsi::{Builder, models::ILI9341Rgb565};
let display = Builder::new(ILI9341Rgb565, di)
.init(&mut delay)?;
Use .reset_pin() instead of passing to .init()
The reset pin parameter was removed from Builder::init. Use the .reset_pin() setter on the builder instead.
// 0.7
let display = Builder::new(ili9341_rgb565, di)
.init(&mut delay, Some(rst))?;
// 0.8
use mipidsi::{Builder, models::ILI9341Rgb565};
let display = Builder::new(ILI9341Rgb565, di)
.reset_pin(rst)
.init(&mut delay)?;
Builder method renaming
Methods previously prefixed with with_ (e.g., with_invert_colors) have been renamed to remove the prefix to comply with Rust API guidelines.
// 0.7
let display = Builder::new(ili9341_rgb565, di)
.with_invert_colors(ColorInversion::Normal)
.with_orientation(Orienation::default())
.init(&mut delay, Some(rst))?;
// 0.8
use mipidsi::{Builder, models::ILI9341Rgb565};
let display = Builder::new(ILI9341Rgb565, di)
.invert_colors(ColorInversion::Normal)
.orientation(Orienation::default())
.reset_pin(rst)
.init(&mut delay)?;
Color Defaults
In 0.8, all models use consistent default values: no color inversion and RGB subpixel order. If your display shows incorrect colors, check the troubleshooting guide.