wezm / ssd1675

Rust driver for SSD1675 e-Paper display controller
Apache License 2.0
63 stars 14 forks source link

il3897 #8

Open etrombly opened 5 years ago

etrombly commented 5 years ago

I was going to use your library as a reference to write one for the il3897 used in the Lolin (Wemos) epaper display. They ended up being the same chip though(probably just rebranded). It took minimal work to get this going on that display too, but there are a few things that it would be nice to restructure to support both. Mainly it doesn't need a red buffer, and the initialization is slightly different (VCOM, Driving Voltages, etc). Maybe rename display and graphics to inky_phat, so we can have another display implementation for the lolin?

etrombly commented 5 years ago

Oh and I used it with an stm32f103 (blue pill) so you can add stm32 to your list of devices where your driver was tested.

wezm commented 5 years ago

Thanks for this. My goal for this crate is for it to provide the bits necessary to communicate with a display that uses the SSD1675. Ideally there would be no display specific stuff in this crate, instead that would live in other crates that depend on this one. I probably let too much Inky pHAT stuff leak into to this one. If you have your changes somewhere they might be good as a reference to identify parts that aren't generic enough.

etrombly commented 5 years ago

I was testing it here https://github.com/etrombly/screen-test

Also I grabbed the display specific stuff from the arduino driver here https://github.com/wemos/LOLIN_EPD_Library/blob/master/src/LOLIN_IL3897.cpp, It looks like if you use a different LUT to initialize it and use Command::UpdateDisplayOption2(0x0C) instead of Command::UpdateDisplayOption2(0xC7) you can do partial screen updates. Haven't tested it yet, but it might let you have faster screen updates. Not sure if you can find the partial update LUT for the inky_phat anywhere.

wezm commented 5 years ago

Not sure if you can find the partial update LUT for the inky_phat anywhere.

As far as I know it's not possible on tri-colour displays because they need both buffers for the colours. On B/W displays it can apply the partial updates from one buffer to the other.

JeanBlignaut commented 2 years ago

Hi I am looking for a driver for the il3897 used in the Lolin (Wemos) epaper display, as it turns out... I am quite new to embedded dev as well as rust but stubbornly wanted to use rust on ESP32 rather than C/C++ (which I have working now thanks to the ESP Rust Book and the rust-esp32-std-demo) What steps do I take to use this driver and just add some screen specifics as you mentioned previously @etrombly @wezm ?- any help would be appreciated :)

etrombly commented 2 years ago

You should be able to use the code I mentioned here https://github.com/etrombly/screen-test , an example on how to use it is here https://github.com/etrombly/screen-client . I haven't updated either in the last 2 years, I tried around a year ago and there were some pretty substantial changes in the dependencies. You should be able to use it as is though.

edit: Didn't notice you said you wanted to use an ESP32. The stuff I wrote is for stm32 using cortex-m-rtfm. You should still be able to see what I did to modify the LUTs and other values though, they're all at the top of main.rs in screen-test

JeanBlignaut commented 2 years ago

Thanks I’ll give it a try