All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

CircuitPython on hardware including Adafruit's boards, and CircuitPython libraries using Blinka on host computers.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
Adatory
 
Posts: 10
Joined: Sun Jun 05, 2022 1:07 pm

All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by Adatory »

Product I purchased: https://www.adafruit.com/product/4778#description

CircuitPython Version: Adafruit CircuitPython 8.1.0-beta.0-29-g76d590bc0 on 2023-03-15; Adafruit Feather ESP32S3 4MB Flash 2MB PSRAM with ESP32S3

Screen:

Image

Back of EPD:

Image

Code (taken from here - https://learn.adafruit.com/adafruit-2-9 ... thon-usage):

Code: Select all

import time
import board
import displayio
import adafruit_il0373

# Used to ensure the display is free in CircuitPython
displayio.release_displays()

# Define the pins needed for display use
# This pinout is for a Feather M4 and may be different for other boards
spi = board.SPI()  # Uses SCK and MOSI
epd_cs = board.D9
epd_dc = board.D10
epd_reset = None
epd_busy = None

# Create the displayio connection to the display pins
display_bus = displayio.FourWire(
    spi, command=epd_dc, chip_select=epd_cs, reset=epd_reset, baudrate=1000000
)
time.sleep(1)  # Wait a bit

# Create the display object - the third color is red (0xff0000)
display = adafruit_il0373.IL0373(
    display_bus,
    width=296,
    height=128,
    rotation=270,
    busy_pin=epd_busy,
    highlight_color=0xFF0000,
)

# Create a display group for our screen objects
g = displayio.Group()

# Display a ruler graphic from the root directory of the CIRCUITPY drive
with open("/display-ruler.bmp", "rb") as f:
    pic = displayio.OnDiskBitmap(f)
    # Create a Tilegrid with the bitmap and put in the displayio group
    # CircuitPython 6 & 7 compatible
    t = displayio.TileGrid(
        pic, pixel_shader=getattr(pic, "pixel_shader", displayio.ColorConverter())
    )
    # CircuitPython 7 compatible only
    # t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
    g.append(t)

    # Place the display group on the screen
    display.show(g)

    # Refresh the display to have it actually show the image
    # NOTE: Do not refresh eInk displays sooner than 180 seconds
    display.refresh()
    print("refreshed")

    time.sleep(180)
Regarding busy/reset for my display as I understand it:

https://learn.adafruit.com/adafruit-ein ... ts/pinouts
The Reset pin for the E-Ink display is connected to an auto-reset circuit and also to the Feather Reset pin, so it will reset when you press the reset button.
The Busy pin is available on a breakout pad, you can solder it to a wire and connect to a pin if you need it - we figure most people will just use a fixed delay.
I also attempted to use adafruit_ssd1675 and adafruit_epd.ssd1675 which did not work. The code runs with no errors, but the screen does not flicker or change in any way.

I also attempted to use the adafruit_ssd1675 library:

Code: Select all

import time
import board
import busio
import displayio
import adafruit_ssd1675

displayio.release_displays()

epd_cs = board.D9
epd_dc = board.D10

display_bus = displayio.FourWire(board.SPI(), command=epd_dc, chip_select=epd_cs, baudrate=1000000)
time.sleep(1)

display = adafruit_ssd1675.SSD1675(display_bus, width=296, height=128, rotation=90)

g = displayio.Group()

f = open("/display-ruler.bmp", "rb")

pic = displayio.OnDiskBitmap(f)
# CircuitPython 6 & 7 compatible
t = displayio.TileGrid(
    pic, pixel_shader=getattr(pic, "pixel_shader", displayio.ColorConverter())
)
# CircuitPython 7 compatible only
# t = displayio.TileGrid(pic, pixel_shader=pic.pixel_shader)
g.append(t)

display.show(g)

display.refresh()

print("refreshed")

time.sleep(120)
Lastly, I would like to say I did try adafruit_epd.il0373 which worked successfully:

Code: Select all

import digitalio
import board
import sdcardio
import storage
from adafruit_epd.epd import Adafruit_EPD
from adafruit_epd.il0373 import Adafruit_IL0373

# Adafruit_EPD.BLACK/WHITE/RED

# create the spi device and pins we will need
spi = board.SPI()
ecs = digitalio.DigitalInOut(board.D9)
dc = digitalio.DigitalInOut(board.D10)
srcs = digitalio.DigitalInOut(board.D6)
rst = None
busy = None
cs = board.D5

sdcard = sdcardio.SDCard(spi, cs)
vfs = storage.VfsFat(sdcard)
storage.mount(vfs, "/sd")

DISPLAY_WIDTH = 296
DISPLAY_HEIGHT = 128

# give them all to our driver
print("Creating display")
display = Adafruit_IL0373(DISPLAY_HEIGHT, DISPLAY_WIDTH, spi,          # 2.13" Tri-color display
                          cs_pin=ecs, dc_pin=dc, sramcs_pin=srcs,
                          rst_pin=rst, busy_pin=busy)

display.rotation = 1

# clear the buffer
print("Clear buffer")
display.fill(Adafruit_EPD.WHITE)
display.pixel(10, 100, Adafruit_EPD.BLACK)

print("Draw Rectangles")
display.fill_rect(5, 5, 10, 10, Adafruit_EPD.RED)
display.rect(0, 0, 20, 30, Adafruit_EPD.BLACK)

print("Draw lines")
display.line(0, 0, display.width-1, display.height-1, Adafruit_EPD.BLACK)
display.line(0, display.height-1, display.width-1, 0, Adafruit_EPD.RED)

print("Draw text")
display.text('hello world', 25, 10, Adafruit_EPD.BLACK)
display.display()
But that means I cant use DisplayIO so I would really prefer to use Adafruit_IL0373

User avatar
mikeysklar
 
Posts: 13824
Joined: Mon Aug 01, 2016 8:10 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by mikeysklar »

It looks like you mostly resolved this yourself.

The Adafruit_CircuitPython_IL0373 example folder has two examples should both work. They are using displayio.

https://github.com/adafruit/Adafruit_Ci ... 9_color.py

https://github.com/adafruit/Adafruit_Ci ... pletest.py

User avatar
Adatory
 
Posts: 10
Joined: Sun Jun 05, 2022 1:07 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by Adatory »

mikeysklar wrote: Sun Mar 19, 2023 4:37 pm It looks like you mostly resolved this yourself.

The Adafruit_CircuitPython_IL0373 example folder has two examples should both work. They are using displayio.

https://github.com/adafruit/Adafruit_Ci ... 9_color.py

https://github.com/adafruit/Adafruit_Ci ... pletest.py
Hello,

It is not resolved at all. Adafruit_CircuitPython_IL0373 (adafruit_il0373) does not work with my hardware. Only adafruit_epd.il0373. Both samples you linked do not work. I am using the exact same pins that work with adafruit_epd.

User avatar
mikeysklar
 
Posts: 13824
Joined: Mon Aug 01, 2016 8:10 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by mikeysklar »

What shows up on the REPL console and the display itself when you run these two scripts from the Adafruit_CircuitPython_IL0373? It is quite possible there are issues with them that need to be opened with the repo.

1) il0373_2.9_color.py
2) il0373_simpletest.py

User avatar
Adatory
 
Posts: 10
Joined: Sun Jun 05, 2022 1:07 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by Adatory »

mikeysklar wrote: Mon Mar 20, 2023 1:17 pm What shows up on the REPL console and the display itself when you run these two scripts from the Adafruit_CircuitPython_IL0373? It is quite possible there are issues with them that need to be opened with the repo.

1) il0373_2.9_color.py
2) il0373_simpletest.py
2.9 Color - https://github.com/adafruit/Adafruit_Ci ... 9_color.py


Output:

Code: Select all

Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:
refreshed
Keep in mind, the only change I had to make is setting epd_reset and epd_busy to None. My EPD does not wire these up.

"Simpletest" https://github.com/adafruit/Adafruit_Ci ... pletest.py

Output:

Code: Select all

Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:
refreshed
This example does not even specify reset/busy so I just copy and pasted it as-is and ran it.

Both result in the EPD doing a lot of flashing, and then going all black with some artifacts from the bmp visible. Exactly like in my screenshot in my initial post.

I have created an issue on the GitHub repo. makermelissa replied saying there might be some code they have to update on their side. I ordered this one https://www.adafruit.com/product/1028 hoping to have more luck with it, its a different driver so maybe it will work...

Screenshot:

Image

The screenshot above is bascially the same for both.

Image

User avatar
mikeysklar
 
Posts: 13824
Joined: Mon Aug 01, 2016 8:10 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by mikeysklar »

Thank you for all these details and opening an issue. @MakerMelissa is the right person for you to be in contact with.

Do you have a Feather M4 or other model than the ESP32-S3 you have been using? That would be a helpful data point to know if this is something specific to certain models of Feather controllers.

Have you been directly connecting the Feather module or manually wiring it?

User avatar
Adatory
 
Posts: 10
Joined: Sun Jun 05, 2022 1:07 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by Adatory »

Unfortunately I only have 3 ESP32-S3 chips. 2 are TFTs, one is the one I am testing with by directly plugging it into the EPD as a "hat". No wires at all. Just to be sure, I tested the "il0373_simpletest.py" with a TFT and got the same result.

User avatar
tannewt
 
Posts: 3298
Joined: Thu Oct 06, 2016 8:48 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by tannewt »

Does it work ok with CircuitPython 8.0.x?

User avatar
Adatory
 
Posts: 10
Joined: Sun Jun 05, 2022 1:07 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by Adatory »

tannewt wrote: Tue Mar 21, 2023 11:54 am Does it work ok with CircuitPython 8.0.x?
I put the version number in my first post but just tested it with:

adafruit-circuitpython-adafruit_feather_esp32s3_4mbflash_2mbpsram-en_US-20230321-4aa1896.uf2

From REPL:

Adafruit CircuitPython 8.1.0-beta.0-41-g4aa1896b0 on 2023-03-21; Adafruit Feather ESP32S3 4MB Flash 2MB PSRAM with ESP32S3

Still same result.

User avatar
tannewt
 
Posts: 3298
Joined: Thu Oct 06, 2016 8:48 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by tannewt »

I saw that it is 8.1.0-beta. I made changes in that version so I'm wondering if the older 8.0.x works for you.

User avatar
Adatory
 
Posts: 10
Joined: Sun Jun 05, 2022 1:07 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by Adatory »

Wow, its working with 8.0.0!

Also testing with this display: https://www.adafruit.com/product/1028

Same thing. Broken all black on 8.1 beta, fixed with 8.0.0.

User avatar
tannewt
 
Posts: 3298
Joined: Thu Oct 06, 2016 8:48 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by tannewt »

I fixed this in our main branch so the S3 builds should work again. The next 8.1 beta will also have the fix. (I broke this code when I added 7-color epd support.)

User avatar
Adatory
 
Posts: 10
Joined: Sun Jun 05, 2022 1:07 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by Adatory »

tannewt wrote: Thu Mar 23, 2023 12:56 pm I fixed this in our main branch so the S3 builds should work again. The next 8.1 beta will also have the fix. (I broke this code when I added 7-color epd support.)
Not having any luck with Adafruit CircuitPython 8.1.0-beta.0-58-gdb76fbd55 on 2023-03-23; Adafruit Feather ESP32-S3 TFT with ESP32S3

Image

Code is a direct copy and paste from: https://github.com/adafruit/Adafruit_Ci ... pletest.py minue setting Reset and Busy to none.

User avatar
Adatory
 
Posts: 10
Joined: Sun Jun 05, 2022 1:07 pm

Re: All black screen when using Adafruit 2.9" Tri-Color eInk / ePaper Display FeatherWing - IL0373

Post by Adatory »

Actually its working now, not sure what changed...

Image

I am going to retest everything and comment on Github.

Locked
Please be positive and constructive with your questions and comments.

Return to “Adafruit CircuitPython”