caemor / epd-waveshare

Drivers for various EPDs from Waveshare
ISC License
207 stars 128 forks source link

Support for 12.48inch module #164

Closed barafael closed 10 months ago

barafael commented 11 months ago

Is support for this waveshare 12.48 inch module feasible, or planned?

caemor commented 10 months ago

It should be feasible, but it's not something I've planned as I don't have one of these in my hands.

barafael commented 10 months ago

I have one. It works fine with the C example code from waveshare, but yeah that's not great. I can either help test, or, if you like, I can send it to you. No obligations other than sending it back to me when you don't want it anymore, and only if it didn't break along the way :D let me know what you think, email is on my profile. I can send to a Packstation ofc.

caemor commented 10 months ago

Another, cheaper option would be for you to try to implement the driver. If you have problems, I can help you. You can find instructions here: https://github.com/caemor/epd-waveshare/issues/26#issuecomment-479486111

barafael commented 10 months ago

OK. I'll let you know when I need help, could be a while. Thanks!

vadimcn commented 9 months ago

Hi!
I have the display and I wanted to take a stab at implementing the diver.

However... I immediately ran into conceptual difficulties with this crate's traits, because they assume that all displays have the same interface, and take a fixed number of pins as generic parameters. Well, as it turns out, epd12in48(B) actually consists of 4 sub-displays, each with its own CS and BUSY pins, while the DC and RST pins are shared by 2 sub-displays.

@caemor, would you have any advice as to how to fit this sort of device into your framework?

The only thing that comes to mind, is exposing it as 4 separate displays. Which might have to be done anyways, since my ESP32 driver board apparently cannot allocate the contiguous 160K bufer, that would be needed for a 1304*984 image.

caemor commented 9 months ago

Hi, Yes, it doesn't fit our structure very well. There is also a big ownership difference with the shared DC, RST pins, which makes it difficult to use our current code as 4 separate display. So most likely you need one big struct which takes the ownership and then has functions to drive one of the 4 displays (S1,S2, M1,M2). Most likely we will need a separate strategy for this display.

To start with the driver, I would take the elements from this crate and adapt them for this display, but wouldn't worry about compatibility with the current code.

Greetings, Chris