diff --git a/drivers/epaper/epd29.py b/drivers/epaper/epd29.py index 9469302..d0e8935 100644 --- a/drivers/epaper/epd29.py +++ b/drivers/epaper/epd29.py @@ -22,7 +22,7 @@ import uasyncio as asyncio from micropython import const from time import sleep_ms, sleep_us, ticks_ms, ticks_us, ticks_diff -_def asyncio_running(): +def asyncio_running(): try: _ = asyncio.current_task() except: diff --git a/extras/demos/eclock_async.py b/extras/demos/eclock_async.py index 7bb0fc1..4313f59 100644 --- a/extras/demos/eclock_async.py +++ b/extras/demos/eclock_async.py @@ -57,5 +57,6 @@ async def test(): try: asyncio.run(test()) finally: + _ = asyncio.new_event_loop() if epaper: ssd.sleep() diff --git a/setup_examples/epd29_pico.py b/setup_examples/epd29_pico.py new file mode 100644 index 0000000..5830313 --- /dev/null +++ b/setup_examples/epd29_pico.py @@ -0,0 +1,44 @@ +# epd29_pico.py Config for Pico with 2.9" ePaper. +# Customise for your hardware config. + +# Released under the MIT License (MIT). See LICENSE. +# Copyright (c) 2023 Peter Hinch + +# Supports Adafruit 2.9" monochrome EPD with interface board connected to Pyboard. +# Interface breakout: https://www.adafruit.com/product/4224 +# Display: https://www.adafruit.com/product/4262 + +# Demo of initialisation procedure designed to minimise risk of memory fail +# when instantiating the frame buffer. The aim is to do this as early as +# possible before importing other modules. + +# WIRING. Adafruit schematic linked on the product web pagerefers to a different +# device. These are the pins on the physical board. +# Pico Breakout +# Vbus Vin (1) +# Gnd Gnd (3) +# 4 MISO (no need to connect) +# 6 SCK (4) +# 7 MOSI (6) +# 8 DC (8) +# 9 RST (10) +# 10 CS (7) +# 11 BUSY (11) (Low = Busy) + + +from machine import Pin, SPI +import gc + +from drivers.epaper.epd29 import EPD as SSD + +pdc = Pin(8, Pin.OUT, value=0) +prst = Pin(9, Pin.OUT, value=1) +pcs = Pin(10, Pin.OUT, value=1) +pbusy = Pin(11, Pin.IN) + +# Baudrate. Adafruit use 1MHz at +# https://learn.adafruit.com/adafruit-eink-display-breakouts/circuitpython-code-2 +# Datasheet P35 indicates up to 10MHz. +spi = SPI(0, sck=Pin(6), mosi=Pin(7), miso=Pin(4), baudrate=5_000_000) +gc.collect() # Precaution before instantiating framebuf +ssd = SSD(spi, pcs, pdc, prst, pbusy) # Create a display instance