Skip to content
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

colstart is not correct #5

Closed
lesamouraipourpre opened this issue Aug 27, 2021 · 9 comments · Fixed by #12
Closed

colstart is not correct #5

lesamouraipourpre opened this issue Aug 27, 2021 · 9 comments · Fixed by #12

Comments

@lesamouraipourpre
Copy link
Contributor

With the Adafruit 2.13" HD Tri-Color eInk / ePaper Display FeatherWing the default colstart value passed to the displayio.EPaperDisplay constructor is wrong

super().__init__(
bus,
start_sequence,
stop_sequence,
**kwargs,
ram_width=250,
ram_height=296,
busy_state=True,
write_black_ram_command=0x24,
write_color_ram_command=0x26,
black_bits_inverted=False,
set_column_window_command=0x44,
set_row_window_command=0x45,
set_current_column_command=0x4E,
set_current_row_command=0x4F,
refresh_display_command=0x20,
colstart=1,
always_toggle_chip_select=True,
)

Using the simpletest example with the included display-ruler.bmp I get the following with lines of noise at the bottom and lines missing from the top:
SSD1680_default_colstart

If I change the colstart in the library to 8 it lines up correctly:
SSD1680_colstart_8

Do the other Adafruit products that uses the SSD1680 library work with default colstart value or do they all suffer from this noise?

I can either do a PR to:

  • change the default value to 8
  • expose colstart as a SSD1680 constructor parameter and add constants and documentation

Could someone with access to the other displays report back on their behaviour please?

@Neradoc
Copy link

Neradoc commented Aug 9, 2022

Somebody on discord ran into that issue too, setting colstart to 8 worked. With this wing:
Adafruit 2.13" Monochrome eInk / ePaper Display FeatherWing - 250x122 Monochrome with SSD1680
I don't have the hardware to properly test this. So, to whoever knows about the hardware:

  • is it common to all such displays ?
  • or is it a case of different models needing a different setup ?
  • if so, can the hardware be detected in the code or should there be variants in the library ?

@jposada202020
Copy link
Contributor

jposada202020 commented Feb 18, 2023

I have tested this in the following products

  • `Adafruit 2.13" Tri-Color eInk Display FeatherWing
  • `Adafruit 2.13" Mono eInk Display FeatherWing

In both cases problem is solved when using colstart=8 as per example in #9 . However, did not test on

  • `Adafruit 2.13" Tri-Color eInk Display Breakout

So maybe for this particular case colstart=8 would not work

@dave-ct just pinging you in case you own an Adafruit #4947 Display

@dave-ct
Copy link
Contributor

dave-ct commented Feb 18, 2023

Just have the same two featherwings also.

@jposada202020
Copy link
Contributor

Thanks dave-ct. Hopefully I can test over the weeeknd. Thanks again for your help dave

@tannewt
Copy link
Member

tannewt commented Feb 21, 2023

Note, I don't expect the default to always be right because multiple displays use the same driver IC in different configurations. I'd expect to have a simpletest for each product that would include the correct colstart.

@makermelissa
Copy link
Collaborator

I can either do a PR to:

  • change the default value to 8
  • expose colstart as a SSD1680 constructor parameter and add constants and documentation

This may have been caused by #9, which was an attempt to fix #10 by doing the second item on the list.

I have tested this in the following products

  • `Adafruit 2.13" Tri-Color eInk Display FeatherWing
  • `Adafruit 2.13" Mono eInk Display FeatherWing

In both cases problem is solved when using colstart=8 as per example in #9 . However, did not test on

  • `Adafruit 2.13" Tri-Color eInk Display Breakout

So maybe for this particular case colstart=8 would not work

@dave-ct just pinging you in case you own an Adafruit #4947 Display

Keep in mind that there are older and newer versions of both the tri-color and monochrome 2.13" Displays. Newer displays use the SSD1680, the older monochrome uses the SSD1675 driver, and the older tri-color uses the ILI0373. Sometimes the older displays almost work using the wrong driver, which may have been the case with #9. So we just want to be sure the display that is being tested is in fact the newer one. If unlabeled, I usually tell these apart by comparing the tabs on the left side of the display and comparing to product photos.

Apparently it's been a non-settable 1 since I first wrote the driver. I'm not sure why it's suddenly shifted. I don't think there was any change to the displays themselves. Maybe an internal change in CircuitPython did something. It may be worth testing against an older build as well.

Note, I don't expect the default to always be right because multiple displays use the same driver IC in different configurations. I'd expect to have a simpletest for each product that would include the correct colstart.

Good point. We should probably just leave it 1 for now and just update the examples as needed.

@jposada202020
Copy link
Contributor

Got it, I do have some SSD1680 and some SSD1675, ill take a look over the weekend and make the Pr for the examples. Thanks :)

@makermelissa
Copy link
Collaborator

Thanks. SSD1675 should use https://github.com/adafruit/Adafruit_CircuitPython_SSD1675

@jposada202020
Copy link
Contributor

Some news, I tested on the Adafruit 2.13" Tri-Color eInk Display Breakout and the colstart=8 is indeed the correct values, showing that all three screens for the SSD1680 Adafruit family are good to go. Will submit a PR for a new example and with that close this issue. Next step the SSD1675

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants