micropython-nano-gui/setup_examples/epd29_pico.py

45 wiersze
1.4 KiB
Python

# 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