cpu20 Posted July 5, 2017 Report Posted July 5, 2017 Recently I've gotten this little display. It's my first time working with an e-paper display and I have to say it's really neat how it works! The pas few days I have been busy writing a driver for it. Rotation works, but partial refresh is not implemented yet. The reason for this, is that I have no idea how to do this. Currently the driver uses the draw_pixel method to write every pixel into a frame buffer and then flush everything at once to the display. I have no idea if it would be beneficial to implemented partial refresh and if so how to do it. If anyone could give some more info that would be really helpful! WS29EPD.zip
cpu20 Posted July 5, 2017 Author Report Posted July 5, 2017 (edited) Here are some pictures with two lines, a circle and some text printed on the EPD. Edited July 5, 2017 by cpu20
inmarket Posted July 5, 2017 Report Posted July 5, 2017 The easiest way is to just save the x & y coordinate minimum and maximum in the driver pixel draw routine. When the flush happens you then flush based on the rectangle you saved. Some draws will not optimise based on this simple method (eg the diagonal line from corner to corner) but for most workloads it will save refresh time. Another optimization that will help with the diagonal line is to force a flush whenever the pixel to be drawn is outside a certain maximum refresh area size.
LGKev Posted May 13, 2018 Report Posted May 13, 2018 nice job @cpu20! thank you for posting your work, its a great example!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now