Giter Site home page Giter Site logo

Inky pHAT revisions about inky HOT 3 CLOSED

pimoroni avatar pimoroni commented on June 1, 2024
Inky pHAT revisions

from inky.

Comments (3)

Gadgetoid avatar Gadgetoid commented on June 1, 2024

There are myriad different resolution displays, different driver ICs and different configuration profiles (LUTs) for each display. The primary motivation for dropping v1 support from this library was to keep it simple, and uncomplicated by having to support multiple drivers. If you look over the v1 code you'll notice a really clunky approach to supporting multiple displays that Inky was attempting to reconsile.

Of course... e-ink manufacturers don't seem to give us a break! Indeed the feature/ssd1608 branch is intended to add support for a future revision. So that simplicity has somewhat melted away anyway.

There's nothing stopping the v1 code from being ported to this library using the same approach as the ssd1608, but the result probably wouldn't be very elegant.

We now populate an EEPROM on each Inky display in order to store information about the type and resolution of each display, but our current approach to reading and acting upon that EEPROM is suboptimal, too.

from inky.

DurandA avatar DurandA commented on June 1, 2024

Thanks for the extensive answer, this is appreciated.

May I ask what is the reference of the display of the v1, v2 and v3 red version? If I understand correctly, v2 and v3 use a different display but the same driver whilst v1 uses another driver. Also, can both v2 and v3 be used in monochrome ("black") mode for fast display?

from inky.

Gadgetoid avatar Gadgetoid commented on June 1, 2024

I believe all the displays will do some kind of monochrome fast display, even the yellow/red displays can be driven slightly faster if you're willing to compromise on image quality. In all cases, though, they require a new LUT configuration and there's no documentation (that I'm aware of) to guide this process except the stuff I wrote after bashing my head against them for several weeks:

inky/library/inky/inky.py

Lines 108 to 156 in feb2303

"""Inky Lookup Tables.
These lookup tables comprise of two sets of values.
The first set of values, formatted as binary, describe the voltages applied during the six update phases:
Phase 0 Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 Phase 6
A B C D
0b01001000, 0b10100000, 0b00010000, 0b00010000, 0b00010011, 0b00000000, 0b00000000, LUT0 - Black
0b01001000, 0b10100000, 0b10000000, 0b00000000, 0b00000011, 0b00000000, 0b00000000, LUT1 - White
0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, NOT USED BY HARDWARE
0b01001000, 0b10100101, 0b00000000, 0b10111011, 0b00000000, 0b00000000, 0b00000000, LUT3 - Yellow or Red
0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, LUT4 - VCOM
There are seven possible phases, arranged horizontally, and only the phases with duration/repeat information
(see below) are used during the update cycle.
Each phase has four steps: A, B, C and D. Each step is represented by two binary bits and these bits can
have one of four possible values representing the voltages to be applied. The default values follow:
0b00: VSS or Ground
0b01: VSH1 or 15V
0b10: VSL or -15V
0b11: VSH2 or 5.4V
During each phase the Black, White and Yellow (or Red) stages are applied in turn, creating a voltage
differential across each display pixel. This is what moves the physical ink particles in their suspension.
The second set of values, formatted as hex, describe the duration of each step in a phase, and the number
of times that phase should be repeated:
Duration Repeat
A B C D
0x10, 0x04, 0x04, 0x04, 0x04, <-- Timings for Phase 0
0x10, 0x04, 0x04, 0x04, 0x04, <-- Timings for Phase 1
0x04, 0x08, 0x08, 0x10, 0x10, etc
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
The duration and repeat parameters allow you to take a single sequence of A, B, C and D voltage values and
transform them into a waveform that - effectively - wiggles the ink particles into the desired position.
In all of our LUT definitions we use the first and second phases to flash/pulse and clear the display to
mitigate image retention. The flashing effect is actually the ink particles being moved from the bottom to
the top of the display repeatedly in an attempt to reset them back into a sensible resting position.
"""

I'm afraid I've completely lost the plot in terms of which display driver/display part goes with which generation- I had a smattering of datasheets but no way to correlate them to a particular board. I juggle so many components and corresponding libraries. I can find out if engineering has records, though.

Sorry I can't be more immediately helpful.

from inky.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.