-
Notifications
You must be signed in to change notification settings - Fork 94
/
Copy pathepd29_pico.py
44 lines (35 loc) · 1.41 KB
/
epd29_pico.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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