Skip to content

Integrate AIP31068 LCD support into CharacterLcd #2433

@asp2286

Description

@asp2286

Summary

  • Iot.Device.CharacterLcd.Lcd1602 cannot drive AIP31068-based displays because the controller requires an extended initialization sequence and contrast configuration.
  • The new Aip31068Lcd binding lives outside the common CharacterLcd abstraction, so samples and helpers that expect Lcd1602 remain incompatible.

Expected behavior

Developers should be able to instantiate Lcd1602 with an I²C transport targeting an AIP31068 controller and see the display initialize with the proper contrast/booster settings without patching the driver.

Actual behavior

Lcd1602 issues the standard HD44780 initialization sequence, which leaves AIP31068 displays blank or stuck with incorrect contrast. The higher-level CharacterLcd helpers therefore fail to work when the screen uses this controller.

Reproduction steps

  1. Connect an AIP31068-based 16x2 LCD (e.g., labeled "AIP31068" or "WS0010") over I²C at address 0x3E.
  2. Instantiate Lcd1602 with an I2cDevice configured for that bus/address.
  3. Run any of the CharacterLcd samples that target Lcd1602.
  4. Observe that the display never leaves the blank/low-contrast state because the extended initialization is missing.

Proposed fix

  • Extend Lcd1602 so it can optionally execute the AIP31068 initialization flow (function set with IS=1, contrast parameters, booster enable, etc.).
  • Expose knobs for contrast and booster so the screen can be tuned at runtime.
  • Update CharacterLcd samples/documentation to mention the capability and demonstrate its usage.

Additional context

  • Reference: Controller datasheet describing the extended command set (AIP31068 / WS0010).
  • Related work: src/devices/CharacterLcd/Aip31068Lcd.cs implements the required sequence but is disconnected from Lcd1602.

Metadata

Metadata

Assignees

No one assigned

    Labels

    api-suggestionEarly API idea and discussion, it is NOT ready for implementationuntriaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions