-
Notifications
You must be signed in to change notification settings - Fork 126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LUT info, and possibility to clear with black? #13
Comments
The LUTs have always managed to just hover at the very fringes of my understanding, but some wisdom from the original Inky pHAT library may help. The codes in the phase tables of the LUTs represent the different positive and negative voltages set on each step. The voltage that affects the ink particulate is the difference between Black and VCOM or White and VCOM. Generally any pair of codes that pull the ink in one direction will, when reversed, pull it in the other. On power on these are the bits and voltages they correspond to:
But these voltages can be configured and, indeed, are changed for the Yellow LUTs in this code. You'll notice patterns like Now taking our default black LUTs I can explain - more or less - what's happening: 'black': [
# Phase 0 Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 Phase 6
# A B C D A B C D A B C D A B C D A B C D A B C D A B C D
0b01001000, 0b10100000, 0b00010000, 0b00010000, 0b00010011, 0b00000000, 0b00000000, # LUT0 - Black
0b01001000, 0b10100000, 0b10000000, 0b00000000, 0b00000011, 0b00000000, 0b00000000, # LUTT1 - White
0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, # IGNORE
0b01001000, 0b10100101, 0b00000000, 0b10111011, 0b00000000, 0b00000000, 0b00000000, # LUT3 - Red
0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, # LUT4 - VCOM
# Duration | Repeat
# A B C D |
16, 4, 4, 4, 4, # 0 Flash
16, 4, 4, 4, 4, # 1 clear
4, 8, 8, 16, 16, # 2 bring in the black
0, 0, 0, 0, 0, # 3 time for red
0, 0, 0, 0, 0, # 4 final black sharpen phase
0, 0, 0, 0, 0, # 5
0, 0, 0, 0, 0, # 6
], Phase 0 - Flash the display to try and avoid image retention
Phase 1 - Clear to white, by pulling all inks down
Phase 2 - Pull the black ink back toward the front
Phase 3, 4, 5 and 6Unused since we're dealing with just black, but these would usually jiggle things around until we get some semblance of the sharpness/clarity/colour we want. ConclusionFrom this we can conclude that the black particles will move toward the front of the display when pulsed with VSH1 (+15v) and will move away when pulse with VSL (-15v). If you're particularly brave you can see what happens when you set VCOM to -15v and black to +15v creating a 30v differential to give things a little extra kick. You'll notice I do this with the Yellow LUTS since that Yellow/Black mix is a pain to shunt around. The long and short of it is that I don't know much about how exactly these LUTs should be set up to achieve a desired outcome and we do most of our LUTs via trial and error. Hopefully some of what I've detailed above will give you a better idea what you're telling the hardware to do! |
I hope no-one minds me posting this, but this video is the reason I ended up buying an Inky wHat. "E-paper hacking: fastest possible refresh rate" By Applied Science on YouTube. I think the display he has in the video is the same model as the Inky wHat, with potentially the same driver. In the video he explains in quite a bit of detail how e-ink displays work and some of the theory behind the LUTs. I think it's a valuable resource for anyone who wants to tinker with the displays beyond standard library usage. I have seen the DEPG0420R01V3.0.pdf datasheet linked at various places, but only ever referring to the pHat. Does this one also match the wHat? |
Hey there! Having fun tinkering with my inky pHAT! I've been adding new lookup tables to get a custom update sequence and wondered:
One step in the default B&W sequence is "clear the buffer" which makes the screen go entirely white. Is there a similar command or hex code that would clear with black instead of clearing with white?
Currently my custom sequence does this:
I'd like to remove step 1 from this sequence to speed things up. To do this, I need a way to clear the screen with white or black.
It actually already seems possible to clear to white using
0b10100000
in the LUT, which could potentially remove step 1 in the context of a white background. However, another issue #12 is preventing me from doing that, as for whatever reason the clear operation is resetting the border to black. In the case of black background, I am close to being able to remove step 1, but I need a flag that says "clear to black" instead of "clear to white," if such a thing exists.Any ideas? 😄
Thanks!
The text was updated successfully, but these errors were encountered: